From 18cd6d4bbffe33dc3c74835f073d787d9e2cb541 Mon Sep 17 00:00:00 2001 From: Johannes Schultz Date: Mon, 16 Aug 2021 17:36:05 +0200 Subject: [PATCH] add static linking CMake setup for MSVC --- CMakeLists.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 06e9b675e..9ebcf2ad7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,22 @@ get_package_version(PACKAGE_VERSION PROJECT_VERSION) project(Opus LANGUAGES C VERSION ${PROJECT_VERSION}) +if(MSVC) + option(MSVC_LINK_STATIC_RUNTIME "Use static linking of msvc runtime" OFF) +endif() + +# switch from dynamic to static linking +if(MSVC AND MSVC_LINK_STATIC_RUNTIME) + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif(${flag_var} MATCHES "/MD") + endforeach(flag_var) +endif() + include(OpusFunctions) include(OpusBuildtype) include(OpusConfig)