summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindClangTidy.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindClangTidy.cmake')
-rw-r--r--cmake/modules/FindClangTidy.cmake26
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/modules/FindClangTidy.cmake b/cmake/modules/FindClangTidy.cmake
new file mode 100644
index 0000000..6ea614d
--- /dev/null
+++ b/cmake/modules/FindClangTidy.cmake
@@ -0,0 +1,26 @@
1#.rst:
2# FindClangTidy
3# -------------
4# Finds clang-tidy and sets it up to run along with the compiler for C and CXX.
5
6find_program(CLANG_TIDY_EXECUTABLE clang-tidy)
7
8if(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}")
14endif()
15
16include(FindPackageHandleStandardArgs)
17find_package_handle_standard_args(ClangTidy REQUIRED_VARS CLANG_TIDY_EXECUTABLE
18 VERSION_VAR CLANG_TIDY_VERSION)
19
20if(CLANGTIDY_FOUND)
21 # Supports Unix Makefiles and Ninja
22 set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
23 set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
24endif()
25
26mark_as_advanced(CLANG_TIDY_EXECUTABLE)