diff --git a/CMakeLists.txt b/CMakeLists.txt index 03b9bf5a0..9a7910391 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,15 +8,6 @@ option(CMAKE_POSITION_INDEPENDENT_CODE "Set -fPIC" ON) option(WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) option(COVERAGE "Coverage" OFF) -if(NOT DEFINED CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - -if(NOT DEFINED CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) -endif() -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) diff --git a/cmake/CompilerOptions.cmake b/cmake/CompilerOptions.cmake index 144b3e01d..d3ce91e4b 100644 --- a/cmake/CompilerOptions.cmake +++ b/cmake/CompilerOptions.cmake @@ -1,13 +1,7 @@ +include("${CMAKE_CURRENT_LIST_DIR}/SetDefaultProfile.cmake") + if(MSVC) set_property(GLOBAL PROPERTY USE_FOLDERS ON) - if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) - if(BUILD_SHARED_LIBS) - # shared spdlog requires MultiThreadedDLL - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") - else() - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - endif() - endif() add_definitions(-DWIN32 -D_WINDOWS) add_compile_options(/W4 /GR /EHsc /utf-8 /wd4244 /wd4996) add_compile_options("$<$:/Ox;/Ob2>") diff --git a/cmake/SetDefaultProfile.cmake b/cmake/SetDefaultProfile.cmake new file mode 100644 index 000000000..2f4424c18 --- /dev/null +++ b/cmake/SetDefaultProfile.cmake @@ -0,0 +1,18 @@ +if(NOT DEFINED CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + +if(NOT DEFINED CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) +endif() +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +if(MSVC AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) + if(BUILD_SHARED_LIBS) + # shared spdlog requires MultiThreadedDLL + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") + else() + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + endif() +endif() diff --git a/cmake/ThirdParty.cmake b/cmake/ThirdParty.cmake index abbccc5e6..2c6441589 100644 --- a/cmake/ThirdParty.cmake +++ b/cmake/ThirdParty.cmake @@ -11,12 +11,7 @@ if(USE_CONAN) if(CMAKE_VERSION VERSION_LESS 3.24) message(FATAL_ERROR "Automatic Conan integration requires CMake 3.24 or later.") endif() - if(NOT DEFINED CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) - endif() - if(NOT DEFINED CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) - endif() + include("${CMAKE_CURRENT_LIST_DIR}/SetDefaultProfile.cmake") list(APPEND CMAKE_PROJECT_TOP_LEVEL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/conan_provider.cmake) endif()