Closed
Description
We intend to switch the C/C++ extension build system to use pybind11
as discussed in this week's call. There is a demonstration in PR #23787 showing that the approach works and listing the pros and cons. It is too much work to do in a single PR so will probably be done one extension at a time. This issue is intended to track the overall progress by editing this post to tick the relevant check box and add the PR number for each extension completed.
C/C++ extensions:
-
agg
(start in Convert Agg extension to pybind11 #27011) -
c_internal_utils
(PR in Use pybind11 in _c_internal_utils module #26794) -
ft2font
(PR in Convert ft2font extension to pybind11 #28785) -
image
(implemented in Use pybind11 in image module #26275) -
path
Convert path extension to pybind11 #27087 -
qhull
(PR in Use pybind11 for qhull wrapper #27184) -
tkagg
(PR in Convert TkAgg utilities to pybind11 #26992) -
tri
(implemented in Use pybind11 for tri module #24522) -
ttconv
(implemented in Use pybind11 in ttconv module #25253) -
macosx
(developer needs access to macOS)
Other work required:
- Update to use PEP517/518-complicant build system. Not strictly required but makes the build process simpler so ideally would be done before merging any specific extension PRs. Work on this has started in Start transitioning to pyproject.toml #23829; for
pybind11
we only really need the[build-system]
section ofpyproject.toml
which was added in Simplest pyproject.toml containing build-system only #24102. - Remove unneeded wrapper code in
src
directory such as thearray_view
class when all extensions completed. Pybind11 cleanup #28857 - Remove
numpy
as a build-time dependency when all extensions completed aspybind11
does not require it. Pybind11 cleanup #28857