diff options
Diffstat (limited to 'mesonbuild/interpreter.py')
-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) |