diff options
Diffstat (limited to 'mesonbuild/modules/python.py')
-rw-r--r-- | mesonbuild/modules/python.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 87dfc33..bb61475 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']) |