From 8b20852b0ff35a9e19b3b26c04decdef35036fd5 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 6 Oct 2020 13:19:30 -0400 Subject: python.dependency() is not respecting 'required' kwarg --- mesonbuild/modules/python.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'mesonbuild/modules/python.py') diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 87dfc331a..bb6147545 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py @@ -34,7 +34,7 @@ from ..environment import detect_cpu_family from ..dependencies.base import ( DependencyMethods, ExternalDependency, ExternalProgram, PkgConfigDependency, - NonExistingExternalProgram + NonExistingExternalProgram, NotFoundDependency ) mod_kwargs = set(['subdir']) @@ -356,7 +356,14 @@ class PythonInstallation(ExternalProgramHolder): 'positional arguments. It always returns a Python ' 'dependency. This will become an error in the future.', location=self.interpreter.current_node) - dep = PythonDependency(self, self.interpreter.environment, kwargs) + disabled, required, feature = extract_required_kwarg(kwargs, self.subproject) + if disabled: + mlog.log('Dependency', mlog.bold('python'), 'skipped: feature', mlog.bold(feature), 'disabled') + dep = NotFoundDependency(self.interpreter.environment) + else: + dep = PythonDependency(self, self.interpreter.environment, kwargs) + if required and not dep.found(): + raise mesonlib.MesonException('Python dependency not found') return self.interpreter.holderify(dep) @permittedKwargs(['pure', 'subdir']) -- cgit v1.2.3