From 83721434f6f1b6b2587a3ac0376fd6efa7a11801 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 11 Dec 2021 16:02:08 +0200 Subject: [PATCH] aedi: add yquake2 target (without expansions libraries) --- aedi/target/__init__.py | 1 + aedi/target/main.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/aedi/target/__init__.py b/aedi/target/__init__.py index b3757af9..dbbabe1d 100644 --- a/aedi/target/__init__.py +++ b/aedi/target/__init__.py @@ -44,6 +44,7 @@ def targets(): EDuke32Target(), NBloodTarget(), QuakespasmTarget(), + YQuake2Target(), # Libraries needed for GZDoom and Raze Bzip2Target(), diff --git a/aedi/target/main.py b/aedi/target/main.py index 9de932b8..ff999661 100644 --- a/aedi/target/main.py +++ b/aedi/target/main.py @@ -386,3 +386,23 @@ class QuakespasmTarget(MakeMainTarget): opts['USE_CODEC_UMX'] = '1' # Add main() alias to workaround executable linking without macOS launcher opts['COMMON_LIBS'] = '-framework OpenGL -Wl,-alias -Wl,_SDL_main -Wl,_main' + + +class YQuake2Target(CMakeMainTarget): + def __init__(self, name='yquake2'): + super().__init__(name) + + def prepare_source(self, state: BuildState): + state.checkout_git('https://github.com/yquake2/yquake2.git') + + def configure(self, state: BuildState): + opts = state.options + opts['SDL2_LIBRARY'] = state.run_pkg_config('--libs', 'SDL2') + # Explicit OpenAL configuration to avoid selection of Apple's framework + opts['OPENAL_INCLUDE_DIR'] = state.include_path / 'AL' + opts['OPENAL_LIBRARY'] = state.lib_path / 'libopenal.a' + + super().configure(state) + + def post_build(self, state: BuildState): + shutil.copytree(state.build_path / 'release', state.install_path, dirs_exist_ok=True)