Better MakeBuilder configure system.

`all_configure_option` should be ALL configure option.
This commit is contained in:
Matthieu Gautier 2018-05-17 17:55:10 +02:00
parent 53585b838a
commit f1d1fc654c
2 changed files with 12 additions and 20 deletions

View File

@ -259,6 +259,7 @@ class NoopBuilder(Builder):
class MakeBuilder(Builder): class MakeBuilder(Builder):
configure_option_template = "{dep_options} {static_option} {env_option} --prefix {install_dir} --libdir {libdir}"
configure_option = "" configure_option = ""
dynamic_configure_option = "--enable-shared --disable-static" dynamic_configure_option = "--enable-shared --disable-static"
static_configure_option = "--enable-static --disable-shared" static_configure_option = "--enable-static --disable-shared"
@ -271,19 +272,21 @@ class MakeBuilder(Builder):
@property @property
def all_configure_option(self): def all_configure_option(self):
return "{} {} {}".format( option = self.configure_option_template.format(
self.configure_option, dep_options=self.configure_option,
self.static_configure_option if self.buildEnv.platform_info.static else self.dynamic_configure_option, static_option=self.static_configure_option if self.buildEnv.platform_info.static else self.dynamic_configure_option,
self.buildEnv.configure_option if not self.target.force_native_build else "") env_option=self.buildEnv.configure_option if not self.target.force_native_build else "",
install_dir=self.buildEnv.install_dir,
libdir=pj(self.buildEnv.install_dir, self.buildEnv.libprefix)
)
return option
def _configure(self, context): def _configure(self, context):
context.try_skip(self.build_path) context.try_skip(self.build_path)
command = "{configure_script} {configure_option} --prefix {install_dir} --libdir {libdir}" command = "{configure_script} {configure_option}"
command = command.format( command = command.format(
configure_script=pj(self.source_path, self.configure_script), configure_script=pj(self.source_path, self.configure_script),
configure_option=self.all_configure_option, configure_option=self.all_configure_option
install_dir=self.buildEnv.install_dir,
libdir=pj(self.buildEnv.install_dir, self.buildEnv.libprefix)
) )
env = Defaultdict(str, os.environ) env = Defaultdict(str, os.environ)
if self.buildEnv.platform_info.static: if self.buildEnv.platform_info.static:

View File

@ -20,23 +20,12 @@ class zlib(Dependency):
class Builder(MakeBuilder): class Builder(MakeBuilder):
dynamic_configure_option = "--shared" dynamic_configure_option = "--shared"
static_configure_option = "--static" static_configure_option = "--static"
configure_option_template = "{dep_options} {static_option} --prefix {install_dir} --libdir {libdir}"
def _pre_build_script(self, context): def _pre_build_script(self, context):
context.try_skip(self.build_path) context.try_skip(self.build_path)
shutil.copytree(self.source_path, self.build_path) shutil.copytree(self.source_path, self.build_path)
@property
def all_configure_option(self):
return '--static' if self.buildEnv.platform_info.static else '--shared'
@property
def configure_option(self):
options = "-DINSTALL_PKGCONFIG_DIR={}".format(pj(self.buildEnv.install_dir, self.buildEnv.libprefix, 'pkgconfig'))
if self.buildEnv.platform_info.static:
options += " -DBUILD_SHARED_LIBS=false"
else:
options += " -DBUILD_SHARED_LIBS=true"
return options
def _configure(self, context): def _configure(self, context):
if self.buildEnv.platform_info.build == 'win32': if self.buildEnv.platform_info.build == 'win32':