Fix the CMake code that overrides the /MD flag with the /MT flag for
the Windows demo and loader projects. The CMake debug and release
variables were set to /MTd and /MT, overriding all existing debug
and release settings.
Now replacing /MD with /MT in the debug and release variables,
without losing other debug/release settings. Also performing
the MD/MT substitution for all release and debug configurations.
Change-Id: Id4a57c38bde0d909a95e7a49d9867029829e2c61
set (BUILDTGT_DIR build32)
endif()
- set(CMAKE_C_FLAGS_DEBUG "-MTd")
- set(CMAKE_C_FLAGS_RELEASE "-MT")
+ # Use static MSVCRT libraries
+ foreach(configuration in 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(${configuration} MATCHES "/MD")
+ string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}")
+ endif()
+ endforeach()
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/tri-vert.spv
COMMAND ${GLSLANG_VALIDATOR} -s -V ${PROJECT_SOURCE_DIR}/demos/tri.vert
set (LOADER_SRCS ${NORMAL_LOADER_SRCS} ${OPT_LOADER_SRCS})
if (WIN32)
- set(CMAKE_C_FLAGS_DEBUG "-MTd")
- set(CMAKE_C_FLAGS_RELEASE "-MT")
+ # Use static MSVCRT libraries
+ foreach(configuration in 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(${configuration} MATCHES "/MD")
+ string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}")
+ endif()
+ endforeach()
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
# Build dev_ext_trampoline.c with -O2 to allow tail-call optimization.
# Build other C files with normal options