From f4a73296049b432720c9b6c230e479f9b41d74d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camilla=20L=C3=B6wy?= Date: Mon, 12 Oct 2020 23:47:35 +0200 Subject: [PATCH] Update USE_MSVC_RUNTIME_LIBRARY_DLL for CMake 3.15 This makes USE_MSVC_RUNTIME_LIBRARY_DLL update the directory scope CMAKE_MSVC_RUNTIME_LIBRARY variable instead of CMAKE_C_FLAGS on CMake 3.15 and later. Solution proposed by @moritz-h. Fixes #1783. Closes #1796. --- CMakeLists.txt | 6 ++++-- README.md | 2 ++ docs/compile.dox | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 39482752..59ab473c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,8 +69,8 @@ endif() #-------------------------------------------------------------------- # Set compiler specific flags #-------------------------------------------------------------------- -if (MSVC) - if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL) +if (MSVC AND NOT USE_MSVC_RUNTIME_LIBRARY_DLL) + if (${CMAKE_VERSION} VERSION_LESS 3.15) foreach (flag CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE @@ -85,6 +85,8 @@ if (MSVC) endif() endforeach() + else() + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() endif() diff --git a/README.md b/README.md index 26e88828..f7d9d75a 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,8 @@ information on what to include when reporting a bug. (#1582) - [Win32] Bugfix: `GLFW_SCALE_TO_MONITOR` had no effect on systems older than Windows 10 version 1703 (#1511) + - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or + later (#1783,#1796) - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619) - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) diff --git a/docs/compile.dox b/docs/compile.dox index 5a4c6d88..7c88281b 100644 --- a/docs/compile.dox +++ b/docs/compile.dox @@ -235,6 +235,10 @@ __USE_MSVC_RUNTIME_LIBRARY_DLL__ determines whether to use the DLL version or th static library version of the Visual C++ runtime library. If set to `ON`, the DLL version of the Visual C++ library is used. +@note On CMake 3.15 and later you can set the +[CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html) +variable instead of this option. + @anchor GLFW_USE_HYBRID_HPG __GLFW_USE_HYBRID_HPG__ determines whether to export the `NvOptimusEnablement` and `AmdPowerXpressRequestHighPerformance` symbols, which force the use of the