aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-10-06 13:19:30 -0400
committerXavier Claessens <xclaesse@gmail.com>2020-10-06 19:15:59 -0400
commit8b20852b0ff35a9e19b3b26c04decdef35036fd5 (patch)
tree761d70bf322d040750b183bbc82063fb701d030c /mesonbuild
parent88fecedc7759239c0c694182d756ba80e4d01e9d (diff)
downloadmeson-8b20852b0ff35a9e19b3b26c04decdef35036fd5.zip
meson-8b20852b0ff35a9e19b3b26c04decdef35036fd5.tar.gz
meson-8b20852b0ff35a9e19b3b26c04decdef35036fd5.tar.bz2
python.dependency() is not respecting 'required' kwarg
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/modules/python.py11
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'])