Merge pull request #23092 from webosbrew/feature/webOS
[xbmc.git] / cmake / modules / buildtools / FindClangTidy.cmake
blobc133175fec4323d78aa3e8e833e1d537b90b7fd7
1 #.rst:
2 # FindClangTidy
3 # -------------
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}")
14 endif()
16 include(FindPackageHandleStandardArgs)
17 find_package_handle_standard_args(ClangTidy REQUIRED_VARS CLANG_TIDY_EXECUTABLE
18                                   VERSION_VAR CLANG_TIDY_VERSION)
20 if(CLANGTIDY_FOUND)
21   if(CORE_SYSTEM_NAME STREQUAL android)
22     set(CLANG_TIDY_EXECUTABLE ${CLANG_TIDY_EXECUTABLE};--extra-arg-before=--target=${HOST})
23   endif()
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)
27 endif()
29 mark_as_advanced(CLANG_TIDY_EXECUTABLE)