aboutsummaryrefslogtreecommitdiffstats
path: root/configure.py
diff options
context:
space:
mode:
authorRenĂ© Meusel <[email protected]>2019-09-10 14:38:22 +0200
committerRenĂ© Meusel <[email protected]>2019-09-10 14:38:22 +0200
commit41fa2865dd3f5137857eed38fff746b58e3c922d (patch)
tree96ca1972c42a2863c36f25348e4ebf998aea5b2d /configure.py
parent577ac1a01b8b3ead65655de5ef84176253549428 (diff)
simplify/optimize reading of --build-targets option
Diffstat (limited to 'configure.py')
-rwxr-xr-xconfigure.py32
1 files changed, 10 insertions, 22 deletions
diff --git a/configure.py b/configure.py
index da1c96363..1cc514ef7 100755
--- a/configure.py
+++ b/configure.py
@@ -278,13 +278,6 @@ class BuildPaths(object): # pylint: disable=too-many-instance-attributes
ACCEPTABLE_BUILD_TARGETS = ["static", "shared", "cli", "tests", "bogo_shim"]
-def read_build_targets(options):
- if options.build_targets is None: # not set => no list
- return None
- if not options.build_targets: # empty string => empty list
- return []
- return [t.strip().lower() for t in options.build_targets.split(',')]
-
def process_command_line(args): # pylint: disable=too-many-locals,too-many-statements
"""
Handle command line options
@@ -1967,15 +1960,14 @@ def create_template_vars(source_paths, build_paths, options, modules, cc, arch,
return os.path.join(build_dir, path)
def all_targets(options):
- targets = read_build_targets(options)
yield 'libs'
- if 'cli' in targets:
+ if 'cli' in options.build_targets:
yield 'cli'
- if 'tests' in targets:
+ if 'tests' in options.build_targets:
yield 'tests'
if options.build_fuzzers:
yield 'fuzzers'
- if 'bogo_shim' in targets:
+ if 'bogo_shim' in options.build_targets:
yield 'bogo_shim'
yield 'docs'
@@ -2127,7 +2119,7 @@ def create_template_vars(source_paths, build_paths, options, modules, cc, arch,
'include_paths': build_paths.format_include_paths(cc, options.with_external_includedir),
'module_defines': sorted(flatten([m.defines() for m in modules])),
- 'build_bogo_shim': bool('bogo_shim' in read_build_targets(options)),
+ 'build_bogo_shim': bool('bogo_shim' in options.build_targets),
'bogo_shim_src': os.path.join(source_paths.src_dir, 'bogo_shim', 'bogo_shim.cpp'),
'os_features': osinfo.enabled_features(options),
@@ -2996,17 +2988,11 @@ def canonicalize_options(options, info_os, info_arch):
# select and sanity check build targets
def canonicalize_build_targets(options):
- build_targets = read_build_targets(options)
-
# --build-targets was not provided: build default targets
- if build_targets is None:
- options.build_targets = "cli,tests"
- return
-
- # --build-targets was set to empty string: invalid input
- if not build_targets:
- raise UserError("select at least one --build-targets")
+ if options.build_targets is None:
+ return ["cli", "tests"]
+ build_targets = [t.strip().lower() for t in options.build_targets.split(',')]
for build_target in build_targets:
if build_target not in ACCEPTABLE_BUILD_TARGETS:
raise UserError("unknown build target: %s" % build_target)
@@ -3023,7 +3009,9 @@ def canonicalize_options(options, info_os, info_arch):
elif bool(options.build_static_lib) != bool("static" in build_targets):
raise UserError("inconsistent usage of --enable/disable-static-library and --build-targets")
- canonicalize_build_targets(options)
+ return build_targets
+
+ options.build_targets = canonicalize_build_targets(options)
shared_libs_supported = options.os in info_os and info_os[options.os].building_shared_supported()