# 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_=` 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() 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()