summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-02-15 23:47:53 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2020-02-15 23:49:53 +0530
commit6a61afd79035308df36bd1c2e09a334035978dfc (patch)
tree270d79b12f14a1b1c177cdc074315f36ee567b56
parent83960ea0508d993497cfe43188afb2884c8bc21e (diff)
downloadmeson-nirbheek/fix-python-dependency-nopos-regression.tar.gz
modules/python: Do not error out if positional args are passednirbheek/fix-python-dependency-nopos-regression
Also update the documentation. Fixes https://github.com/mesonbuild/meson/issues/6470
-rw-r--r--docs/markdown/Python-module.md5
-rw-r--r--mesonbuild/modules/python.py6
2 files changed, 8 insertions, 3 deletions
diff --git a/docs/markdown/Python-module.md b/docs/markdown/Python-module.md
index 152aa5c70..d99b36a3a 100644
--- a/docs/markdown/Python-module.md
+++ b/docs/markdown/Python-module.md
@@ -103,8 +103,9 @@ need to add `dependencies : py_installation.dependency()`, see [][`dependency()`
python_dependency py_installation.dependency(...)
```
-This method accepts the same arguments as the standard [dependency] function and
-the following additional keyword arguments:
+This method accepts no positional arguments, and the same keyword arguments as
+the standard [dependency] function. It also supports the following keyword
+argument:
- `embed`: *(since 0.53.0)* If true, meson will try to find a python dependency
that can be used for embedding python into an application.
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index 6644fd27c..3f971f725 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -348,10 +348,14 @@ class PythonInstallation(ExternalProgramHolder):
return self.interpreter.func_shared_module(None, args, kwargs)
- @noPosargs
@permittedKwargs(permitted_kwargs['dependency'])
@FeatureNewKwargs('python_installation.dependency', '0.53.0', ['embed'])
def dependency_method(self, args, kwargs):
+ if args:
+ mlog.warning('python_installation.dependency() does not take any '
+ '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)
return self.interpreter.holderify(dep)