https://github.com/python/cpython/commit/0d582def34babca7417ece8a9e4e16cc2a752d44
commit: 0d582def34babca7417ece8a9e4e16cc2a752d44
branch: main
author: Michał Górny <[email protected]>
committer: FFY00 <[email protected]>
date: 2025-06-17T08:05:04Z
summary:
gh-134632: Fix `build-details.json` to use `INCLUDEPY` path (#134633)
* gh-134632: Fix `build-details.json` to use `INCLUDEPY` path
Fix ``build-details.json`` generation to use ``INCLUDEPY``, in order to
reference the ``pythonX.Y`` subdirectory of the include directory, as
required in :pep:`739`, instead of the top-level include directory.
* test_build_details: Add tests for the c_api section
* test_build_details: Expect pkgconfig for CPython unconditionally
files:
A Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst
M Lib/test/test_build_details.py
M Tools/build/generate-build-details.py
diff --git a/Lib/test/test_build_details.py b/Lib/test/test_build_details.py
index 05ce163a337881..33ade161fb5058 100644
--- a/Lib/test/test_build_details.py
+++ b/Lib/test/test_build_details.py
@@ -123,6 +123,13 @@ def test_base_interpreter(self):
self.assertEqual(os.path.realpath(value),
os.path.realpath(sys.executable))
+ @needs_installed_python
+ def test_c_api(self):
+ value = self.key('c_api')
+ self.assertTrue(os.path.exists(os.path.join(value['headers'],
'Python.h')))
+ version = sysconfig.get_config_var('VERSION')
+ self.assertTrue(os.path.exists(os.path.join(value['pkgconfig_path'],
f'python-{version}.pc')))
+
if __name__ == '__main__':
unittest.main()
diff --git
a/Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst
b/Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst
new file mode 100644
index 00000000000000..f41c8744b8aaa0
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2025-05-24-16-59-20.gh-issue-134632.i0W2hc.rst
@@ -0,0 +1,3 @@
+Fixed ``build-details.json`` generation to use ``INCLUDEPY``, in order to
+reference the ``pythonX.Y`` subdirectory of the include directory, as
+required in :pep:`739`, instead of the top-level include directory.
diff --git a/Tools/build/generate-build-details.py
b/Tools/build/generate-build-details.py
index 87e262065ec87b..8cd23e2f54f529 100644
--- a/Tools/build/generate-build-details.py
+++ b/Tools/build/generate-build-details.py
@@ -75,7 +75,7 @@ def generate_data(schema_version: str) ->
collections.defaultdict[str, Any]:
PY3LIBRARY = sysconfig.get_config_var('PY3LIBRARY')
LIBPYTHON = sysconfig.get_config_var('LIBPYTHON')
LIBPC = sysconfig.get_config_var('LIBPC')
- INCLUDEDIR = sysconfig.get_config_var('INCLUDEDIR')
+ INCLUDEPY = sysconfig.get_config_var('INCLUDEPY')
if os.name == 'posix':
# On POSIX, LIBRARY is always the static library, while LDLIBRARY is
the
@@ -123,7 +123,7 @@ def generate_data(schema_version: str) ->
collections.defaultdict[str, Any]:
if has_static_library:
data['libpython']['static'] = os.path.join(LIBDIR, LIBRARY)
- data['c_api']['headers'] = INCLUDEDIR
+ data['c_api']['headers'] = INCLUDEPY
if LIBPC:
data['c_api']['pkgconfig_path'] = LIBPC
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]