diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-02-05 14:11:21 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-02-05 19:18:33 +0100 |
commit | 80647127a3e7e3eaf84dc6ff0af13ff4aaad2e0b (patch) | |
tree | e23432117b0cdfdec490c68e80da1d8e181f7b61 /pkgs/stdenv/adapters.nix | |
parent | bea2b3c5177a9fae5df5598574bd25bca8f6cb09 (diff) |
Turn the coverage analysis stdenv adapters into setup hooks
Stdenv adapters are kinda weird and un-idiomatic (especially when they don't actually change stdenv). It's more idiomatic to say buildInputs = [ makeCoverageAnalysisReport ];
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 3bac534115490..cb7e3ba925f56 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -231,29 +231,7 @@ rec { programs like lcov to produce pretty-printed reports. */ addCoverageInstrumentation = stdenv: - # Object files instrumented with coverage analysis write runtime - # coverage data to <path>/<object>.gcda, where <path> is the - # location where gcc originally created the object file. That - # would be /tmp/nix-build-<something>, which will be long gone by - # the time we run the program. Furthermore, the <object>.gcno - # files created at compile time are also 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. - let stdenv' = cleanupBuildTree (keepBuildTree stdenv); in - { mkDerivation = args: stdenv'.mkDerivation (args // { - NIX_CFLAGS_COMPILE = toString (args.NIX_CFLAGS_COMPILE or "") + " -O0 --coverage"; - postUnpack = - '' - # 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. - # See http://www.mail-archive.com/libtool@gnu.org/msg10725.html - for i in $(find -name ltmain.sh); do - substituteInPlace $i --replace '*.$objext)' '*.$objext | *.gcno)' - done - '' + args.postUnpack or ""; - }); - }; + cleanupBuildTree (keepBuildTree (overrideInStdenv stdenv [ pkgs.enableCoverageInstrumentation ])); /* Replace the meta.maintainers field of a derivation. This is useful |