@@ -140,8 +140,12 @@ More examples are in the
140140All configuration options can be placed in ` pyproject.toml ` , passed via
141141` -C ` /` --config-setting ` in build or ` -C ` /` --config-settings ` in ` pip ` , or set
142142as environment variables. ` tool.scikit-build ` is used in toml, ` skbuild. ` for
143- ` -C ` options, or ` SKBUILD_* ` for environment variables. The defaults are listed
144- below:
143+ ` -C ` options, or ` SKBUILD_* ` for environment variables.
144+
145+ For a full reference and explanation of the variables see the [ online
146+ documentation] [ conf-ref ]
147+
148+ A quick summary and some defaults are listed below:
145149
146150<!-- [[[cog
147151from scikit_build_core.settings.skbuild_docs_readme import mk_skbuild_docs
@@ -153,112 +157,70 @@ print("```\n")
153157
154158``` toml
155159[tool .scikit-build ]
156- # The versions of CMake to allow. If CMake is not present on the system or does
157- # not pass this specifier, it will be downloaded via PyPI if possible. An empty
158- # string will disable this check. The default on 0.10+ is "CMakeLists.txt",
159- # which will read it from the project's CMakeLists.txt file, or ">=3.15" if
160- # unreadable or <0.10.
160+ # The versions of CMake to allow as a python-compatible specifier.
161161cmake.version = " "
162162
163- # A list of args to pass to CMake when configuring the project. Setting this in
164- # config or envvar will override toml. See also ``cmake.define``.
163+ # A list of args to pass to CMake when configuring the project.
165164cmake.args = []
166165
167166# A table of defines to pass to CMake when configuring the project. Additive.
168167cmake.define = {}
169168
170- # DEPRECATED in 0.10, use build.verbose instead.
171- cmake.verbose = " "
172-
173- # The build type to use when building the project. Valid options are: "Debug",
174- # "Release", "RelWithDebInfo", "MinSizeRel", "", etc.
169+ # The build type to use when building the project.
175170cmake.build-type = " Release"
176171
177- # The source directory to use when building the project. Currently only affects
178- # the native builder (not the setuptools plugin).
172+ # The source directory to use when building the project.
179173cmake.source-dir = " ."
180174
181- # DEPRECATED in 0.10; use build.targets instead.
182- cmake.targets = " "
183-
184- # The versions of Ninja to allow. If Ninja is not present on the system or does
185- # not pass this specifier, it will be downloaded via PyPI if possible. An empty
186- # string will disable this check.
175+ # The versions of Ninja to allow.
187176ninja.version = " >=1.5"
188177
189- # If Ninja is not present on the system or is older than required, it will be
190- # downloaded via PyPI if this is false.
178+ # Use Make as a fallback if a suitable Ninja executable is not found.
191179ninja.make-fallback = true
192180
193- # The logging level to display, "DEBUG", "INFO", "WARNING", and "ERROR" are
194- # possible options.
181+ # The logging level to display.
195182logging.level = " WARNING"
196183
197- # Files to include in the SDist even if they are skipped by default. Supports
198- # gitignore syntax.
184+ # Files to include in the SDist even if they are skipped by default. Supports gitignore syntax.
199185sdist.include = []
200186
201- # Files to exclude from the SDist even if they are included by default. Supports
202- # gitignore syntax.
187+ # Files to exclude from the SDist even if they are included by default. Supports gitignore syntax.
203188sdist.exclude = []
204189
205- # If set to True, try to build a reproducible distribution (Unix and Python 3.9+
206- # recommended). ``SOURCE_DATE_EPOCH`` will be used for timestamps, or a fixed
207- # value if not set.
190+ # Try to build a reproducible distribution.
208191sdist.reproducible = true
209192
210193# If set to True, CMake will be run before building the SDist.
211194sdist.cmake = false
212195
213- # A list of packages to auto-copy into the wheel. If this is not set, it will
214- # default to the first of ``src/<package>``, ``python/<package>``, or
215- # ``<package>`` if they exist. The prefix(s) will be stripped from the package
216- # name inside the wheel. If a dict, provides a mapping of package name to source
217- # directory.
196+ # A list of packages to auto-copy into the wheel.
218197wheel.packages = [" src/<package>" , " python/<package>" , " <package>" ]
219198
220- # The Python tags. The default (empty string) will use the default Python
221- # version. You can also set this to "cp38" to enable the CPython 3.8+ Stable ABI
222- # / Limited API (only on CPython and if the version is sufficient, otherwise
223- # this has no effect). Or you can set it to "py3" or "py2.py3" to ignore Python
224- # ABI compatibility. The ABI tag is inferred from this tag.
199+ # The Python version tag used in the wheel file.
225200wheel.py-api = " "
226201
227- # Fill out extra tags that are not required. This adds "x86_64" and "arm64" to
228- # the list of platforms when "universal2" is used, which helps older Pip's
229- # (before 21.0.1) find the correct wheel.
202+ # Fill out extra tags that are not required.
230203wheel.expand-macos-universal-tags = false
231204
232- # The install directory for the wheel. This is relative to the platlib root. You
233- # might set this to the package name. The original dir is still at
234- # SKBUILD_PLATLIB_DIR (also SKBUILD_DATA_DIR, etc. are available). EXPERIMENTAL:
235- # An absolute path will be one level higher than the platlib root, giving access
236- # to "/platlib", "/data", "/headers", and "/scripts".
205+ # The CMake install prefix relative to the platlib wheel path.
237206wheel.install-dir = " "
238207
239- # A list of license files to include in the wheel. Supports glob patterns. The
240- # default is ``["LICEN[CS]E*", "COPYING*", "NOTICE*", "AUTHORS*"]``. Must not be
241- # set if ``project.license-files`` is set.
208+ # A list of license files to include in the wheel. Supports glob patterns.
242209wheel.license-files = " "
243210
244- # If set to True (the default), CMake will be run before building the wheel.
211+ # Run CMake as part of building the wheel.
245212wheel.cmake = true
246213
247- # Target the platlib or the purelib. If not set, the default is to target the
248- # platlib if wheel.cmake is true, and the purelib otherwise.
214+ # Target the platlib or the purelib.
249215wheel.platlib = " "
250216
251- # A set of patterns to exclude from the wheel. This is additive to the SDist
252- # exclude patterns. This applies to the final paths in the wheel, and can
253- # exclude files from CMake output as well. Editable installs may not respect
254- # this exclusion.
217+ # A set of patterns to exclude from the wheel.
255218wheel.exclude = []
256219
257220# The build tag to use for the wheel. If empty, no build tag is used.
258221wheel.build-tag = " "
259222
260- # If CMake is less than this value, backport a copy of FindPython. Set to 0
261- # disable this, or the empty string.
223+ # If CMake is less than this value, backport a copy of FindPython.
262224backport.find-python = " 3.26.1"
263225
264226# Select the editable mode to use. Can be "redirect" (default) or "inplace".
@@ -267,45 +229,37 @@ editable.mode = "redirect"
267229# Turn on verbose output for the editable mode rebuilds.
268230editable.verbose = true
269231
270- # Rebuild the project when the package is imported. The build-directory must be
271- # set.
232+ # Rebuild the project when the package is imported.
272233editable.rebuild = false
273234
274235# Extra args to pass directly to the builder in the build step.
275236build.tool-args = []
276237
277- # The build targets to use when building the project. Empty builds the default
278- # target.
238+ # The build targets to use when building the project.
279239build.targets = []
280240
281241# Verbose printout when building.
282242build.verbose = false
283243
284- # Additional ``build-system.requires``. Intended to be used in combination with
285- # ``overrides``.
244+ # Additional ``build-system.requires``.
286245build.requires = []
287246
288- # The components to install. If empty, all default components are installed.
247+ # The components to install.
289248install.components = []
290249
291- # Whether to strip the binaries. True for release builds on scikit-build-core
292- # 0.5+ (0.5-0.10.5 also incorrectly set this for debug builds).
250+ # Whether to strip the binaries.
293251install.strip = true
294252
295253# The path (relative to platlib) for the file to generate.
296254generate[].path = ""
297255
298- # The template to use for the file. This includes string.Template style
299- # placeholders for all the metadata. If empty, a template-path must be set.
256+ # The template string to use for the file.
300257generate[].template = ""
301258
302259# The path to the template file. If empty, a template must be set.
303260generate[].template-path = ""
304261
305- # The place to put the generated file. The "build" directory is useful for CMake
306- # files, and the "install" directory is useful for Python files, usually. You
307- # can also write directly to the "source" directory, will overwrite existing
308- # files & remember to gitignore the file.
262+ # The place to put the generated file.
309263generate[].location = "install"
310264
311265# A message to print after a build failure.
@@ -314,15 +268,13 @@ messages.after-failure = ""
314268# A message to print after a successful build.
315269messages.after-success = " "
316270
317- # Add the python build environment site_packages folder to the CMake prefix
318- # paths.
271+ # Add the python build environment site_packages folder to the CMake prefix paths.
319272search.site-packages = true
320273
321274# List dynamic metadata fields and hook locations in this table.
322275metadata = {}
323276
324- # Strictly check all config options. If False, warnings will be printed for
325- # unknown options. If True, an error will be raised.
277+ # Strictly check all config options.
326278strict-config = true
327279
328280# Enable early previews of features not finalized yet.
@@ -331,7 +283,7 @@ experimental = false
331283# If set, this will provide a method for backward compatibility.
332284minimum-version = " 0.11" # current version
333285
334- # The build directory. Defaults to a temporary directory, but can be set .
286+ # The CMake build directory. Defaults to a unique temporary directory.
335287build-dir = " "
336288
337289# Immediately fail the build. This is only useful in overrides.
@@ -386,6 +338,7 @@ Science Foundation.
386338[ codecov-link ] : https://codecov.io/gh/scikit-build/scikit-build-core
387339[ conda-badge ] : https://img.shields.io/conda/vn/conda-forge/scikit-build-core
388340[ conda-link ] : https://github.com/conda-forge/scikit-build-core-feedstock
341+ [ conf-ref ] : https://scikit-build-core.readthedocs.io/en/latest/reference/configs.html
389342[ discord-badge ] : https://img.shields.io/discord/803025117553754132?label=Discord%20chat%20%23scikit-build
390343[ discord-link ] : https://discord.gg/pypa
391344[ download-badge ] : https://static.pepy.tech/badge/scikit-build-core/month
0 commit comments