From 988f5d2b5343850e19ad1512cefe6c53953aa02e Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Mon, 7 Oct 2024 06:50:04 +0200 Subject: Added bunch of examples --- portmidi/pm_win/static.cmake | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 portmidi/pm_win/static.cmake (limited to 'portmidi/pm_win/static.cmake') diff --git a/portmidi/pm_win/static.cmake b/portmidi/pm_win/static.cmake new file mode 100644 index 0000000..7fdad18 --- /dev/null +++ b/portmidi/pm_win/static.cmake @@ -0,0 +1,24 @@ +# static.cmake -- change flags to link with static runtime libraries +# +# Even when BUILD_SHARED_LIBS is OFF, CMake specifies linking wtih +# multithread DLL, so you give inconsistent linking instructions +# resulting in warning messages from MS Visual Studio. If you want +# a static binary, I've found this approach works to eliminate +# warnings and make everything static: +# +# Changes /MD (multithread DLL) to /MT (multithread static) + +if(MSVC) + foreach(flag_var + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO + 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) + + message(STATUS + "Note: overriding CMAKE_*_FLAGS_* to use Visual C static multithread library") +endif(MSVC) -- cgit v1.2.3