1414[![Gitter][gitter-badge]][gitter-link]
1515-->
1616
17- ** WARNING** : Only the pyproject-based builder should be used (setuptools backend
18- is experimental and likely to move to a separate package), and internal API is
19- still being solidified. A future version of this package will support creating
20- new build extensions.
21-
2217Features over classic Scikit-build:
2318
2419- Better warnings, errors, and logging
@@ -27,12 +22,14 @@ Features over classic Scikit-build:
2722- No dependency on setuptools, distutils, or wheel in build mode.
2823- Powerful config system, including config options support in build mode.
2924- Automatic inclusion of site-packages in ` CMAKE_PREFIX_PATH `
30- - FindPython is backported if running on CMake < 3.24 (included via hatchling in
31- a submodule, configurable)
25+ - FindPython is backported if running on CMake < 3.26 (configurable), supports
26+ PyPY SOABI.
3227- Limited API / Stable ABI and pythonless tags supported via config option
3328- No slow generator search, ninja/make or MSVC used by default, respects
3429 ` CMAKE_GENERATOR `
3530- SDists are reproducible by default (UNIX, Python 3.9+)
31+ - Support for caching between builds (opt-in by setting ` build-dir ` )
32+ - Support for writing out to extra wheel folders (scripts, headers, data)
3633
3734The following limitations are present compared to classic scikit-build:
3835
@@ -41,23 +38,28 @@ The following limitations are present compared to classic scikit-build:
4138
4239Some known missing features that will be developed soon:
4340
44- - Support for caching between builds is currently opt-in with ` build-dir `
4541- No editable mode support
4642- The docs are not written
4743- Dedicated entrypoints are planned for projects wanting to support discovery
4844- No support for other targets besides install
4945- Wheels are not fully reproducible yet
46+ - Dynamic metadata support is being developed
5047
5148Other backends are also planned:
5249
5350- Setuptools integration highly experimental
5451- The extensionlib integration is missing
5552- No hatchling plugin yet
5653
57- The recommended interface is the PEP 517 interface. There is also a
54+ The recommended interface is the PEP 517 interface. There is also a WIP
5855setuptools-based interface that is being developed to provide a transition path
5956for classic scikit-build.
6057
58+ ** WARNING** : Only the pyproject-based builder should be used; the setuptools
59+ backend is experimental and likely to move to a separate package before being
60+ declared stable, and internal API is still being solidified. A future version of
61+ this package will support creating new build extensions.
62+
6163## Example
6264
6365To use scikit-build-core, add it to your ` build-system.requires ` , and specify
@@ -82,7 +84,7 @@ printouts) or `pyproject` (pre-load some dependencies) extras if you want.
8284An example ` CMakeLists.txt ` :
8385
8486``` cmake
85- cmake_minimum_required(VERSION 3.15...3.25 )
87+ cmake_minimum_required(VERSION 3.15...3.26 )
8688
8789project(${SKBUILD_PROJECT_NAME} LANGUAGES C VERSION ${SKBUILD_PROJECT_VERSION})
8890
@@ -166,7 +168,7 @@ wheel.install-dir = "."
166168# This will backport an internal copy of FindPython if CMake is less than this
167169# value. Set to 0 or the empty string to disable. The default will be kept in
168170# sync with the version of FindPython stored in scikit-build-core.
169- backport.find-python = " 3.24 "
171+ backport.find-python = " 3.26 "
170172
171173# Enable experimental features if any are available
172174experimental = false
@@ -176,7 +178,7 @@ strict-config = true
176178
177179# This provides some backward compatibility if set. Defaults to the latest
178180# scikit-build-core version.
179- minimum-version = " 0.1 " # current version
181+ minimum-version = " 0.2 " # current version
180182
181183# Build directory (empty will use a temporary directory). {cache_tag} is
182184# available to provide a unique directory per interpreter.
0 commit comments