Skip to content

Commit 5afeef4

Browse files
committed
👷 Add clang-tidy canary
Problem: - `clang-tidy` exits with success if the `.clang-tidy` file is ill-formed. Solution: - Add a clang-tidy-canary target which tests if `clang-tidy` has any error output when run with `--verify-config`.
1 parent f1e4f3b commit 5afeef4

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

cmake/clang-tidy.cmake

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,16 @@ function(clang_tidy_interface)
128128

129129
compute_branch_diff(clang-tidy ".hpp")
130130
endfunction()
131+
132+
if(NOT TARGET clang-tidy-canary)
133+
message(STATUS "Adding clang-tidy-canary target for ${CMAKE_SOURCE_DIR}")
134+
add_custom_command(
135+
OUTPUT clang_tidy_canary.alive
136+
COMMAND ${CLANG_TIDY_PROGRAM} "--verify-config" 2>clang_tidy.log
137+
COMMAND "!" "[" "-s" "clang_tidy.log" "]"
138+
COMMAND ${CMAKE_COMMAND} "-E" "touch" "clang_tidy_canary.alive"
139+
DEPENDS ${CMAKE_SOURCE_DIR}/.clang-tidy)
140+
add_custom_target(clang-tidy-canary DEPENDS clang_tidy_canary.alive)
141+
add_dependencies(clang-tidy clang-tidy-canary)
142+
add_dependencies(clang-tidy-branch-diff clang-tidy-canary)
143+
endif()

0 commit comments

Comments
 (0)