summaryrefslogtreecommitdiffstats
path: root/doc/stdenv.xml
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-11-18 23:13:02 -0600
committerMatthew Bauer <mjbauer95@gmail.com>2018-11-19 13:03:09 -0600
commit49e5bd0dbe534352b449f326d67bbc8a8b696c6a (patch)
treeda0aeb426c50634efe0a54e75dd5d26528145ade /doc/stdenv.xml
parent4621d14b4a2dc44c60222453e59c546bbfcea792 (diff)
doc/stdenv: document more setup hook
Here I document setup hooks provided by: - cmake - xcbuildHook - meson - ninja - unzip - wafHook - scons
Diffstat (limited to 'doc/stdenv.xml')
-rw-r--r--doc/stdenv.xml99
1 files changed, 98 insertions, 1 deletions
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index 68f07bfe21e3..e38ff403e748 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -2464,7 +2464,104 @@ addEnvHooks "$hostOffset" myBashFunction
</para>
</listitem>
</varlistentry>
- </variablelist>
+ <varlistentry>
+ <term>
+ cmake
+ </term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ xcbuildHook
+ </term>
+ <listitem>
+ <para>
+ Overrides the build and install phases to run the “xcbuild” command.
+ This hook is needed when a project only comes with build files for the
+ XCode build system. You can disable this behavior by setting buildPhase
+ and configurePhase to a custom value. xcbuildFlags controls flags
+ passed only to xcbuild.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ meson
+ </term>
+ <listitem>
+ <para>
+ Overrides the configure phase to run meson to generate Ninja files. You
+ can disable this behavior by setting configurePhase to a custom value,
+ or by setting dontUseMesonConfigure. To run these files, you should
+ accompany meson with ninja. mesonFlags controls only the flags passed
+ to meson. By default, parallel building is enabled as Meson supports
+ parallel building almost everywhere.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ ninja
+ </term>
+ <listitem>
+ <para>
+ Overrides the build, install, and check phase to run ninja instead of
+ make. You can disable this behavior with the dontUseNinjaBuild,
+ dontUseNinjaInstall, and dontUseNinjaCheck, respectively. Parallel
+ building is enabled by default in Ninja.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ unzip
+ </term>
+ <listitem>
+ <para>
+ This setup hook will allow you to unzip .zip files specified in $src.
+ There are many similar packages like unrar, undmg, etc.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ wafHook
+ </term>
+ <listitem>
+ <para>
+ Overrides the configure, build, and install phases. This will run the
+ "waf" script used by many projects. If waf doesn’t exist, it will copy
+ the version of waf available in Nixpkgs wafFlags can be used to pass
+ flags to the waf script.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ scons
+ </term>
+ <listitem>
+ <para>
+ Overrides the build, install, and check phases. This uses the scons
+ build system as a replacement for make. scons does not provide a
+ configure phase, so everything is managed at build and install time.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</para>
</section>
<section xml:id="sec-purity-in-nixpkgs">