4 # Finds clang-tidy and sets it up to run along with the compiler for C and CXX.
6 find_program(CLANG_TIDY_EXECUTABLE clang-tidy)
8 if(CLANG_TIDY_EXECUTABLE)
9 execute_process(COMMAND "${CLANG_TIDY_EXECUTABLE}" --version
10 OUTPUT_VARIABLE CLANG_TIDY_VERSION
11 OUTPUT_STRIP_TRAILING_WHITESPACE)
12 string(REGEX MATCH "[^\n]* version [^\n]*" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}")
13 string(REGEX REPLACE ".* version (.*)" "\\1" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}")
16 include(FindPackageHandleStandardArgs)
17 find_package_handle_standard_args(ClangTidy REQUIRED_VARS CLANG_TIDY_EXECUTABLE
18 VERSION_VAR CLANG_TIDY_VERSION)
21 if(CORE_SYSTEM_NAME STREQUAL android)
22 set(CLANG_TIDY_EXECUTABLE ${CLANG_TIDY_EXECUTABLE};--extra-arg-before=--target=${HOST})
24 # Supports Unix Makefiles and Ninja
25 set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
26 set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
29 mark_as_advanced(CLANG_TIDY_EXECUTABLE)