-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
doc: Improve CMake setup hook docs, following Meson's
See also #342868
- Loading branch information
1 parent
2b86296
commit 1564158
Showing
1 changed file
with
33 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,35 @@ | ||
# cmake {#cmake} | ||
|
||
Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to `CMAKE_PREFIX_PATH` so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hook’s behavior by setting `configurePhase` to a custom value, or by setting `dontUseCmakeConfigure`. `cmakeFlags` controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator. | ||
Overrides the default configure phase to run the CMake command. | ||
|
||
By default, we use the Make generator of CMake. | ||
But when Ninja is also available as a `nativeBuildInput`, this setup hook will detect that and use the ninja generator. | ||
|
||
Dependencies are added automatically to `CMAKE_PREFIX_PATH` so that packages are correctly detected by CMake. | ||
Some additional flags are passed in to give similar behavior to configure-based packages. | ||
|
||
By default, parallel building is enabled as CMake supports parallel building almost everywhere. | ||
|
||
You can disable this hook’s behavior by setting `configurePhase` to a custom value, or by setting `dontUseCmakeConfigure`. | ||
|
||
## Variables controlling CMake {#cmake-variables-controlling} | ||
|
||
### CMake Exclusive Variables {#cmake-exclusive-variables} | ||
|
||
#### `cmakeFlags` {#cmake-flags} | ||
|
||
Controls the flags passed to `cmake setup` during configure phase. | ||
|
||
#### `cmakeBuildDir` {#cmake-build-dir} | ||
|
||
Directory where CMake will put intermediate files. | ||
|
||
Setting this can be useful for debugging multiple CMake builds while in the same source directory, for example, when building for different platforms. | ||
Different values for each build will prevent build artefacts from interefering with each other. | ||
This setting has no tangible effect when running the build in a sandboxed derivation. | ||
|
||
The default value is `build`. | ||
|
||
#### `dontUseCmakeConfigure` {#dont-use-cmake-configure} | ||
|
||
When set to true, don't use the predefined `cmakeConfigurePhase`. |