diff options
Diffstat (limited to 'pkgs/development/tools/analysis/clang-analyzer/default.nix')
-rw-r--r-- | pkgs/development/tools/analysis/clang-analyzer/default.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pkgs/development/tools/analysis/clang-analyzer/default.nix b/pkgs/development/tools/analysis/clang-analyzer/default.nix new file mode 100644 index 00000000000..46e04aaf389 --- /dev/null +++ b/pkgs/development/tools/analysis/clang-analyzer/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, clang, llvmPackages, perl, makeWrapper, python3 }: + +stdenv.mkDerivation rec { + pname = "clang-analyzer"; + inherit (llvmPackages.clang-unwrapped) src version; + + patches = [ ./0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch ]; + buildInputs = [ clang llvmPackages.clang perl python3 ]; + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/scan-view $out/bin + cp -R clang/tools/scan-view/share/* $out/share/scan-view + cp -R clang/tools/scan-view/bin/* $out/bin/scan-view + cp -R clang/tools/scan-build/* $out + + rm $out/bin/*.bat $out/libexec/*.bat $out/CMakeLists.txt + + wrapProgram $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 = { + description = "Clang Static Analyzer"; + longDescription = '' + The Clang Static Analyzer is a source code analysis tool that finds bugs + in C, C++, and Objective-C programs. + ''; + homepage = "https://clang-analyzer.llvm.org/"; + license = lib.licenses.bsd3; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.thoughtpolice ]; + }; +} |