Reviewed-on: #1 Co-authored-by: Tobias Schmidl <tobias@schmidl.dev> Co-committed-by: Tobias Schmidl <tobias@schmidl.dev>
53 lines
1.6 KiB
CMake
53 lines
1.6 KiB
CMake
# SPDX-FileCopyrightText: 2023 github.com/TheLartians
|
|
#
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
# 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#1f822d1fc87c8d7720c074cde8a278b44963c354")
|
|
|
|
if(USE_SANITIZER)
|
|
include(${cmake-scripts_SOURCE_DIR}/sanitizers.cmake)
|
|
endif()
|
|
|
|
# cmake-lint: disable=C0103
|
|
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.3")
|
|
endif()
|