From c84e5ea4c9b8c8e7f510780b4465b8b8ea0b9506 Mon Sep 17 00:00:00 2001 From: Carsten Teibes Date: Fri, 26 Apr 2024 19:51:55 +0200 Subject: [PATCH] Update CMake Windows/MSVC configuration --- Modules/ConfigureWindows.cmake | 42 ++++++++-------------------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/Modules/ConfigureWindows.cmake b/Modules/ConfigureWindows.cmake index 2cebb8c..e181614 100644 --- a/Modules/ConfigureWindows.cmake +++ b/Modules/ConfigureWindows.cmake @@ -1,50 +1,26 @@ if(WIN32) # Target Unicode API - add_definitions(-D_UNICODE) - add_definitions(-DUNICODE) + add_compile_definitions(_UNICODE UNICODE) # Disable API deprecation warnings - add_definitions(-D_CRT_SECURE_NO_WARNINGS) + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) # Prevent some Windows.h global namespace pollution - add_definitions(-DNOMINMAX) - add_definitions(-DWIN32_LEAN_AND_MEAN) + add_compile_definitions(NOMINMAX WIN32_LEAN_AND_MEAN) + + # Make math constants available + add_compile_definitions(_USE_MATH_DEFINES) endif() if(MSVC) - option(SHARED_RUNTIME "Windows: Build using the shared runtime library (/MD), disable for static runtime (/MT)" ON) - - # Set compiler options. - set(variables - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_MINSIZEREL - CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_MINSIZEREL - CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - if(SHARED_RUNTIME) - message(STATUS "Windows: Using dynamic runtime library (/MD)") - foreach(variable ${variables}) - if(${variable} MATCHES "/MT") - string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") - endif() - endforeach() - else() - message(STATUS "Windows: Using static runtime library (/MT)") - foreach(variable ${variables}) - if(${variable} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") - endif() - endforeach() - endif() + # Depends on vcpkg but we don't support anything else + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>$<$:DLL>" CACHE STRING "") option(MSVC_MULTICORE "MSVC: Build using multiple cores (/MP)" ON) if (MSVC_MULTICORE) add_compile_options("/MP") endif() + # Interpret character literals as UTF-8 add_compile_options("/utf-8") endif()