@@ -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