Schema

The full schema for the tool.scikit-build table is below:

https://github.com/scikit-build/scikit-build-core/blob/main/src/scikit_build_core/resources/scikit-build.schema.json

Scikit-build-core’s settings.

type

object

properties

  • cmake

type

object

properties

  • minimum-version

DEPRECATED in 0.8; use version instead.

type

string

  • version

The versions of CMake to allow as a python-compatible specifier.

type

string

  • args

A list of args to pass to CMake when configuring the project.

type

array

items

type

string

  • define

A table of defines to pass to CMake when configuring the project. Additive.

type

object

patternProperties

  • .+

oneOf

oneOf

type

string

type

boolean

type

array

items

type

string

type

object

properties

  • env

type

string

minLength

1

  • default

oneOf

type

string

type

boolean

type

array

items

type

string

additionalProperties

False

  • verbose

DEPRECATED in 0.10, use build.verbose instead.

type

boolean

  • build-type

The build type to use when building the project.

type

string

default

Release

  • source-dir

The source directory to use when building the project.

type

string

default

.

  • targets

DEPRECATED in 0.10; use build.targets instead.

type

array

items

type

string

additionalProperties

False

  • ninja

type

object

properties

  • minimum-version

DEPRECATED in 0.8; use version instead.

type

string

  • version

The versions of Ninja to allow.

type

string

default

=1.5

  • make-fallback

Use Make as a fallback if a suitable Ninja executable is not found.

type

boolean

default

True

additionalProperties

False

  • logging

type

object

properties

  • level

The logging level to display.

enum

NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL

default

WARNING

additionalProperties

False

  • sdist

type

object

properties

  • include

Files to include in the SDist even if they are skipped by default. Supports gitignore syntax.

type

array

items

type

string

  • exclude

Files to exclude from the SDist even if they are included by default. Supports gitignore syntax.

type

array

items

type

string

  • reproducible

Try to build a reproducible distribution.

type

boolean

default

True

  • cmake

If set to True, CMake will be run before building the SDist.

type

boolean

default

False

additionalProperties

False

  • wheel

type

object

properties

  • packages

A list of packages to auto-copy into the wheel.

oneOf

type

array

items

type

string

type

object

patternProperties

  • .+

type

string

  • py-api

The Python version tag used in the wheel file.

type

string

default

  • expand-macos-universal-tags

Fill out extra tags that are not required.

type

boolean

default

False

  • install-dir

The CMake install prefix relative to the platlib wheel path.

type

string

default

  • license-files

A list of license files to include in the wheel. Supports glob patterns.

type

array

items

type

string

  • cmake

Run CMake as part of building the wheel.

type

boolean

default

True

  • platlib

Target the platlib or the purelib.

type

boolean

  • exclude

A set of patterns to exclude from the wheel.

type

array

items

type

string

  • build-tag

The build tag to use for the wheel. If empty, no build tag is used.

type

string

default

additionalProperties

False

  • backport

type

object

properties

  • find-python

If CMake is less than this value, backport a copy of FindPython.

type

string

default

3.26.1

additionalProperties

False

  • editable

type

object

properties

  • mode

Select the editable mode to use. Can be “redirect” (default) or “inplace”.

enum

redirect, inplace

default

redirect

  • verbose

Turn on verbose output for the editable mode rebuilds.

type

boolean

default

True

  • rebuild

Rebuild the project when the package is imported.

type

boolean

default

False

additionalProperties

False

  • build

type

object

properties

  • tool-args

Extra args to pass directly to the builder in the build step.

type

array

items

type

string

  • targets

The build targets to use when building the project.

type

array

items

type

string

  • verbose

Verbose printout when building.

type

boolean

default

False

  • requires

Additional build-system.requires.

type

array

items

type

string

additionalProperties

False

  • install

type

object

properties

  • components

The components to install.

type

array

items

type

string

  • strip

Whether to strip the binaries.

type

boolean

additionalProperties

False

  • generate

type

array

items

oneOf

type

object

properties

  • path

The path (relative to platlib) for the file to generate.

type

string

minLength

1

  • template

The template string to use for the file.

type

string

minLength

1

  • location

The place to put the generated file.

enum

install, build, source

default

install

additionalProperties

False

type

object

properties

  • path

The path (relative to platlib) for the file to generate.

type

string

minLength

1

  • template-path

The path to the template file. If empty, a template must be set.

type

string

minLength

1

  • location

The place to put the generated file.

enum

install, build, source

default

install

additionalProperties

False

  • messages

type

object

properties

  • after-failure

A message to print after a build failure.

type

string

default

  • after-success

A message to print after a successful build.

type

string

default

additionalProperties

False

  • search

type

object

properties

  • site-packages

Add the python build environment site_packages folder to the CMake prefix paths.

type

boolean

default

True

additionalProperties

False

  • metadata

List dynamic metadata fields and hook locations in this table.

type

object

properties

  • version

#/$defs/metadata

  • description

#/$defs/metadata

  • license

#/$defs/metadata

  • readme

#/$defs/metadata

  • requires-python

#/$defs/metadata

  • dependencies

#/$defs/metadata

  • optional-dependencies

#/$defs/metadata

  • entrypoints

#/$defs/metadata

  • authors

#/$defs/metadata

  • maintainers

#/$defs/metadata

  • urls

#/$defs/metadata

  • classifiers

#/$defs/metadata

  • keywords

#/$defs/metadata

  • scripts

#/$defs/metadata

  • gui-scripts

#/$defs/metadata

additionalProperties

False

  • strict-config

Strictly check all config options.

type

boolean

default

True

  • experimental

Enable early previews of features not finalized yet.

type

boolean

default

False

  • minimum-version

If set, this will provide a method for backward compatibility.

type

string

  • build-dir

The CMake build directory. Defaults to a unique temporary directory.

type

string

default

  • fail

Immediately fail the build. This is only useful in overrides.

type

boolean

default

False

  • overrides

A list of overrides to apply to the settings, based on the if selector.

type

array

items

type

object

properties

  • if

anyOf

#/$defs/if_overrides

type

object

properties

  • any

#/$defs/if_overrides

additionalProperties

False

  • inherit

type

object

properties

  • cmake

type

object

properties

  • args

#/$defs/inherit

  • define

#/$defs/inherit

  • targets

#/$defs/inherit

additionalProperties

False

  • sdist

type

object

properties

  • include

#/$defs/inherit

  • exclude

#/$defs/inherit

additionalProperties

False

  • wheel

type

object

properties

  • packages

#/$defs/inherit

  • license-files

#/$defs/inherit

  • exclude

#/$defs/inherit

additionalProperties

False

  • build

type

object

properties

  • tool-args

#/$defs/inherit

  • targets

#/$defs/inherit

  • requires

#/$defs/inherit

additionalProperties

False

  • install

type

object

properties

  • components

#/$defs/inherit

additionalProperties

False

additionalProperties

False

  • cmake

#/properties/cmake

  • ninja

#/properties/ninja

  • logging

#/properties/logging

  • sdist

#/properties/sdist

  • wheel

#/properties/wheel

  • backport

#/properties/backport

  • editable

#/properties/editable

  • build

#/properties/build

  • install

#/properties/install

  • generate

#/properties/generate

  • messages

#/properties/messages

  • search

#/properties/search

  • metadata

#/properties/metadata

  • strict-config

#/properties/strict-config

  • experimental

#/properties/experimental

  • minimum-version

#/properties/minimum-version

  • build-dir

#/properties/build-dir

  • fail

#/properties/fail

additionalProperties

False

minProperties

2

additionalProperties

False

$defs

  • metadata

type

object

properties

  • provider

type

string

  • provider-path

type

string

  • if_overrides

type

object

properties

  • scikit-build-version

The version of scikit-build-version. Takes a specifier set.

type

string

  • python-version

The two-digit Python version. Takes a specifier set.

type

string

  • implementation-name

The value of sys.implementation.name. Takes a regex

type

string

  • implementation-version

Derived from sys.implementation.version, following PEP 508. Takes a specifier set.

type

string

  • platform-system

The value of sys.platform. Takes a regex.

type

string

  • platform-machine

The value of platform.machine(). Takes a regex.

type

string

  • platform-node

The value of platform.node(). Takes a regex.

type

string

  • state

The state of the build, one of sdist, wheel, editable, metadata_wheel, and metadata_editable. Takes a regex.

type

string

  • from-sdist

Whether the build is from an sdist.

type

boolean

  • failed

Matches if the build fails. A build will be retried if there is at least one matching override with this set to true.

type

boolean

  • system-cmake

The version of CMake found on the system. Takes a specifier set.

type

string

  • cmake-wheel

Whether a cmake wheel is known to be provided for this system.

type

boolean

  • abi-flags

A sorted string of the abi flags. Takes a regex.

type

string

  • env

A table of environment variables mapped to either string regexs, or booleans. Valid ‘truthy’ environment variables are case insensitive true, on, yes, y, t, or a number more than 0.

type

object

patternProperties

  • .*

oneOf

type

string

type

boolean

additionalProperties

False

minProperties

1

additionalProperties

False

minProperties

1

  • inherit

enum

none, append, prepend

default

none