mirror of
https://github.com/TheLartians/ModernCppStarter.git
synced 2025-08-30 21:51:12 +02:00
add tools.cmake
This commit is contained in:
parent
b42b541b25
commit
18f705beed
3 changed files with 42 additions and 15 deletions
|
@ -14,12 +14,9 @@ if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
|
|||
message(FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.")
|
||||
endif()
|
||||
|
||||
# ---- Add source files ----
|
||||
# --- Import tools ----
|
||||
|
||||
# Note: globbing sources is considered bad practice as CMake's generators may not detect new files automatically.
|
||||
# Keep that in mind when changing files, or explicitly mention them here.
|
||||
FILE(GLOB_RECURSE headers CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
|
||||
FILE(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp")
|
||||
include(cmake/tools.cmake)
|
||||
|
||||
# ---- Add dependencies via CPM ----
|
||||
# see https://github.com/TheLartians/CPM.cmake for more info
|
||||
|
@ -33,6 +30,13 @@ CPMAddPackage(
|
|||
VERSION 1.0
|
||||
)
|
||||
|
||||
# ---- Add source files ----
|
||||
|
||||
# Note: globbing sources is considered bad practice as CMake's generators may not detect new files automatically.
|
||||
# Keep that in mind when changing files, or explicitly mention them here.
|
||||
FILE(GLOB_RECURSE headers CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
|
||||
FILE(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp")
|
||||
|
||||
# ---- Create library ----
|
||||
|
||||
# Note: for header-only libraries change all PUBLIC flags to INTERFACE and create an interface target:
|
||||
|
|
33
cmake/tools.cmake
Normal file
33
cmake/tools.cmake
Normal file
|
@ -0,0 +1,33 @@
|
|||
# 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
|
||||
|
||||
# determine if a tool has already been enabled
|
||||
foreach(TOOL USE_SANITIZER;USE_CCACHE)
|
||||
get_property(${TOOL}_ENABLED GLOBAL "" PROPERTY ${TOOL}_ENABLED SET)
|
||||
endforeach()
|
||||
|
||||
# enables sanitizers support using the the `USE_SANITIZER` flag
|
||||
# available values are: Address, Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined'
|
||||
if (USE_SANITIZER AND NOT USE_SANITIZER_ENABLED)
|
||||
set_property(GLOBAL PROPERTY USE_SANITIZER_ENABLED true)
|
||||
|
||||
CPMAddPackage(
|
||||
NAME StableCoder-cmake-scripts
|
||||
GITHUB_REPOSITORY StableCoder/cmake-scripts
|
||||
GIT_TAG 3a469d8251660a97dbf9e0afff0a242965d40277
|
||||
)
|
||||
|
||||
include(${StableCoder-cmake-scripts_SOURCE_DIR}/sanitizers.cmake)
|
||||
endif()
|
||||
|
||||
# enables CCACHE support through the USE_CCACHE flag
|
||||
# possible values are: YES, NO or equivalent
|
||||
if (USE_CCACHE AND NOT USE_CCACHE_ENABLED)
|
||||
set_property(GLOBAL PROPERTY USE_CCACHE_ENABLED true)
|
||||
|
||||
CPMAddPackage(
|
||||
NAME Ccache.cmake
|
||||
GITHUB_REPOSITORY TheLartians/Ccache.cmake
|
||||
VERSION 1.1
|
||||
)
|
||||
endif()
|
|
@ -34,16 +34,6 @@ CPMAddPackage(
|
|||
VERSION 1.0
|
||||
)
|
||||
|
||||
CPMAddPackage(
|
||||
NAME StableCoder-cmake-scripts
|
||||
GITHUB_REPOSITORY StableCoder/cmake-scripts
|
||||
GIT_TAG 3a469d8251660a97dbf9e0afff0a242965d40277
|
||||
)
|
||||
|
||||
# adds support the the `USE_SANITIZER` flag
|
||||
# available options are: Address, Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined'
|
||||
include(${StableCoder-cmake-scripts_SOURCE_DIR}/sanitizers.cmake)
|
||||
|
||||
# ---- Create binary ----
|
||||
|
||||
file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue