@@ -140,8 +140,12 @@ More examples are in the
140
140
All configuration options can be placed in ` pyproject.toml ` , passed via
141
141
` -C ` /` --config-setting ` in build or ` -C ` /` --config-settings ` in ` pip ` , or set
142
142
as 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:
145
149
146
150
<!-- [[[cog
147
151
from scikit_build_core.settings.skbuild_docs_readme import mk_skbuild_docs
@@ -153,112 +157,70 @@ print("```\n")
153
157
154
158
``` toml
155
159
[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.
161
161
cmake.version = " "
162
162
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.
165
164
cmake.args = []
166
165
167
166
# A table of defines to pass to CMake when configuring the project. Additive.
168
167
cmake.define = {}
169
168
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.
175
170
cmake.build-type = " Release"
176
171
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.
179
173
cmake.source-dir = " ."
180
174
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.
187
176
ninja.version = " >=1.5"
188
177
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.
191
179
ninja.make-fallback = true
192
180
193
- # The logging level to display, "DEBUG", "INFO", "WARNING", and "ERROR" are
194
- # possible options.
181
+ # The logging level to display.
195
182
logging.level = " WARNING"
196
183
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.
199
185
sdist.include = []
200
186
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.
203
188
sdist.exclude = []
204
189
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.
208
191
sdist.reproducible = true
209
192
210
193
# If set to True, CMake will be run before building the SDist.
211
194
sdist.cmake = false
212
195
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.
218
197
wheel.packages = [" src/<package>" , " python/<package>" , " <package>" ]
219
198
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.
225
200
wheel.py-api = " "
226
201
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.
230
203
wheel.expand-macos-universal-tags = false
231
204
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.
237
206
wheel.install-dir = " "
238
207
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.
242
209
wheel.license-files = " "
243
210
244
- # If set to True (the default), CMake will be run before building the wheel.
211
+ # Run CMake as part of building the wheel.
245
212
wheel.cmake = true
246
213
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.
249
215
wheel.platlib = " "
250
216
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.
255
218
wheel.exclude = []
256
219
257
220
# The build tag to use for the wheel. If empty, no build tag is used.
258
221
wheel.build-tag = " "
259
222
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.
262
224
backport.find-python = " 3.26.1"
263
225
264
226
# Select the editable mode to use. Can be "redirect" (default) or "inplace".
@@ -267,45 +229,37 @@ editable.mode = "redirect"
267
229
# Turn on verbose output for the editable mode rebuilds.
268
230
editable.verbose = true
269
231
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.
272
233
editable.rebuild = false
273
234
274
235
# Extra args to pass directly to the builder in the build step.
275
236
build.tool-args = []
276
237
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.
279
239
build.targets = []
280
240
281
241
# Verbose printout when building.
282
242
build.verbose = false
283
243
284
- # Additional ``build-system.requires``. Intended to be used in combination with
285
- # ``overrides``.
244
+ # Additional ``build-system.requires``.
286
245
build.requires = []
287
246
288
- # The components to install. If empty, all default components are installed.
247
+ # The components to install.
289
248
install.components = []
290
249
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.
293
251
install.strip = true
294
252
295
253
# The path (relative to platlib) for the file to generate.
296
254
generate[].path = ""
297
255
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.
300
257
generate[].template = ""
301
258
302
259
# The path to the template file. If empty, a template must be set.
303
260
generate[].template-path = ""
304
261
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.
309
263
generate[].location = "install"
310
264
311
265
# A message to print after a build failure.
@@ -314,15 +268,13 @@ messages.after-failure = ""
314
268
# A message to print after a successful build.
315
269
messages.after-success = " "
316
270
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.
319
272
search.site-packages = true
320
273
321
274
# List dynamic metadata fields and hook locations in this table.
322
275
metadata = {}
323
276
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.
326
278
strict-config = true
327
279
328
280
# Enable early previews of features not finalized yet.
@@ -331,7 +283,7 @@ experimental = false
331
283
# If set, this will provide a method for backward compatibility.
332
284
minimum-version = " 0.11" # current version
333
285
334
- # The build directory. Defaults to a temporary directory, but can be set .
286
+ # The CMake build directory. Defaults to a unique temporary directory.
335
287
build-dir = " "
336
288
337
289
# Immediately fail the build. This is only useful in overrides.
@@ -386,6 +338,7 @@ Science Foundation.
386
338
[ codecov-link ] : https://codecov.io/gh/scikit-build/scikit-build-core
387
339
[ conda-badge ] : https://img.shields.io/conda/vn/conda-forge/scikit-build-core
388
340
[ 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
389
342
[ discord-badge ] : https://img.shields.io/discord/803025117553754132?label=Discord%20chat%20%23scikit-build
390
343
[ discord-link ] : https://discord.gg/pypa
391
344
[ download-badge ] : https://static.pepy.tech/badge/scikit-build-core/month
0 commit comments