Better MakeBuilder configure system.
`all_configure_option` should be ALL configure option.
This commit is contained in:
parent
53585b838a
commit
f1d1fc654c
|
@ -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:
|
||||||
|
|
|
@ -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':
|
||||||
|
|
Loading…
Reference in New Issue