1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-30 13:41:13 +02:00
ModernCppStarter/cmake/tools.cmake
2021-03-22 09:09:15 +01:00

66 lines
1.7 KiB
CMake

# this file contains a list of tools that can be activated and downloaded on-demand each tool is
# enabled during configuration by passing an additional `-DUSE_<TOOL>=<VALUE>` argument to CMake
# only activate tools for top level project
if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
return()
endif()
include(${CMAKE_CURRENT_LIST_DIR}/CPM.cmake)
# enables sanitizers support using the the `USE_SANITIZER` flag available values are: Address,
# Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined'
if(USE_SANITIZER OR USE_STATIC_ANALYZER)
CPMAddPackage("gh:StableCoder/cmake-scripts#3d2d5a9fb26f0ce24e3e4eaeeff686ec2ecfb3fb")
if(USE_SANITIZER)
include(${cmake-scripts_SOURCE_DIR}/sanitizers.cmake)
endif()
if(USE_STATIC_ANALYZER)
if("clang-tidy" IN_LIST USE_STATIC_ANALYZER)
set(CLANG_TIDY
ON
CACHE INTERNAL ""
)
else()
set(CLANG_TIDY
OFF
CACHE INTERNAL ""
)
endif()
if("iwyu" IN_LIST USE_STATIC_ANALYZER)
set(IWYU
ON
CACHE INTERNAL ""
)
else()
set(IWYU
OFF
CACHE INTERNAL ""
)
endif()
if("cppcheck" IN_LIST USE_STATIC_ANALYZER)
set(CPPCHECK
ON
CACHE INTERNAL ""
)
else()
set(CPPCHECK
OFF
CACHE INTERNAL ""
)
endif()
include(${cmake-scripts_SOURCE_DIR}/tools.cmake)
clang_tidy(${CLANG_TIDY_ARGS})
include_what_you_use(${IWYU_ARGS})
cppcheck(${CPPCHECK_ARGS})
endif()
endif()
# enables CCACHE support through the USE_CCACHE flag possible values are: YES, NO or equivalent
if(USE_CCACHE)
CPMAddPackage("gh:TheLartians/Ccache.cmake@1.2.1")
endif()