diff options
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 25 |
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): |