diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-04-03 23:31:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-03 23:31:32 +0300 |
commit | 8b73d807924dde250f1c4340885ef46a22b82ba7 (patch) | |
tree | e9c2ba1b19e115858a18ce9d9f20f094d817b02c /mesonbuild/build.py | |
parent | 3070461ecccc582eed186fa215a4c4dd36823d71 (diff) | |
parent | 1b81b32afbe516f9230393cd5706de692531e10c (diff) | |
download | meson-8b73d807924dde250f1c4340885ef46a22b82ba7.zip meson-8b73d807924dde250f1c4340885ef46a22b82ba7.tar.gz meson-8b73d807924dde250f1c4340885ef46a22b82ba7.tar.bz2 |
Merge pull request #1457 from mesonbuild/overrides
Add MVP implementation of overriding options.
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index ce5638d..1246f3e 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -49,6 +49,7 @@ known_basic_kwargs = {'install': True, 'objects': True, 'native': True, 'build_by_default': True, + 'override_options': True, } # These contain kwargs supported by both static and shared libraries. These are @@ -272,6 +273,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 @@ -284,6 +286,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): @@ -1237,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): |