Improved build system generator for Python C/C++/Fortran/Cython extensions
Project description
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 |
---|---|
Scikit-build 0.17.5
A small fix release fixing the passing on of generator specific arguments. This fixes some cases where the Ninja generator was found but then was unable to build. NetBSD was reported to work, so was added to the BSD’s supported.
Bug fixes
Generator args were missing for actual compile in #975
Add support for netbsd & pyodide (future) in #977
Scikit-build 0.17.4
A followup fix to the issue 0.17.3 tried to fix. We now have a method to manually test downstream packages, too.
Bug fixes
Make sure include dir is found even if the lib is not present in #974.
Scikit-build 0.17.3
A small release related to PYTHON_LIBRARY handling changes in 0.17.2; scikit-build 0.17.3 returns an empty string from get_python_library if no Python library is present (like on manylinux), where 0.17.2 returned None, and previous versions returned a non-existent path. Note that adding REQUIRED to find_package(PythonLibs will fail, but it is incorrect (you must not link to libPython.so) and was really just injecting a non-existent path before.
Bug fixes
Keep get_python_library return type string if python lib non-existing for now in #959.
Avoid ‘not found’ warning if libs are not found by FindPythonExtensions in #960.
FindNumPy should not call FindPythonLibs in #958.
Scikit-build 0.17.2
Another small release with fixes for non-MSVC Windows platforms.
Bug fixes
Testing
Hide a few warnings that are expected in #948.
Scikit-build 0.17.1
This is a small release fixing a few bugs; the primary one being a change that was triggering a bug in older FindPython. The unused variable messages have been deactivated to simplify output, as well.
Bug fixes
Testing
Add Fedora packaging with packit automation by @LecrisUT in #928.
Update some coverage settings in #933.
Scikit-build 0.17.0
A lot of bug fixes are present in this release, focusing on Windows, PyPy, and cross compiling. We’ve also improved the compatibility with default setuptools behaviors a little, and enabled some things that were previously unavailable, like overriding the build type via the cmake argument environment variables. We’ve expanded our CI matrix to include Windows and macOS PyPy and some Fortran tests on Linux. This release requires Python 3.7+.
Bug fixes
Match setuptools behavior for include_package_data default. by @vyasr in #873.
Misc. fixes for F2PY and PythonExtensions modules by @benbovy in #495.
Provide more useful error if user provides CMAKE_INSTALL_PREFIX by @vyasr in #872.
Stop assuming that .pyx files are in the same directory as CMakeLists.txt by @vyasr in #871.
Allow build type overriding in #902.
Detect PyPy library correctly on Windows by user:gershnik in #904.
Include library for FindPython for better Windows cross-compiles in #913. Thanks to user:maxbachmann for testing.
Fix logic for default generator when cross-compiling for ARM on Windows in #917 by @dlech.
Use f2py’s get_include if present in #877.
Fix support for cross-compilation exception using targetLinkLibrariesWithDynamicLookup by @erykoff in #901.
Treat empty MACOSX_DEPLOYMENT_TARGET as if it was unset in #918.
Testing
Miscellaneous
Publications
Please use the first citation when referencing scikit-build in scientific publications.
Jean-Christophe Fillion-Robin, Matt McCormick, Omar Padron, Max Smolens, Michael Grauer, & Michael Sarahan. (2018, July 13). jcfr/scipy_2018_scikit-build_talk: SciPy 2018 Talk | scikit-build: A Build System Generator for CPython C/C++/Fortran/Cython Extensions. Zenodo. https://doi.org/10.5281/zenodo.2565368
Schreiner, Henry, Rickerby, Joe, Grosse-Kunstleve, Ralf, Jakob, Wenzel, Darbois, Matthieu, Gokaslan, Aaron, Fillion-Robin, Jean-Christophe, & McCormick, Matt. (2022, August 1). Building Binary Extensions with pybind11, scikit-build, and cibuildwheel. https://doi.org/10.25080/majora-212e5952-033
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
Free software: MIT license
Documentation: http://scikit-build.readthedocs.org
Source code: https://github.com/scikit-build/scikit-build
Discussions: https://github.com/orgs/scikit-build/discussions
Support for this work was provided by NSF cooperative agreement OAC-2209877.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file scikit_build-0.17.5.tar.gz
.
File metadata
- Download URL: scikit_build-0.17.5.tar.gz
- Upload date:
- Size: 269.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76856e7631d9e8887a7aa71913d5f184a6177246225391af96ce4801d89fa254 |
|
MD5 | 5262823fecfc976a5accac310adaba41 |
|
BLAKE2b-256 | f823a07369d9095648b61a302cd45c9661ef2d92fe546e0eb28a467c66c7c1d3 |
Provenance
File details
Details for the file scikit_build-0.17.5-py3-none-any.whl
.
File metadata
- Download URL: scikit_build-0.17.5-py3-none-any.whl
- Upload date:
- Size: 82.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18861286b34fd2d685327d3bec6ebf4d33303adfaef28a08dd856710d16cf20f |
|
MD5 | 5afea51037b15006e610a552c31c8970 |
|
BLAKE2b-256 | e16506bcb871951945cfb1d9ec1daaa34822641503dfeedb62341b001781e1ba |