mirror of
https://github.com/ValveSoftware/GameNetworkingSockets.git
synced 2026-05-29 16:20:34 +00:00
Added MSVC_CRT_STATIC option. Defaults to off. Should help with linking against protobuf or other situations. Added BUILD_STATIC_LIB and BUILD_SHARED_LIB options. (Fixes issue #191) I think I probably also need to add an option to build the cert tool and maybe package it up, too (issue #186) but that isn't included in this change.
53 lines
1.5 KiB
CMake
53 lines
1.5 KiB
CMake
macro(configure_msvc_runtime)
|
|
if(MSVC)
|
|
# Set compiler options.
|
|
set(variables
|
|
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(MSVC_CRT_STATIC)
|
|
message(STATUS "MSVC -> forcing use of statically-linked runtime.")
|
|
foreach(variable ${variables})
|
|
if(${variable} MATCHES "/MD")
|
|
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
|
|
endif()
|
|
endforeach()
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
|
else()
|
|
message(STATUS "MSVC -> forcing use of dynamically-linked runtime.")
|
|
foreach(variable ${variables})
|
|
if(${variable} MATCHES "/MT")
|
|
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
|
|
endif()
|
|
endforeach()
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
|
|
endif()
|
|
endif()
|
|
endmacro()
|
|
macro(print_default_msvc_flags)
|
|
if(MSVC)
|
|
set(variables
|
|
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
|
|
)
|
|
message(STATUS "Initial build flags:")
|
|
foreach(variable ${variables})
|
|
message(STATUS " '${variable}': ${${variable}}")
|
|
endforeach()
|
|
message(STATUS "")
|
|
endif()
|
|
endmacro() |