diff options
Diffstat (limited to 'doc/hooks/meson.section.md')
-rw-r--r-- | doc/hooks/meson.section.md | 82 |
1 files changed, 70 insertions, 12 deletions
diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index fd7779e6468..3a7fb503208 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -1,25 +1,83 @@ # Meson {#meson} -Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere. +[Meson](https://mesonbuild.com/) is an open source meta build system meant to be +fast and user-friendly. -## Variables controlling Meson {#variables-controlling-meson} +In Nixpkgs, meson comes with a setup hook that overrides the configure, check, +and install phases. -### `mesonFlags` {#mesonflags} +Being a meta build system, meson needs an accompanying backend. In the context +of Nixpkgs, the typical companion backend is [Ninja](#ninja), that provides a +setup hook registering ninja-based build and install phases. -Controls the flags passed to meson. +## Variables controlling Meson {#meson-variables-controlling} -### `mesonBuildType` {#mesonbuildtype} +### Meson Exclusive Variables {#meson-exclusive-variables} -Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`. +#### `mesonFlags` {#meson-flags} -### `mesonAutoFeatures` {#mesonautofeatures} +Controls the flags passed to `meson setup` during configure phase. -What value to set [`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `enabled`. +#### `mesonWrapMode` {#meson-wrap-mode} -### `mesonWrapMode` {#mesonwrapmode} +Which value is passed as +[`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) +to. In Nixpkgs the default value is `nodownload`, so that no subproject will be +downloaded (since network access is already disabled during deployment in +Nixpkgs). -What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `nodownload` as we disallow network access. +Note: Meson allows pre-population of subprojects that would otherwise be +downloaded. -### `dontUseMesonConfigure` {#dontusemesonconfigure} +#### `mesonBuildType` {#meson-build-type} -Disables using Meson’s `configurePhase`. +Which value is passed as +[`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to +`meson setup` during configure phase. In Nixpkgs the default value is `plain`. + +#### `mesonAutoFeatures` {#meson-auto-features} + +Which value is passed as +[`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) +to `meson setup` during configure phase. In Nixpkgs the default value is +`enabled`, meaning that every feature declared as "auto" by the meson scripts +will be enabled. + +#### `mesonCheckFlags` {#meson-check-flags} + +Controls the flags passed to `meson test` during check phase. + +#### `mesonInstallFlags` {#meson-install-flags} + +Controls the flags passed to `meson install` during install phase. + +#### `mesonInstallTags` {#meson-install-tags} + +A list of installation tags passed to Meson's commandline option +[`--tags`](https://mesonbuild.com/Installing.html#installation-tags) during +install phase. + +Note: `mesonInstallTags` should be a list of strings, that will be converted to +a comma-separated string that is recognized to `--tags`. +Example: `mesonInstallTags = [ "emulator" "assembler" ];` will be converted to +`--tags emulator,assembler`. + +#### `dontUseMesonConfigure` {#dont-use-meson-configure} + +When set to true, don't use the predefined `mesonConfigurePhase`. + +#### `dontUseMesonCheck` {#dont-use-meson-check} + +When set to true, don't use the predefined `mesonCheckPhase`. + +#### `dontUseMesonInstall` {#dont-use-meson-install} + +When set to true, don't use the predefined `mesonInstallPhase`. + +### Honored variables {#meson-honored-variables} + +The following variables commonly used by `stdenv.mkDerivation` are honored by +Meson setup hook. + +- `prefixKey` +- `enableParallelBuilding` |