diff --git a/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch b/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch new file mode 100644 index 00000000000..bcb3ac1d146 --- /dev/null +++ b/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch @@ -0,0 +1,33 @@ +From 6ab08bc1c889e4fb9a39432b1a654eaa19ee65eb Mon Sep 17 00:00:00 2001 +From: Austin Seipp +Date: Fri, 2 May 2014 12:28:23 -0500 +Subject: [PATCH] Fix scan-build to use NIX_CFLAGS_COMPILE + +Signed-off-by: Austin Seipp +--- + tools/scan-build/ccc-analyzer | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/tools/scan-build/ccc-analyzer b/tools/scan-build/ccc-analyzer +index b463ec0..9d39dd0 100755 +--- a/tools/scan-build/ccc-analyzer ++++ b/tools/scan-build/ccc-analyzer +@@ -207,6 +207,15 @@ sub Analyze { + push @Args, "-Xclang", "-analyzer-viz-egraph-ubigraph"; + } + ++ ++ # Add Nix flags to analysis ++ if (defined $ENV{'NIX_CFLAGS_COMPILE'}) { ++ my @nixArgs = split(/\s+/, $ENV{'NIX_CFLAGS_COMPILE'}); ++ foreach my $nixArg (@nixArgs) { ++ push @Args, $nixArg; ++ } ++ } ++ + my $AnalysisArgs = GetCCArgs("--analyze", \@Args); + @CmdArgs = @$AnalysisArgs; + } +-- +1.8.3.2 + diff --git a/pkgs/development/tools/analysis/clang-analyzer/default.nix b/pkgs/development/tools/analysis/clang-analyzer/default.nix index b61c3e569c8..50583f65f60 100644 --- a/pkgs/development/tools/analysis/clang-analyzer/default.nix +++ b/pkgs/development/tools/analysis/clang-analyzer/default.nix @@ -9,6 +9,7 @@ stdenv.mkDerivation rec { sha256 = "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92"; }; + patches = [ ./0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch ]; buildInputs = [ clang llvmPackages.clang perl makeWrapper ]; buildPhase = "true"; @@ -18,7 +19,10 @@ stdenv.mkDerivation rec { cp -R tools/scan-build $out/libexec makeWrapper $out/libexec/scan-view/scan-view $out/bin/scan-view - makeWrapper $out/libexec/scan-build/scan-build $out/bin/scan-build --add-flags "--use-cc=${clang}/bin/clang" --add-flags "--use-c++=${clang}/bin/clang++" --add-flags "--use-analyzer=${llvmPackages.clang}/bin/clang" + makeWrapper $out/libexec/scan-build/scan-build $out/bin/scan-build \ + --add-flags "--use-cc=${clang}/bin/clang" \ + --add-flags "--use-c++=${clang}/bin/clang++" \ + --add-flags "--use-analyzer='${llvmPackages.clang}/bin/clang'" ''; meta = { @@ -28,4 +32,4 @@ stdenv.mkDerivation rec { platforms = stdenv.lib.platforms.unix; maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; }; -} \ No newline at end of file +}