From 6112e6a8157f823c22dcc91f44e443037e90c73d Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 17 Sep 2018 09:18:10 -0400 Subject: [PATCH] Fix version check when passing feature option to find_installation() --- mesonbuild/interpreter.py | 6 ++++-- mesonbuild/modules/python.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 0e6a041ce..131c24e8a 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -92,13 +92,15 @@ class FeatureOptionHolder(InterpreterObject, ObjectHolder): def auto_method(self, args, kwargs): return self.held_object.is_auto() -def extract_required_kwarg(kwargs, subproject): +def extract_required_kwarg(kwargs, subproject, feature_check=None): val = kwargs.get('required', True) disabled = False required = False feature = None if isinstance(val, FeatureOptionHolder): - FeatureNew('User option "feature"', '0.47.0').use(subproject) + if not feature_check: + feature_check = FeatureNew('User option "feature"', '0.47.0') + feature_check.use(subproject) option = val.held_object feature = val.name if option.is_disabled(): diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 0ba086b3e..48352c48b 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py @@ -477,7 +477,8 @@ class PythonModule(ExtensionModule): @permittedKwargs(['required']) def find_installation(self, interpreter, state, args, kwargs): - disabled, required, feature = extract_required_kwarg(kwargs, state.subproject) + feature_check = FeatureNew('Passing "feature" option to find_installation', '0.48.0') + disabled, required, feature = extract_required_kwarg(kwargs, state.subproject, feature_check) if disabled: mlog.log('find_installation skipped: feature', mlog.bold(feature), 'disabled') return ExternalProgramHolder(NonExistingExternalProgram())