at 23.05-pre 1.4 kB view raw
1{ lib 2, stdenv 3, fetchFromGitHub 4, pcre 5, python3 6, libxslt 7, docbook_xsl 8, docbook_xml_dtd_45 9, withZ3 ? true 10, z3 11, which 12}: 13 14stdenv.mkDerivation rec { 15 pname = "cppcheck"; 16 version = "2.9.2"; 17 18 src = fetchFromGitHub { 19 owner = "danmar"; 20 repo = "cppcheck"; 21 rev = version; 22 hash = "sha256-76JMC9kjeQO4ZuRQ4Kv7J141xy0M7kDTWWjQtJ/d5r0="; 23 }; 24 25 buildInputs = [ pcre 26 (python3.withPackages (ps: [ps.pygments])) 27 ] ++ lib.optionals withZ3 [ z3 ]; 28 nativeBuildInputs = [ libxslt docbook_xsl docbook_xml_dtd_45 which ]; 29 30 makeFlags = [ "PREFIX=$(out)" "MATCHCOMPILER=yes" "FILESDIR=$(out)/share/cppcheck" "HAVE_RULES=yes" ] 31 ++ lib.optionals withZ3 [ "USE_Z3=yes" "CPPFLAGS=-DNEW_Z3=1" ]; 32 33 outputs = [ "out" "man" ]; 34 35 enableParallelBuilding = true; 36 37 doCheck = true; 38 39 postInstall = '' 40 make DB2MAN=${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl man 41 mkdir -p $man/share/man/man1 42 cp cppcheck.1 $man/share/man/man1/cppcheck.1 43 ''; 44 45 meta = with lib; { 46 description = "A static analysis tool for C/C++ code"; 47 longDescription = '' 48 Check C/C++ code for memory leaks, mismatching allocation-deallocation, 49 buffer overruns and more. 50 ''; 51 homepage = "http://cppcheck.sourceforge.net/"; 52 license = licenses.gpl3Plus; 53 platforms = platforms.unix; 54 maintainers = with maintainers; [ joachifm ]; 55 }; 56}