aboutsummaryrefslogtreecommitdiff
path: root/portmidi/pm_win/static.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'portmidi/pm_win/static.cmake')
-rw-r--r--portmidi/pm_win/static.cmake24
1 files changed, 24 insertions, 0 deletions
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 @@
1# static.cmake -- change flags to link with static runtime libraries
2#
3# Even when BUILD_SHARED_LIBS is OFF, CMake specifies linking wtih
4# multithread DLL, so you give inconsistent linking instructions
5# resulting in warning messages from MS Visual Studio. If you want
6# a static binary, I've found this approach works to eliminate
7# warnings and make everything static:
8#
9# Changes /MD (multithread DLL) to /MT (multithread static)
10
11if(MSVC)
12 foreach(flag_var
13 CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
14 CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO
15 CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
16 CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
17 if(${flag_var} MATCHES "/MD")
18 string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
19 endif(${flag_var} MATCHES "/MD")
20 endforeach(flag_var)
21
22 message(STATUS
23 "Note: overriding CMAKE_*_FLAGS_* to use Visual C static multithread library")
24endif(MSVC)