CMake: Add SPDLOG_STATIC_VCRT to choose static MSVC runtime

This commit is contained in:
Romain Roffé 2021-03-04 20:13:39 +01:00
parent 69dc173979
commit b9d2f2537b

View File

@ -2,6 +2,8 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
cmake_policy(SET CMP0091 NEW)
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
# Start spdlog project # Start spdlog project
# --------------------------------------------------------------------------------------- # ---------------------------------------------------------------------------------------
@ -87,6 +89,7 @@ endif()
if(WIN32) if(WIN32)
option(SPDLOG_WCHAR_SUPPORT "Support wchar api" OFF) option(SPDLOG_WCHAR_SUPPORT "Support wchar api" OFF)
option(SPDLOG_WCHAR_FILENAMES "Support wchar filenames" OFF) option(SPDLOG_WCHAR_FILENAMES "Support wchar filenames" OFF)
option(SPDLOG_STATIC_VCRT "Force /MT for static VC runtimes" OFF)
endif() endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
option(SPDLOG_CLOCK_COARSE option(SPDLOG_CLOCK_COARSE
@ -124,6 +127,10 @@ if(NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO)
list(APPEND SPDLOG_SRCS src/fmt.cpp) list(APPEND SPDLOG_SRCS src/fmt.cpp)
endif() endif()
if(MSVC AND SPDLOG_STATIC_VCRT)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
if(SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS) if(SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS)
if(WIN32) if(WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY)