Skip to content

Commit 0222bad

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 a8682a8 commit 0222bad

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

test/library/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,16 @@ target_sources(
3232
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
3333
add_docs(docs)
3434
clang_tidy_interface(TARGET test_lib EXCLUDE_FILESETS exclusions)
35+
36+
if(CLANG_TIDY_PROGRAM)
37+
add_custom_command(
38+
OUTPUT clang_tidy_canary.alive
39+
COMMAND ${CLANG_TIDY_PROGRAM} "--verify-config" 2>clang_tidy.log
40+
COMMAND "!" "[" "-s" "clang_tidy.log" "]"
41+
COMMAND ${CMAKE_COMMAND} "-E" "touch" "clang_tidy_canary.alive"
42+
DEPENDS ${CMAKE_SOURCE_DIR}/.clang-tidy)
43+
add_custom_target(clang-tidy-canary DEPENDS clang_tidy_canary.alive)
44+
add_dependencies(quality clang-tidy-canary)
45+
add_dependencies(ci-quality clang-tidy-canary)
46+
endif()
3547
endif()

0 commit comments

Comments
 (0)