summary refs log tree commit diff
path: root/pkgs/stdenv/default.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-28 16:36:09 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-28 16:36:09 +0100
commitcf8daf63120adedbeaf5bc8c2f396be2496a741e (patch)
tree74930a51b68976b616f8c7a7a9c1c07e191ed39c /pkgs/stdenv/default.nix
parent6fd4f635300303906fd4b068b196b8e1310b9e6d (diff)
downloadnixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar.gz
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar.bz2
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar.lz
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar.xz
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.tar.zst
nixpkgs-cf8daf63120adedbeaf5bc8c2f396be2496a741e.zip
Add an option ‘stdenv.userHook’ to set a global stdenv setup hook
This allows various applications.  It allows users to set global
optimisation flags, e.g.

  stdenv.userHook = ''NIX_CFLAGS_COMPILE+=" -funroll-loops"'';

But the impetus is as an alternative to issue #229, allowing impure
stdenv setup for people who want to use distcc:

  stdenv.userHook = "source /my/impure/setup-script.sh";

This is probably a bad idea, but at least now it's a bad idea in
people's configuration and not in Nixpkgs. :-)
Diffstat (limited to 'pkgs/stdenv/default.nix')
-rw-r--r--pkgs/stdenv/default.nix7
1 files changed, 4 insertions, 3 deletions
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index 8e0da288eec..67000670cd1 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -10,7 +10,7 @@
 # system, e.g., cygwin and mingw builds on i686-cygwin.  Most people
 # can ignore it.
 
-{system, stdenvType ? system, allPackages ? import ../.., platform}:
+{ system, stdenvType ? system, allPackages ? import ../.., platform, config }:
 
 assert system != "i686-cygwin" -> system == stdenvType;
 
@@ -24,7 +24,7 @@ rec {
   # be used with care, since many Nix packages will not build properly
   # with it (e.g., because they require GNU Make).
   stdenvNative = (import ./native {
-    inherit system allPackages;
+    inherit system allPackages config;
   }).stdenv;
 
   stdenvNativePkgs = allPackages {
@@ -35,13 +35,14 @@ rec {
 
   # The Nix build environment.
   stdenvNix = import ./nix {
+    inherit config;
     stdenv = stdenvNative;
     pkgs = stdenvNativePkgs;
   };
 
 
   # Linux standard environment.
-  stdenvLinux = (import ./linux {inherit system allPackages platform;}).stdenvLinux;
+  stdenvLinux = (import ./linux { inherit system allPackages platform config;}).stdenvLinux;
 
 
   # MinGW/MSYS standard environment.