mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-21 20:11:12 +00:00
Merge branch 'cmake-clang-tidy' into 'next'
cmake: Add optional clang-tidy integration See merge request STJr/SRB2!1849
This commit is contained in:
commit
7eff445d1f
3 changed files with 34 additions and 0 deletions
|
@ -53,6 +53,9 @@ else()
|
|||
set(SRB2_CONFIG_SYSTEM_LIBRARIES_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
# Clang tidy options will be ignored if CMAKE_<LANG>_CLANG_TIDY are set.
|
||||
option(SRB2_CONFIG_ENABLE_CLANG_TIDY_C "Enable default clang-tidy check configuration for C" OFF)
|
||||
option(SRB2_CONFIG_ENABLE_CLANG_TIDY_CXX "Enable default clang-tidy check configuration for C++" OFF)
|
||||
option(
|
||||
SRB2_CONFIG_SYSTEM_LIBRARIES
|
||||
"Link dependencies using CMake's find_package and do not use internal builds"
|
||||
|
|
21
cmake/Modules/clang-tidy-default.cmake
Normal file
21
cmake/Modules/clang-tidy-default.cmake
Normal file
|
@ -0,0 +1,21 @@
|
|||
find_program(CLANG_TIDY clang-tidy)
|
||||
|
||||
# Note: Apple Clang does not ship with clang tools. If you want clang-tidy on
|
||||
# macOS, it's best to install the Homebrew llvm bottle and set CLANG_TIDY
|
||||
# in your build directory. The llvm package is keg-only, so it will not
|
||||
# collide with Apple Clang.
|
||||
|
||||
function(target_set_default_clang_tidy target lang checks)
|
||||
if("${CLANG_TIDY}" STREQUAL "CLANG_TIDY-NOTFOUND")
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_target_property(c_clang_tidy_prop SRB2SDL2 C_CLANG_TIDY)
|
||||
if(NOT ("${c_clang_tidy_prop}" STREQUAL "c_clang_tidy_prop-NOTFOUND"))
|
||||
return()
|
||||
endif()
|
||||
|
||||
set_target_properties("${target}" PROPERTIES
|
||||
${lang}_CLANG_TIDY "${CLANG_TIDY};-checks=${checks}"
|
||||
)
|
||||
endfunction()
|
|
@ -1,3 +1,5 @@
|
|||
include(clang-tidy-default)
|
||||
|
||||
add_executable(SRB2SDL2 MACOSX_BUNDLE WIN32)
|
||||
|
||||
if("${CMAKE_COMPILER_IS_GNUCC}" AND "${CMAKE_SYSTEM_NAME}" MATCHES "Windows" AND NOT "${SRB2_CONFIG_SYSTEM_LIBRARIES}" AND NOT "${SRB2_CONFIG_SHARED_INTERNAL_LIBRARIES}")
|
||||
|
@ -332,3 +334,11 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL Windows AND NOT "${SRB2_CONFIG_INTERNAL_LIBRA
|
|||
COMMENT "Copying runtime DLLs"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Setup clang-tidy
|
||||
if(SRB2_CONFIG_ENABLE_CLANG_TIDY_C)
|
||||
target_set_default_clang_tidy(SRB2SDL2 C "-*,clang-analyzer-*,-clang-analyzer-cplusplus-*")
|
||||
endif()
|
||||
if(SRB2_CONFIG_ENABLE_CLANG_TIDY_CXX)
|
||||
target_set_default_clang_tidy(SRB2SDL2 CXX "-*,clang-analyzer-*,modernize-*")
|
||||
endif()
|
||||
|
|
Loading…
Reference in a new issue