From e75ea5e3c9c05cf348af324f476fc145094cb614 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sun, 29 Nov 2020 12:26:04 +0200 Subject: [PATCH] build script: move prefix member and install() method to base target --- build.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/build.py b/build.py index 7daf0704..dd2e8d70 100755 --- a/build.py +++ b/build.py @@ -38,6 +38,7 @@ class Target: def __init__(self, name=None): self.name = name self.src_root = '' + self.prefix = None self.environment = os.environ self.options = {} @@ -45,7 +46,7 @@ class Target: pass def initialize(self, builder: 'Builder'): - pass + self.prefix = builder.deps_path + self.name def detect(self, builder: 'Builder') -> bool: return False @@ -64,6 +65,16 @@ class Target: def post_build(self, builder: 'Builder'): pass + def install(self, builder: 'Builder'): + if builder.xcode: + return + + if os.path.exists(self.prefix): + shutil.rmtree(self.prefix) + + work_path = builder.build_path + self.src_root + subprocess.check_call(['make', 'install'], cwd=work_path) + class MakeTarget(Target): def __init__(self, name=None): @@ -119,12 +130,9 @@ class ConfigureMakeTarget(Target): def __init__(self, name=None): super().__init__(name) self.make = MakeTarget(name) - self.prefix = None def initialize(self, builder: 'Builder'): super().initialize(builder) - - self.prefix = builder.deps_path + self.name self.options['--prefix'] = self.prefix self.make.initialize(builder) @@ -146,12 +154,6 @@ class ConfigureMakeTarget(Target): self.make.build(builder) - def install(self, builder: 'Builder'): - shutil.rmtree(self.prefix) - - work_path = builder.build_path + self.src_root - subprocess.check_call(['make', 'install'], cwd=work_path) - class CMakeTarget(Target): def __init__(self, name=None): @@ -198,6 +200,7 @@ class CMakeTarget(Target): 'cmake', builder.xcode and '-GXcode' or '-GUnix Makefiles', '-DCMAKE_BUILD_TYPE=Release', + '-DCMAKE_INSTALL_PREFIX=' + self.prefix, '-DCMAKE_PREFIX_PATH=' + builder.prefix_path, '-DCMAKE_OSX_DEPLOYMENT_TARGET=' + builder.os_version, ]