msvc-runtime.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. macro(configure_msvc_runtime)
  2. if(MSVC)
  3. # Set compiler options.
  4. set(variables
  5. CMAKE_C_FLAGS
  6. CMAKE_C_FLAGS_DEBUG
  7. CMAKE_C_FLAGS_MINSIZEREL
  8. CMAKE_C_FLAGS_RELEASE
  9. CMAKE_C_FLAGS_RELWITHDEBINFO
  10. CMAKE_CXX_FLAGS
  11. CMAKE_CXX_FLAGS_DEBUG
  12. CMAKE_CXX_FLAGS_MINSIZEREL
  13. CMAKE_CXX_FLAGS_RELEASE
  14. CMAKE_CXX_FLAGS_RELWITHDEBINFO)
  15. if(OATPP_MSVC_LINK_STATIC_RUNTIME)
  16. message(STATUS "MSVC: using statically-linked runtime (/MT and /MTd).")
  17. foreach(variable ${variables})
  18. if(${variable} MATCHES "/MD")
  19. string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
  20. endif()
  21. endforeach()
  22. else()
  23. message(STATUS "MSVC: using dynamically-linked runtime (/MD and /MDd).")
  24. foreach(variable ${variables})
  25. if(${variable} MATCHES "/MT")
  26. string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
  27. endif()
  28. endforeach()
  29. endif()
  30. foreach(variable ${variables})
  31. set(${variable} "${${variable}}" CACHE STRING "MSVC_${variable}" FORCE)
  32. endforeach()
  33. endif()
  34. endmacro(configure_msvc_runtime)