@@ -136,90 +136,68 @@ function(build_external_dependencies)
136136
137137 if (CMAKE_BUILD_TYPE )
138138 # If Release or Debug were specified, pass it along.
139- set (CMAKE_SUB_CONFIGURE_OPTIONS
140- ${CMAKE_SUB_CONFIGURE_OPTIONS}
139+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
141140 -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE} " )
142141 endif ()
143142
144143 if (APPLE )
145144 # Propagate MacOS build flags.
146145 if (CMAKE_OSX_ARCHITECTURES)
147- set (CMAKE_SUB_CONFIGURE_OPTIONS
148- ${CMAKE_SUB_CONFIGURE_OPTIONS}
146+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
149147 -DCMAKE_OSX_ARCHITECTURES="${CMAKE_OSX_ARCHITECTURES} " )
150148 endif ()
151149 elseif (MSVC )
152150 # Propagate MSVC build flags.
151+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
152+ -A "${CMAKE_GENERATOR_PLATFORM} " )
153153 if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
154- set (CMAKE_SUB_BUILD_OPTIONS ${CMAKE_SUB_BUILD_OPTIONS} --config Debug)
155- if (MSVC_RUNTIME_LIBRARY_STATIC)
156- set (SUBBUILD_MSVC_RUNTIME_FLAG "/MTd" )
157- set (CMAKE_SUB_CONFIGURE_OPTIONS
158- ${CMAKE_SUB_CONFIGURE_OPTIONS}
159- -DCMAKE_C_FLAGS_RELEASE="/MT"
160- -DCMAKE_C_FLAGS_DEBUG="/MTd"
161- -DCMAKE_CXX_FLAGS_RELEASE="/MT"
162- -DCMAKE_CXX_FLAGS_DEBUG="/MTd"
163- -MSVC_RUNTIME_LIBRARY=MultiThreadedDebug
154+ set (CMAKE_SUB_BUILD_OPTIONS ${CMAKE_SUB_BUILD_OPTIONS}
155+ --config Debug)
156+ endif ()
157+ if (MSVC_RUNTIME_LIBRARY_STATIC)
158+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
159+ -DCMAKE_C_FLAGS_RELEASE="/MT"
160+ -DCMAKE_CXX_FLAGS_RELEASE="/MT"
161+ -DCMAKE_C_FLAGS_DEBUG="/MTd"
162+ -DCMAKE_CXX_FLAGS_DEBUG="/MTd" )
163+ if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
164+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
164165 -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug)
165166 else ()
166- set (SUBBUILD_MSVC_RUNTIME_FLAG "/MDd" )
167- set (CMAKE_SUB_CONFIGURE_OPTIONS
168- ${CMAKE_SUB_CONFIGURE_OPTIONS}
169- -DCMAKE_C_FLAGS_RELEASE="/MD"
170- -DCMAKE_C_FLAGS_DEBUG="/MDd"
171- -DCMAKE_CXX_FLAGS_RELEASE="/MD"
172- -DCMAKE_CXX_FLAGS_DEBUG="/MDd"
173- -DMSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL
174- -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL)
175- endif ()
176- else ()
177- set (CMAKE_SUB_BUILD_OPTIONS ${CMAKE_SUB_BUILD_OPTIONS} --config Release)
178- if (MSVC_RUNTIME_LIBRARY_STATIC)
179- set (SUBBUILD_MSVC_RUNTIME_FLAG "/MT" )
180- set (CMAKE_SUB_CONFIGURE_OPTIONS
181- ${CMAKE_SUB_CONFIGURE_OPTIONS}
182- -DCMAKE_C_FLAGS_RELEASE="/MT"
183- -DCMAKE_C_FLAGS_DEBUG="/MTd"
184- -DCMAKE_CXX_FLAGS_RELEASE="/MT"
185- -DCMAKE_CXX_FLAGS_DEBUG="/MTd"
186- -DMSVC_RUNTIME_LIBRARY=MultiThreaded
167+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
187168 -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded)
169+ endif ()
170+ else () // dynamic (DLL) runtime
171+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
172+ -DCMAKE_C_FLAGS_RELEASE="/MD"
173+ -DCMAKE_CXX_FLAGS_RELEASE="/MD"
174+ -DCMAKE_C_FLAGS_DEBUG="/MDd"
175+ -DCMAKE_CXX_FLAGS_DEBUG="/MDd" )
176+ if (CMAKE_BUILD_TYPE STREQUAL "Debug" )
177+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
178+ -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL)
188179 else ()
189- set (SUBBUILD_MSVC_RUNTIME_FLAG "/MD" )
190- set (CMAKE_SUB_CONFIGURE_OPTIONS
191- ${CMAKE_SUB_CONFIGURE_OPTIONS}
192- -DCMAKE_C_FLAGS_RELEASE="/MD"
193- -DCMAKE_C_FLAGS_DEBUG="/MDd"
194- -DCMAKE_CXX_FLAGS_RELEASE="/MD"
195- -DCMAKE_CXX_FLAGS_DEBUG="/MDd"
196- -DMSVC_RUNTIME_LIBRARY=MultiThreaded
180+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
197181 -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL)
198182 endif ()
199183 endif ()
200- set (CMAKE_SUB_CONFIGURE_OPTIONS
201- ${CMAKE_SUB_CONFIGURE_OPTIONS}
202- -DCMAKE_C_FLAGS=${SUBBUILD_MSVC_RUNTIME_FLAG}
203- -DCMAKE_CXX_FLAGS=${SUBBUILD_MSVC_RUNTIME_FLAG}
204- -A "${CMAKE_GENERATOR_PLATFORM} " )
205184 else ()
206185 # Propagate Linux build flags.
207186 if ("${CMAKE_CXX_FLAGS} " MATCHES "-D_GLIBCXX_USE_CXX11_ABI=0" )
208187 set (SUBBUILD_USE_CXX11_ABI 0)
209188 else ()
210189 set (SUBBUILD_USE_CXX11_ABI 1)
211190 endif ()
212- set (CMAKE_SUB_CONFIGURE_OPTIONS
213- ${CMAKE_SUB_CONFIGURE_OPTIONS}
191+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
214192 -DCMAKE_C_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=${SUBBUILD_USE_CXX11_ABI} "
215193 -DCMAKE_CXX_FLAGS="-D_GLIBCXX_USE_CXX11_ABI=${SUBBUILD_USE_CXX11_ABI} " )
216194 if (CMAKE_TOOLCHAIN_FILE)
217- set (CMAKE_SUB_CONFIGURE_OPTIONS
218- ${CMAKE_SUB_CONFIGURE_OPTIONS}
195+ set (CMAKE_SUB_CONFIGURE_OPTIONS ${CMAKE_SUB_CONFIGURE_OPTIONS}
219196 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} )
220197 endif ()
221198 endif ()
222- message ("Sub-build options: ${CMAKE_SUB_CONFIGURE_OPTIONS} " )
199+ message ("Sub-configure options: ${CMAKE_SUB_CONFIGURE_OPTIONS} " )
200+ message ("Sub-build options: ${CMAKE_SUB_BUILD_OPTIONS} " )
223201
224202 if (NOT ANDROID AND NOT IOS)
225203 execute_process (
0 commit comments