|
13 | 13 | (n: v: "-DFETCHCONTENT_SOURCE_DIR_${toUpper n}=${v}")
|
14 | 14 | deps;
|
15 | 15 |
|
16 |
| - filteredSrc = lib.fileset.toSource { |
17 |
| - root = src; |
18 |
| - fileset = lib.fileset.fileFilter |
19 |
| - (file: lib.elem file.name [ |
20 |
| - ".clang-tidy" |
21 |
| - "CMakeLists.txt" |
22 |
| - "fc_deps.json" |
23 |
| - "version" |
24 |
| - "run_nucleus" |
25 |
| - "recipe.yml" |
26 |
| - "greengrass-lite.target" |
27 |
| - ] || |
28 |
| - lib.any file.hasExt [ "c" "h" "S" "sql" "cmake" "in" ]) |
29 |
| - src; |
30 |
| - }; |
| 16 | + buildFileset = lib.fileset.unions (map (p: src + p) [ |
| 17 | + "/CMakeLists.txt" |
| 18 | + "/fc_deps.json" |
| 19 | + "/misc/systemd" |
| 20 | + "/misc/cmake_uninstall.cmake.in" |
| 21 | + "/version" |
| 22 | + "/modules" |
| 23 | + "/bins" |
| 24 | + ]); |
| 25 | + |
| 26 | + checkFileset = lib.fileset.unions ([ buildFileset ] ++ (map (p: src + p) [ |
| 27 | + "/.clang-tidy" |
| 28 | + "/test_modules" |
| 29 | + ])); |
31 | 30 |
|
32 | 31 | llvmStdenv = final.overrideCC final.llvmPackages.stdenv
|
33 | 32 | (final.llvmPackages.stdenv.cc.override
|
34 | 33 | { inherit (final.llvmPackages) bintools; });
|
35 | 34 |
|
36 |
| - clangBuildDir = llvmStdenv.mkDerivation { |
37 |
| - name = "clang-build-dir"; |
38 |
| - nativeBuildInputs = [ pkg-config clang-tools ]; |
39 |
| - inherit (ggl-clang) buildInputs; |
40 |
| - buildPhase = '' |
41 |
| - ${cmake}/bin/cmake -B $out -S ${filteredSrc} \ |
42 |
| - -D CMAKE_BUILD_TYPE=Debug ${toString fetchContentFlags} |
43 |
| - rm $out/CMakeFiles/CMakeConfigureLog.yaml |
44 |
| - ''; |
45 |
| - dontUnpack = true; |
46 |
| - dontPatch = true; |
47 |
| - dontConfigure = true; |
48 |
| - dontInstall = true; |
49 |
| - dontFixup = true; |
50 |
| - }; |
51 |
| - |
52 | 35 | cFiles = map (p: removePrefix ((toString src) + "/") (toString p))
|
53 | 36 | (fileset.toList (fileset.fileFilter (file: file.hasExt "c") src));
|
| 37 | + |
| 38 | + clangChecks = { |
| 39 | + src = lib.fileset.toSource { |
| 40 | + root = src; |
| 41 | + fileset = checkFileset; |
| 42 | + }; |
| 43 | + |
| 44 | + cmakeBuildDir = llvmStdenv.mkDerivation { |
| 45 | + name = "clang-cmake-build-dir"; |
| 46 | + nativeBuildInputs = [ pkg-config clang-tools ]; |
| 47 | + inherit (ggl-clang) buildInputs; |
| 48 | + buildPhase = '' |
| 49 | + ${cmake}/bin/cmake -B $out -S ${clangChecks.src} \ |
| 50 | + -D CMAKE_BUILD_TYPE=Debug ${toString fetchContentFlags} |
| 51 | + rm $out/CMakeFiles/CMakeConfigureLog.yaml |
| 52 | + ''; |
| 53 | + dontUnpack = true; |
| 54 | + dontPatch = true; |
| 55 | + dontConfigure = true; |
| 56 | + dontInstall = true; |
| 57 | + dontFixup = true; |
| 58 | + }; |
| 59 | + }; |
54 | 60 | };
|
55 | 61 | }
|
0 commit comments