chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / cp / cppcheck / package.nix
blobd7ed4fb99c4768d25291c2359e76ea215f03e413
2   lib,
3   stdenv,
4   fetchFromGitHub,
6   docbook_xml_dtd_45,
7   docbook_xsl,
8   installShellFiles,
9   libxslt,
10   pcre,
11   pkg-config,
12   python3,
13   which,
16 stdenv.mkDerivation (finalAttrs: {
17   pname = "cppcheck";
18   version = "2.15.0";
20   outputs = [
21     "out"
22     "man"
23   ];
25   src = fetchFromGitHub {
26     owner = "danmar";
27     repo = "cppcheck";
28     rev = finalAttrs.version;
29     hash = "sha256-6AI3sy4D+YhUOpy02UHJWyhelbqcoEW+Tw/ADCPEbuM=";
30   };
32   nativeBuildInputs = [
33     docbook_xml_dtd_45
34     docbook_xsl
35     installShellFiles
36     libxslt
37     pkg-config
38     python3
39     which
40   ];
42   buildInputs = [
43     pcre
44     (python3.withPackages (ps: [ ps.pygments ]))
45   ];
47   makeFlags = [
48     "PREFIX=$(out)"
49     "MATCHCOMPILER=yes"
50     "FILESDIR=$(out)/share/cppcheck"
51     "HAVE_RULES=yes"
52   ];
54   enableParallelBuilding = true;
55   strictDeps = true;
57   # test/testcondition.cpp:4949(TestCondition::alwaysTrueContainer): Assertion failed.
58   doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
59   doInstallCheck = true;
61   postPatch = ''
62     substituteInPlace Makefile \
63       --replace 'PCRE_CONFIG = $(shell which pcre-config)' 'PCRE_CONFIG = $(PKG_CONFIG) libpcre'
64   '';
66   postBuild = ''
67     make DB2MAN=${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl man
68   '';
70   postInstall = ''
71     installManPage cppcheck.1
72   '';
74   installCheckPhase = ''
75     runHook preInstallCheck
77     echo 'int main() {}' > ./installcheck.cpp
78     $out/bin/cppcheck ./installcheck.cpp > /dev/null
80     runHook postInstallCheck
81   '';
83   meta = {
84     description = "Static analysis tool for C/C++ code";
85     longDescription = ''
86       Check C/C++ code for memory leaks, mismatching allocation-deallocation,
87       buffer overruns and more.
88     '';
89     homepage = "http://cppcheck.sourceforge.net";
90     license = lib.licenses.gpl3Plus;
91     maintainers = with lib.maintainers; [
92       joachifm
93       paveloom
94     ];
95     platforms = lib.platforms.unix;
96   };