/scikit-build

Improved build system generator for CPython C, C++, Cython and Fortran extensions

Primary LanguagePythonOtherNOASSERTION

scikit-build

https://dev.azure.com/scikit-build/scikit-build/_apis/build/status/scikit-build.scikit-build?branchName=main Code coverage status GitHub Discussion

Improved build system generator for CPython C/C++/Fortran/Cython extensions.

Better support is available for additional compilers, build systems, cross compilation, and locating dependencies and determining their build requirements.

The scikit-build package is fundamentally just glue between the setuptools Python module and CMake.

To get started, see this example and scikit-build-sample-projects.

Latest Release

Versions Downloads
https://img.shields.io/pypi/dm/scikit-build

History

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.

Known Issues

These issues are likely to be addressed in upcoming releases.

  • Editable installs do not work with the latest versions of Setuptools (and had issues with older versions, too).
  • Configuration scikit-build cares about _must_ be specified in setup() currently.
  • The cache directory (_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:

  • All deprecated setuptools/distutils features are also deprecated in scikit-build, like the test command, easy_install, etc.
  • Older versions of CMake (<3.15) are not recommended; a future version will remove support for older CMake's (along with providing a better mechanism for ensuring a proper CMake is available).

If you need any of these features, please open or find an issue explaining what and why you need something.

Miscellaneous

Support for this work was provided by NSF cooperative agreement OAC-2209877.