diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-07-25 18:33:53 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-07-25 08:02:49 -0700 |
commit | 0ea21d7aea28c56f37fc37bda31031a6ecb5d6ae (patch) | |
tree | 22401972c1a3d433651c9400a7b00984cd0fa5c3 | |
parent | 1515fca2d9d4dcc8c9c98689421e69517444c05e (diff) | |
download | meson-0ea21d7aea28c56f37fc37bda31031a6ecb5d6ae.zip meson-0ea21d7aea28c56f37fc37bda31031a6ecb5d6ae.tar.gz meson-0ea21d7aea28c56f37fc37bda31031a6ecb5d6ae.tar.bz2 |
Add a feature-new entry for UserFeatureOption
Since we can't detect it in meson_options.txt, detect it when the
option is used.
-rw-r--r-- | mesonbuild/interpreter.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index a3430aa..cf2e826 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -92,12 +92,13 @@ class FeatureOptionHolder(InterpreterObject, ObjectHolder): def auto_method(self, args, kwargs): return self.held_object.is_auto() -def extract_required_kwarg(kwargs): +def extract_required_kwarg(kwargs, subproject): val = kwargs.get('required', True) disabled = False required = False feature = None if isinstance(val, FeatureOptionHolder): + FeatureNew('User option "feature"', '0.47.0').use(subproject) option = val.held_object feature = val.name if option.is_disabled(): @@ -1424,7 +1425,7 @@ class CompilerHolder(InterpreterObject): if not isinstance(libname, str): raise InterpreterException('Library name not a string.') - disabled, required, feature = extract_required_kwarg(kwargs) + disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) if disabled: mlog.log('Library', mlog.bold(libname), 'skipped: feature', mlog.bold(feature), 'disabled') lib = dependencies.ExternalLibrary(libname, None, @@ -2471,7 +2472,7 @@ external dependencies (including libraries) must go to "dependencies".''') @permittedKwargs(permitted_kwargs['add_languages']) @stringArgs def func_add_languages(self, node, args, kwargs): - disabled, required, feature = extract_required_kwarg(kwargs) + disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) if disabled: for lang in sorted(args, key=compilers.sort_clink): mlog.log('Compiler for language', mlog.bold(lang), 'skipped: feature', mlog.bold(feature), 'disabled') @@ -2732,7 +2733,7 @@ external dependencies (including libraries) must go to "dependencies".''') if not args: raise InterpreterException('No program name specified.') - disabled, required, feature = extract_required_kwarg(kwargs) + disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) if disabled: mlog.log('Program', mlog.bold(' '.join(args)), 'skipped: feature', mlog.bold(feature), 'disabled') return ExternalProgramHolder(dependencies.NonExistingExternalProgram()) @@ -2847,7 +2848,7 @@ external dependencies (including libraries) must go to "dependencies".''') name = args[0] display_name = name if name else '(anonymous)' - disabled, required, feature = extract_required_kwarg(kwargs) + disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) if disabled: mlog.log('Dependency', mlog.bold(display_name), 'skipped: feature', mlog.bold(feature), 'disabled') return DependencyHolder(NotFoundDependency(self.environment), self.subproject) |