Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
cmake_minimum_required(VERSION 3.16)
project(C2Core LANGUAGES CXX)

# --- Use the static MSVC runtime (/MT, /MTd) everywhere on Windows ---
if(MSVC)
# Make CMAKE_MSVC_RUNTIME_LIBRARY authoritative
cmake_policy(SET CMP0091 NEW)
# Use /MT for Release-like configs and /MTd for Debug
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" CACHE STRING "" FORCE)

# (Optional) clean any /MD that third-parties might have injected into global flags
foreach(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_MINSIZEREL)
if(DEFINED ${flag_var})
string(REGEX REPLACE "/MDd" "" ${flag_var} "${${flag_var}}")
string(REGEX REPLACE "/MD" "" ${flag_var} "${${flag_var}}")
endif()
endforeach()

add_compile_definitions(
NOMINMAX # <-- disables Windows min/max macros
)
endif()
# --------------------------------------------------------------------

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Expand Down
Loading