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
This commit is contained in:
@@ -123,6 +123,13 @@ class CPythonBuildDetailsTests(unittest.TestCase, FormatTestsBase):
|
|||||||
|
|
||||||
self.assertEqual(os.path.realpath(value), os.path.realpath(sys.executable))
|
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__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -75,7 +75,7 @@ def generate_data(schema_version: str) -> collections.defaultdict[str, Any]:
|
|||||||
PY3LIBRARY = sysconfig.get_config_var('PY3LIBRARY')
|
PY3LIBRARY = sysconfig.get_config_var('PY3LIBRARY')
|
||||||
LIBPYTHON = sysconfig.get_config_var('LIBPYTHON')
|
LIBPYTHON = sysconfig.get_config_var('LIBPYTHON')
|
||||||
LIBPC = sysconfig.get_config_var('LIBPC')
|
LIBPC = sysconfig.get_config_var('LIBPC')
|
||||||
INCLUDEDIR = sysconfig.get_config_var('INCLUDEDIR')
|
INCLUDEPY = sysconfig.get_config_var('INCLUDEPY')
|
||||||
|
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
# On POSIX, LIBRARY is always the static library, while LDLIBRARY is the
|
# 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:
|
if has_static_library:
|
||||||
data['libpython']['static'] = os.path.join(LIBDIR, LIBRARY)
|
data['libpython']['static'] = os.path.join(LIBDIR, LIBRARY)
|
||||||
|
|
||||||
data['c_api']['headers'] = INCLUDEDIR
|
data['c_api']['headers'] = INCLUDEPY
|
||||||
if LIBPC:
|
if LIBPC:
|
||||||
data['c_api']['pkgconfig_path'] = LIBPC
|
data['c_api']['pkgconfig_path'] = LIBPC
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user