-
Notifications
You must be signed in to change notification settings - Fork 19
/
clang-tidy.cmake
32 lines (28 loc) · 1.05 KB
/
clang-tidy.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -------------------------------------------------------------------------------
# Setup clang-tidy for specific targets
# -------------------------------------------------------------------------------
find_program(CLANG_TIDY_EXECUTABLE NAMES clang-tidy-5.0 clang-tidy-15 clang-tidy)
# Add target to lint the given source files
function(add_clang_tidy_target TARGET INPUT)
if(NOT INPUT)
add_custom_target(${TARGET})
return()
endif()
# Remove duplicates & sort
list(REMOVE_DUPLICATES INPUT)
list(SORT INPUT)
# message(STATUS "LINT ${TARGET}: ${INPUT}")
# Add target
add_custom_target(${TARGET}
COMMAND ${CMAKE_COMMAND} -E chdir
${CMAKE_CURRENT_SOURCE_DIR}
${CLANG_TIDY_EXECUTABLE}
"-quiet"
"-header-filter=${CMAKE_CURRENT_SOURCE_DIR}/include"
"--format-style=file"
"--fix"
"-p=${CMAKE_CURRENT_BINARY_DIR}"
${INPUT}
COMMENT "Running ${TARGET}"
VERBATIM)
endfunction()