aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/python.py7
-rw-r--r--test cases/unit/101 python without pkgconfig/meson.build4
-rw-r--r--unittests/platformagnostictests.py4
3 files changed, 12 insertions, 3 deletions
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index f183177..18fe926 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -500,11 +500,12 @@ class PythonInstallation(ExternalProgramHolder):
if disabled:
mlog.log('Dependency', mlog.bold('python'), 'skipped: feature', mlog.bold(feature), 'disabled')
else:
+ new_kwargs = kwargs.copy()
+ new_kwargs['required'] = False
+ methods = process_method_kw({DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM}, kwargs)
for d in python_factory(self.interpreter.environment,
MachineChoice.BUILD if kwargs.get('native', False) else MachineChoice.HOST,
- kwargs,
- process_method_kw({DependencyMethods.PKGCONFIG, DependencyMethods.SYSTEM}, kwargs),
- self):
+ new_kwargs, methods, self):
dep = d()
if dep.found():
break
diff --git a/test cases/unit/101 python without pkgconfig/meson.build b/test cases/unit/101 python without pkgconfig/meson.build
new file mode 100644
index 0000000..b3a0c42
--- /dev/null
+++ b/test cases/unit/101 python without pkgconfig/meson.build
@@ -0,0 +1,4 @@
+project('python wihtout pkgconfig', 'c')
+
+# This unit test is ran with PKG_CONFIG=notfound
+import('python').find_installation().dependency()
diff --git a/unittests/platformagnostictests.py b/unittests/platformagnostictests.py
index 1c52f63..25f3b1a 100644
--- a/unittests/platformagnostictests.py
+++ b/unittests/platformagnostictests.py
@@ -66,3 +66,7 @@ class PlatformAgnosticTests(BasePlatformTests):
# platlib is allowed, only python.platlib is reserved.
fname = write_file("option('platlib', type: 'string')")
interp.process(fname)
+
+ def test_python_dependency_without_pkgconfig(self):
+ testdir = os.path.join(self.unit_test_dir, '101 python without pkgconfig')
+ self.init(testdir, override_envvars={'PKG_CONFIG': 'notfound'})