aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRechi <Rechi@users.noreply.github.com>2020-10-05 01:48:47 +0200
committerRechi <Rechi@users.noreply.github.com>2020-10-05 01:48:47 +0200
commitea41be49b23fb92568b3c0478992b7eb5259bff9 (patch)
treee3ebfc2689a8025976c12ff188216d744aa056b2 /cmake
parentcdcee0d82008e6e4b4af184d5e37ffb22439e435 (diff)
[cmake] add clang-tidy support
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindClangTidy.cmake26
-rw-r--r--cmake/scripts/android/ArchSetup.cmake1
2 files changed, 27 insertions, 0 deletions
diff --git a/cmake/modules/FindClangTidy.cmake b/cmake/modules/FindClangTidy.cmake
new file mode 100644
index 0000000000..6ea614d7c6
--- /dev/null
+++ b/cmake/modules/FindClangTidy.cmake
@@ -0,0 +1,26 @@
+#.rst:
+# FindClangTidy
+# -------------
+# Finds clang-tidy and sets it up to run along with the compiler for C and CXX.
+
+find_program(CLANG_TIDY_EXECUTABLE clang-tidy)
+
+if(CLANG_TIDY_EXECUTABLE)
+ execute_process(COMMAND "${CLANG_TIDY_EXECUTABLE}" --version
+ OUTPUT_VARIABLE CLANG_TIDY_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX MATCH "[^\n]* version [^\n]*" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}")
+ string(REGEX REPLACE ".* version (.*)" "\\1" CLANG_TIDY_VERSION "${CLANG_TIDY_VERSION}")
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ClangTidy REQUIRED_VARS CLANG_TIDY_EXECUTABLE
+ VERSION_VAR CLANG_TIDY_VERSION)
+
+if(CLANGTIDY_FOUND)
+ # Supports Unix Makefiles and Ninja
+ set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
+ set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXECUTABLE}" PARENT_SCOPE)
+endif()
+
+mark_as_advanced(CLANG_TIDY_EXECUTABLE)
diff --git a/cmake/scripts/android/ArchSetup.cmake b/cmake/scripts/android/ArchSetup.cmake
index 1e529de05d..888d0425dc 100644
--- a/cmake/scripts/android/ArchSetup.cmake
+++ b/cmake/scripts/android/ArchSetup.cmake
@@ -39,6 +39,7 @@ endif()
list(APPEND SYSTEM_DEFINES -DHAS_ZEROCONF)
set(ENABLE_X11 OFF CACHE BOOL "" FORCE)
+set(ENABLE_CLANGTIDY OFF CACHE BOOL "Enable clang-tidy support?" FORCE)
set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
set(ENABLE_MDNS OFF CACHE BOOL "" FORCE)