aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-03-12 20:05:21 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-04-02 00:07:23 +0300
commitcf97c7af813ef39a7edf0693a4b127d30ad9cc55 (patch)
tree8771bbbe6f78292ffb954c974e2cdff9fea5473e /mesonbuild/build.py
parent294abe244f100272f358b7f52813554399c44023 (diff)
downloadmeson-cf97c7af813ef39a7edf0693a4b127d30ad9cc55.zip
meson-cf97c7af813ef39a7edf0693a4b127d30ad9cc55.tar.gz
meson-cf97c7af813ef39a7edf0693a4b127d30ad9cc55.tar.bz2
Use get_option_for_target for builtins where sensible.
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index e46b65f..6dc38e9 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -271,6 +271,7 @@ class Target:
self.build_by_default = build_by_default
self.install = False
self.build_always = False
+ self.option_overrides = {}
def get_basename(self):
return self.name
@@ -283,6 +284,20 @@ class Target:
self.build_by_default = kwargs['build_by_default']
if not isinstance(self.build_by_default, bool):
raise InvalidArguments('build_by_default must be a boolean value.')
+ self.option_overrides = self.parse_overrides(kwargs)
+
+ def parse_overrides(self, kwargs):
+ result = {}
+ overrides = stringlistify(kwargs.get('override_options', []))
+ for o in overrides:
+ if '=' not in o:
+ raise InvalidArguments('Overrides must be of form "key=value"')
+ k, v = o.split('=', 1)
+ k = k.strip()
+ v = v.strip()
+ result[k] = v
+ return result
+
class BuildTarget(Target):
def __init__(self, name, subdir, subproject, is_cross, sources, objects, environment, kwargs):
@@ -306,7 +321,6 @@ class BuildTarget(Target):
self.extra_args = {}
self.generated = []
self.extra_files = []
- self.option_overrides = {}
# Sources can be:
# 1. Pre-existing source files in the source tree
# 2. Pre-existing sources generated by configure_file in the build tree
@@ -672,14 +686,6 @@ class BuildTarget(Target):
self.pic = kwargs.get('pic', False)
if not isinstance(self.pic, bool):
raise InvalidArguments('Argument pic to static library {!r} must be boolean'.format(self.name))
- overrides = stringlistify(kwargs.get('override_options', []))
- for o in overrides:
- if '=' not in o:
- raise InvalidArguments('Overrides must be of form "key=value"')
- k, v = o.split('=', 1)
- k = k.strip()
- v = v.strip()
- self.option_overrides[k] = v
def get_filename(self):
return self.filename
@@ -1247,6 +1253,7 @@ class CustomTarget(Target):
'depend_files': True,
'depfile': True,
'build_by_default': True,
+ 'override_options': True,
}
def __init__(self, name, subdir, kwargs, absolute_paths=False):