summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/portmidi/pm_win/static.cmake
blob: 88a115c9228cc8de68e1ff6cdcfc6ec401ea28e7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)