From 22dcb692adefea7d51e480e36a53446cc0777c01 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 19 Jun 2022 00:51:54 -0400 Subject: python module: implicitly add python dep to extensions If there isn't a preexisting dependency on python, append one. It's almost assuredly needed, so just do the right thing out of the box. --- docs/markdown/Python-module.md | 6 +++--- .../snippets/python-extension-module-implicit-dependency.md | 13 +++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 docs/markdown/snippets/python-extension-module-implicit-dependency.md (limited to 'docs/markdown') diff --git a/docs/markdown/Python-module.md b/docs/markdown/Python-module.md index 8809fd0..bf40ce4 100644 --- a/docs/markdown/Python-module.md +++ b/docs/markdown/Python-module.md @@ -99,9 +99,9 @@ Additionally, the following diverge from [[shared_module]]'s default behavior: of Python that support this (the python headers define `PyMODINIT_FUNC` has default visibility). -`extension_module` does not add any dependencies to the library so -user may need to add `dependencies : py_installation.dependency()`, -see [[dependency]]. +*since 0.63.0* `extension_module` automatically adds a dependency to the library +if one is not explicitly provided. To support older versions, the user may need to +add `dependencies : py_installation.dependency()`, see [[dependency]]. **Returns**: a [[@build_tgt]] object diff --git a/docs/markdown/snippets/python-extension-module-implicit-dependency.md b/docs/markdown/snippets/python-extension-module-implicit-dependency.md new file mode 100644 index 0000000..1b98df8 --- /dev/null +++ b/docs/markdown/snippets/python-extension-module-implicit-dependency.md @@ -0,0 +1,13 @@ +## Python extension modules now depend on the python library by default + +Python extension modules are usually expected to link to the python library +and/or its headers in order to build correctly (via the default `embed: false`, +which may not actually link to the library itself). This means that every +single use of `.extension_module()` needed to include the `dependencies: +py_installation.dependency()` kwarg explicitly. + +In the interest of doing the right thing out of the box, this is now the +default for extension modules that don't already include a dependency on +python. This is not expected to break anything, because it should always be +needed. Nevertheless, `py_installation.dependency().partial_dependency()` will +be detected as already included while providing no compile/link args. -- cgit v1.1