Skip to content

Commit

Permalink
Fix official Windows build
Browse files Browse the repository at this point in the history
(broken by c170b3a)

Setting a maximum version in cmake_minimum_required() effectively sets
the behavior to NEW for all policies introduced in all CMake versions up
to and including that maximum version.  The NEW behavior for CMP0091,
introduced in CMake 3.15, uses CMake variables to specify the MSVC
runtime library against which to link, rather than placing the relevant
flags in CMAKE_C_FLAGS*.  Thus, replacing /MD with /MT in CMAKE_C_FLAGS*
no longer has any effect when using CMake 3.15+.  Because the TurboJPEG
libraries in the official libjpeg-turbo Windows packages always use /MT,
this caused the official Windows TurboVNC build to fail.
  • Loading branch information
dcommander committed Jan 25, 2024
1 parent 7cbfe3e commit 8a99c47
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions win/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,18 @@ if(NOT MSVC)
endif()

# Use the static C library for all build types
foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
endif()
endforeach()
if(CMAKE_VERSION VERSION_EQUAL "3.15" OR CMAKE_VERSION VERSION_GREATER "3.15")
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
else()
foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
endif()
endforeach()
endif()

foreach(var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
Expand Down

0 comments on commit 8a99c47

Please sign in to comment.