summary refs log tree commit diff
path: root/pkgs/development/tools/analysis/cppcheck/default.nix
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2023-02-15 22:15:17 +0100
committerRobert Helgesson <robert@rycee.net>2023-02-20 22:03:39 +0100
commit4375ddbf1fda94712fc6075769aaec66719547ae (patch)
treec30a78a116cfafa52b60eec45a107e860a0d9e40 /pkgs/development/tools/analysis/cppcheck/default.nix
parentae71193b88a9fe7731c76e005331cdfc95d47956 (diff)
downloadnixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar.gz
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar.bz2
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar.lz
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar.xz
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.tar.zst
nixpkgs-4375ddbf1fda94712fc6075769aaec66719547ae.zip
cppcheck: 2.9.3 -> 2.10
Note, the "bug hunting" feature was removed from version 2.10. It is
now only available in the "premium" version of cppcheck. See

  https://github.com/danmar/cppcheck/commit/8f386e15fdedff37486c683d933ccc9a1e307388

We also add a basic installation check to avoid issues in the future.
Diffstat (limited to 'pkgs/development/tools/analysis/cppcheck/default.nix')
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix34
1 files changed, 21 insertions, 13 deletions
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 1a8183ebab8..707506c03b2 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -1,45 +1,53 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, installShellFiles
 , pcre
 , python3
 , libxslt
 , docbook_xsl
 , docbook_xml_dtd_45
-, withZ3 ? true
-, z3
 , which
 }:
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "2.9.3";
+  version = "2.10";
 
   src = fetchFromGitHub {
     owner = "danmar";
     repo = "cppcheck";
     rev = version;
-    hash = "sha256-AaZzr5r+tpG5M40HSx45KCUBPhN/nSpXxS5H3FuSx2c=";
+    hash = "sha256-Ss35foFlh4sw6TxMp++0b9E5KDUjBpDPuWIHsak8OGY=";
   };
 
-  buildInputs = [ pcre
-    (python3.withPackages (ps: [ps.pygments]))
-  ] ++ lib.optionals withZ3 [ z3 ];
-  nativeBuildInputs = [ libxslt docbook_xsl docbook_xml_dtd_45 which ];
+  buildInputs = [ pcre (python3.withPackages (ps: [ps.pygments])) ];
+  nativeBuildInputs = [ installShellFiles libxslt docbook_xsl docbook_xml_dtd_45 which ];
 
-  makeFlags = [ "PREFIX=$(out)" "MATCHCOMPILER=yes" "FILESDIR=$(out)/share/cppcheck" "HAVE_RULES=yes" ]
-   ++ lib.optionals withZ3 [ "USE_Z3=yes" "CPPFLAGS=-DNEW_Z3=1" ];
+  makeFlags = [ "PREFIX=$(out)" "MATCHCOMPILER=yes" "FILESDIR=$(out)/share/cppcheck" "HAVE_RULES=yes" ];
 
   outputs = [ "out" "man" ];
 
   enableParallelBuilding = true;
 
+  postBuild = ''
+    make DB2MAN=${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl man
+  '';
+
   doCheck = true;
 
   postInstall = ''
-    make DB2MAN=${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl man
-    mkdir -p $man/share/man/man1
-    cp cppcheck.1 $man/share/man/man1/cppcheck.1
+    installManPage cppcheck.1
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    echo 'int main() {}' > ./installcheck.cpp
+    $out/bin/cppcheck ./installcheck.cpp > /dev/null
+
+    runHook postInstallCheck
   '';
 
   meta = with lib; {