@@ -122,22 +122,25 @@ if(MSVC)
122
122
add_compile_options ($<$<COMPILE_LANGUAGE:C>:/wd4267>)
123
123
124
124
# handle msvcrt setting being passed in CMAKE_C_FLAGS
125
- if (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
126
- # do not support other methods of setting this (it would be more conformant, tho)
127
- message (FATAL_ERROR "please set msvcrt via CMAKE_C_FLAGS" )
128
- endif ()
129
- if (CMAKE_C_FLAGS MATCHES "[/-]MTd" )
130
- set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug" )
131
- elseif (CMAKE_C_FLAGS MATCHES "[/-]MDd" )
132
- set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL" )
133
- elseif (CMAKE_C_FLAGS MATCHES "[/-]MT" )
134
- set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" )
135
- elseif (CMAKE_C_FLAGS MATCHES "[/-]MD" )
136
- set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" )
137
- endif ()
125
+ if (CMAKE_C_FLAGS MATCHES "[/-]M[TD]d?" )
126
+ # ensure CMAKE_MSVC_RUNTIME_LIBRARY is not already defined
127
+ if (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
128
+ message (FATAL_ERROR "please set the runtime library via either CMAKE_C_FLAGS or CMAKE_MSVC_RUNTIME_LIBRARY, not both" )
129
+ endif ()
138
130
139
- # prevent the arg from occurring more than once (not a big deal, just to keep tidy)
140
- string (REGEX REPLACE "[/-]M[TD]d?" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS} )
131
+ if (CMAKE_C_FLAGS MATCHES "[/-]MTd" )
132
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug" )
133
+ elseif (CMAKE_C_FLAGS MATCHES "[/-]MDd" )
134
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebugDLL" )
135
+ elseif (CMAKE_C_FLAGS MATCHES "[/-]MT" )
136
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" )
137
+ elseif (CMAKE_C_FLAGS MATCHES "[/-]MD" )
138
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" )
139
+ endif ()
140
+
141
+ # prevent the arg from occurring more than once (not a big deal, just to keep tidy)
142
+ string (REGEX REPLACE "[/-]M[TD]d?" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS} )
143
+ endif ()
141
144
else ()
142
145
if (MINGW)
143
146
execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpmachine
0 commit comments