1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 llvmPackages,
6 cmake,
7 makeWrapper,
8 versionCheckHook,
9 gitUpdater,
10}:
11
12stdenv.mkDerivation (finalAttrs: {
13 pname = "clazy";
14 version = "1.15";
15
16 src = fetchFromGitHub {
17 owner = "KDE";
18 repo = "clazy";
19 tag = finalAttrs.version;
20 hash = "sha256-i/tqH2RHU+LwvMFI8ft92j0i04mQxLVIyrGXlqzMGWs=";
21 };
22
23 buildInputs = [
24 llvmPackages.llvm
25 llvmPackages.libclang
26 ];
27
28 nativeBuildInputs = [
29 cmake
30 makeWrapper
31 ];
32
33 postInstall = ''
34 wrapProgram $out/bin/clazy \
35 --suffix PATH : "${llvmPackages.clang}/bin/" \
36 --suffix CPATH : "$(<${llvmPackages.clang}/nix-support/libc-cflags)" \
37 --suffix CPATH : "${llvmPackages.clang}/resource-root/include" \
38 --suffix CPLUS_INCLUDE_PATH : "$(<${llvmPackages.clang}/nix-support/libcxx-cxxflags)" \
39 --suffix CPLUS_INCLUDE_PATH : "$(<${llvmPackages.clang}/nix-support/libc-cflags)" \
40 --suffix CPLUS_INCLUDE_PATH : "${llvmPackages.clang}/resource-root/include"
41
42 wrapProgram $out/bin/clazy-standalone \
43 --suffix CPATH : "$(<${llvmPackages.clang}/nix-support/libc-cflags)" \
44 --suffix CPATH : "${llvmPackages.clang}/resource-root/include" \
45 --suffix CPLUS_INCLUDE_PATH : "$(<${llvmPackages.clang}/nix-support/libcxx-cxxflags)" \
46 --suffix CPLUS_INCLUDE_PATH : "$(<${llvmPackages.clang}/nix-support/libc-cflags)" \
47 --suffix CPLUS_INCLUDE_PATH : "${llvmPackages.clang}/resource-root/include"
48 '';
49
50 nativeInstallCheckInputs = [
51 versionCheckHook
52 ];
53 versionCheckProgramArg = "--version";
54 doInstallCheck = true;
55
56 passthru = {
57 updateScript = gitUpdater { };
58 };
59
60 meta = {
61 description = "Qt-oriented static code analyzer based on the Clang framework";
62 homepage = "https://github.com/KDE/clazy";
63 changelog = "https://github.com/KDE/clazy/blob/${finalAttrs.version}/Changelog";
64 license = lib.licenses.lgpl2Plus;
65 maintainers = [ lib.maintainers.cadkin ];
66 platforms = lib.platforms.linux;
67 };
68})