aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-04-03 23:31:32 +0300
committerGitHub <noreply@github.com>2017-04-03 23:31:32 +0300
commit8b73d807924dde250f1c4340885ef46a22b82ba7 (patch)
treee9c2ba1b19e115858a18ce9d9f20f094d817b02c /mesonbuild/build.py
parent3070461ecccc582eed186fa215a4c4dd36823d71 (diff)
parent1b81b32afbe516f9230393cd5706de692531e10c (diff)
downloadmeson-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.py17
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):