diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-09-02 06:31:13 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-09-02 06:31:13 +0000 |
commit | f782f14e584a0fb90b7e7d7873e7a15932a28786 (patch) | |
tree | e51b69dc84a9b6f4b15f26c619d90ccaaaa73f1f /pkgs/stdenv | |
parent | 3d7152db82759b0c9604411a339a703bc5d2be64 (diff) |
* Factor out an adapter to clean up the build tree.
svn path=/nixpkgs/trunk/; revision=16920
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 92970b1c51f1a..db38036615316 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)); } |