Skip to content

Commit e4115bc

Browse files
committed
Simplify build file filter
1 parent 124188a commit e4115bc

File tree

4 files changed

+50
-41
lines changed

4 files changed

+50
-41
lines changed

nix/checks/clang-tidy.nix

+6-5
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@
66
}:
77
let
88
inherit (lib) escapeRegex;
9-
inherit (gglUtil) clangBuildDir filteredSrc llvmStdenv cFiles;
9+
inherit (gglUtil) llvmStdenv cFiles clangChecks;
1010

1111
check-clang-tidy = file: llvmStdenv.mkDerivation {
1212
name = "clang-tidy-${file}";
1313
nativeBuildInputs = [ clang-tools ];
1414
inherit (ggl-clang) buildInputs;
1515
buildPhase = ''
1616
set -eo pipefail
17-
clang-tidy -p ${clangBuildDir} --quiet --warnings-as-errors='*' \
18-
--header-filter='^${escapeRegex (toString filteredSrc)}"}' \
19-
${filteredSrc}/${file} |\
20-
sed 's|${filteredSrc}/||'
17+
clang-tidy -p ${clangChecks.cmakeBuildDir} \
18+
--quiet --warnings-as-errors='*' \
19+
--header-filter='^${escapeRegex (toString clangChecks.src)}"}' \
20+
${clangChecks.src}/${file} |\
21+
sed 's|${clangChecks.src}/||'
2122
touch $out
2223
'';
2324
dontUnpack = true;

nix/checks/iwyu.nix

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
, ...
66
}:
77
let
8-
inherit (gglUtil) clangBuildDir filteredSrc llvmStdenv cFiles;
8+
inherit (gglUtil) llvmStdenv cFiles clangChecks;
99

1010
check-iwyu = file: llvmStdenv.mkDerivation {
1111
name = "iwyu-${file}";
@@ -16,12 +16,13 @@ let
1616
white=$(printf "\e[1;37m")
1717
red=$(printf "\e[1;31m")
1818
clear=$(printf "\e[0m")
19-
iwyu_tool.py -p ${clangBuildDir} ${filteredSrc}/${file} -o clang -- \
20-
-Xiwyu --error -Xiwyu --check_also="${filteredSrc}/*" \
19+
iwyu_tool.py -p ${clangChecks.cmakeBuildDir} \
20+
${clangChecks.src}/${file} -o clang -- \
21+
-Xiwyu --error -Xiwyu --check_also="${clangChecks.src}/*" \
2122
-Xiwyu --mapping_file=${src}/misc/iwyu_mappings.yml |\
2223
{ grep error: || true; } |\
2324
sed 's|\(.*\)error:\(.*\)|'$white'\1'$red'error:'$white'\2'$clear'|' |\
24-
sed 's|${filteredSrc}/||'
25+
sed 's|${clangChecks.src}/||'
2526
touch $out
2627
'';
2728
dontUnpack = true;

nix/package.nix

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{ lib
22
, gglUtil
3+
, src
34
, stdenv
45
, pkg-config
56
, cmake
@@ -19,7 +20,7 @@
1920
}:
2021
stdenv.mkDerivation {
2122
name = "aws-greengrass-lite";
22-
src = gglUtil.filteredSrc;
23+
src = lib.fileset.toSource { root = src; fileset = gglUtil.buildFileset; };
2324
nativeBuildInputs = [ pkg-config cmake ninja ];
2425
buildInputs = [
2526
openssl

nix/withOverlays.nix

+37-31
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,49 @@ in
1313
(n: v: "-DFETCHCONTENT_SOURCE_DIR_${toUpper n}=${v}")
1414
deps;
1515

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+
]));
3130

3231
llvmStdenv = final.overrideCC final.llvmPackages.stdenv
3332
(final.llvmPackages.stdenv.cc.override
3433
{ inherit (final.llvmPackages) bintools; });
3534

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-
5235
cFiles = map (p: removePrefix ((toString src) + "/") (toString p))
5336
(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+
};
5460
};
5561
}

0 commit comments

Comments
 (0)