scikit-build is a Python build system for CPython C/C++/Fortran/Cython extensions using CMake.
The scikit-build package is fundamentally just glue between the setuptools
Python module and CMake.
The next generation of scikit-build, scikit-build-core, is currently under development. This provides a simple, reliable build backend for CMake that does not use setuptools and provides a lot of new features. Scikit-build-core can also power a setuptools-based extension system, which will eventually become the backend for scikit-build (classic). If you do not require extensive customization of the build process, you should consider trying scikit-build-core instead of scikit-build.
To get started, see this example. For more examples, see scikit-build-sample-projects.
Versions | Downloads |
---|---|
Please use the first citation when referencing scikit-build in scientific publications.
PyCMake was created at SciPy 2014 in response to general difficulties building C++ and Fortran based Python extensions across platforms. It was renamed to "scikit-build" in 2016. Scikit-build-core was started in 2022.
These issues are likely to be addressed in upcoming releases, and are already addressed in scikit-build-core.
setup()
currently._skbuild
) may need to be deleted between builds in
some cases (like rebuilding with a different Python interpreter).We are also working on improving scikit-build, so there are some upcoming changes and deprecations:
test
command, easy_install
, etc.If you need any of these features, please open or find an issue explaining what and why you need something.
Support for this work was provided by NSF grant OAC-2209877.