at master 51 lines 1.3 kB view raw
1{ 2 lib, 3 stdenv, 4 clang, 5 llvmPackages, 6 perl, 7 makeWrapper, 8 python3, 9}: 10 11stdenv.mkDerivation { 12 pname = "clang-analyzer"; 13 inherit (llvmPackages.clang-unwrapped) src version; 14 15 patches = [ ./0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch ]; 16 buildInputs = [ 17 clang 18 llvmPackages.clang 19 perl 20 python3 21 ]; 22 nativeBuildInputs = [ makeWrapper ]; 23 24 dontBuild = true; 25 26 installPhase = '' 27 mkdir -p $out/share/scan-view $out/bin 28 cp -R clang/tools/scan-view/share/* $out/share/scan-view 29 cp -R clang/tools/scan-view/bin/* $out/bin/scan-view 30 cp -R clang/tools/scan-build/* $out 31 32 rm $out/bin/*.bat $out/libexec/*.bat $out/CMakeLists.txt 33 34 wrapProgram $out/bin/scan-build \ 35 --add-flags "--use-cc=${clang}/bin/clang" \ 36 --add-flags "--use-c++=${clang}/bin/clang++" \ 37 --add-flags "--use-analyzer='${llvmPackages.clang}/bin/clang'" 38 ''; 39 40 meta = { 41 description = "Clang Static Analyzer"; 42 longDescription = '' 43 The Clang Static Analyzer is a source code analysis tool that finds bugs 44 in C, C++, and Objective-C programs. 45 ''; 46 homepage = "https://clang-analyzer.llvm.org/"; 47 license = lib.licenses.bsd3; 48 platforms = lib.platforms.unix; 49 maintainers = [ lib.maintainers.thoughtpolice ]; 50 }; 51}