38 lines
1.2 KiB
CMake
38 lines
1.2 KiB
CMake
# cmake/Setup.cmake
|
|
# Handles initial project setup and global configurations.
|
|
|
|
# Basic CMake Configuration
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
|
|
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
|
|
|
# Standard Settings
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CUDA_STANDARD 17)
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
# MSVC runtime lib can be either "MultiThreaded" or "MultiThreadedDLL", /MT and /MD respectively
|
|
set(MSVC_RT_LIB "MultiThreadedDLL")
|
|
|
|
# Initialize job pools for parallel builds
|
|
set_property(GLOBAL PROPERTY JOB_POOLS one_jobs=1 two_jobs=2)
|
|
|
|
# Set Windows specific flags
|
|
if(WIN32)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSD_WINDOWS_BUILD=true")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSD_WINDOWS_BUILD=true")
|
|
endif()
|
|
|
|
# NOTE: SD_CPU/SD_CUDA logic, SD_LIBRARY_NAME, and DEFAULT_ENGINE
|
|
# are now handled in the main CMakeLists.txt before this file is included
|
|
|
|
# Set optimization level based on GCC_FUNCTRACE
|
|
if(SD_GCC_FUNCTRACE)
|
|
message("Set optimization for functrace ${SD_GCC_FUNCTRACE}")
|
|
set(SD_OPTIMIZATION_LEVEL "0")
|
|
else()
|
|
message("Set optimization level for no functrace ${SD_GCC_FUNCTRACE}")
|
|
set(SD_OPTIMIZATION_LEVEL "3")
|
|
endif()
|
|
message("Set default optimization level ${SD_OPTIMIZATION_LEVEL}")
|