summary refs log tree commit diff
path: root/pkgs/stdenv/adapters.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-09-02 06:31:13 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-09-02 06:31:13 +0000
commitf782f14e584a0fb90b7e7d7873e7a15932a28786 (patch)
treee51b69dc84a9b6f4b15f26c619d90ccaaaa73f1f /pkgs/stdenv/adapters.nix
parent3d7152db82759b0c9604411a339a703bc5d2be64 (diff)
downloadnixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar.gz
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar.bz2
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar.lz
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar.xz
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.tar.zst
nixlib-f782f14e584a0fb90b7e7d7873e7a15932a28786.zip
* Factor out an adapter to clean up the build tree.
svn path=/nixpkgs/trunk/; revision=16920
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r--pkgs/stdenv/adapters.nix32
1 files changed, 18 insertions, 14 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 92970b1c51f1..db3803661531 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -137,6 +137,23 @@ rec {
       } stdenv;
 
 
+  cleanupBuildTree = stdenv:
+    addAttrsToDerivation
+      { postPhases = "cleanupBuildDir";
+
+        # Get rid of everything that isn't a gcno file or a C source
+        # file.  This also includes the gcda files; we're not
+        # interested in coverage resulting from the package's own test
+        # suite.
+        cleanupBuildDir =
+          ''
+            find $out/.build/ -type f -a ! \
+              \( -name "*.c" -o -name "*.h" -o -name "*.gcno" \) \
+              | xargs rm -f --
+          '';
+      } stdenv;          
+      
+
   /* Return a modified stdenv that builds packages with GCC's coverage
      instrumentation.  The coverage note files (*.gcno) are stored in
      $out/.build, along with the source code of the package, to enable
@@ -146,8 +163,6 @@ rec {
     addAttrsToDerivation
       { NIX_CFLAGS_COMPILE = "-O0 --coverage";
 
-        postPhases = "cleanupBuildDir";
-
         # This is an uberhack to prevent libtool from removing gcno
         # files.  This has been fixed in libtool, but there are
         # packages out there with old ltmain.sh scripts.
@@ -158,17 +173,6 @@ rec {
                 substituteInPlace $i --replace '*.$objext)' '*.$objext | *.gcno)'
             done
           '';
-
-        # Get rid of everything that isn't a gcno file or a C source
-        # file.  This also includes the gcda files; we're not
-        # interested in coverage resulting from the package's own test
-        # suite.
-        cleanupBuildDir =
-          ''
-            find $out/.build/ -type f -a ! \
-              \( -name "*.c" -o -name "*.gcno" -o -name "*.h" \) \
-              | xargs rm -f --
-          '';
       }
       
       # Object files instrumented with coverage analysis write
@@ -180,6 +184,6 @@ rec {
       # written there.  And to make nice coverage reports with lcov,
       # we need the source code.  So we have to use the
       # `keepBuildTree' adapter as well.
-      (keepBuildTree stdenv);
+      (cleanupBuildTree (keepBuildTree stdenv));
       
 }