-------------------------------- CMakeLists.txt
--------------------------------
index 99e75c3d..d3722b1d 100644
@@ -35,6 +35,29 @@ if(COMPILER_SUPPORTS_C11)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
 endif()

+SET(RUNTIME_TYPE)
+if(MSVC)
+    option(wxBUILD_USE_STATIC_RUNTIME "Link using the static runtime
library" OFF)
+
+    set(MSVC_RUNTIME_TYPE "-md")
+    if(DEFINED wxBUILD_USE_STATIC_RUNTIME AND wxBUILD_USE_STATIC_RUNTIME)
+        set(MSVC_RUNTIME_TYPE "-mt")
+        # Set MSVC runtime flags for all configurations
+        foreach(cfg "" ${CMAKE_CONFIGURATION_TYPES})
+            set(flag_var CMAKE_CXX_FLAGS)
+            if(cfg)
+                string(TOUPPER ${cfg} cfg_upper)
+                set(flag_var "${flag_var}_${cfg_upper}")
+            endif()
+            if(${flag_var} MATCHES "/MD")
+                string(REGEX REPLACE "/MD" "/MT" ${flag_var}
"${${flag_var}}")
+            endif()
+        endforeach()
+    endif()
+    SET(RUNTIME_TYPE ${MSVC_RUNTIME_TYPE})
+endif()
+
+
 if(NOT MSVC)
     # clang 6 has a warning that does not make sense on multi-platform code
     CHECK_CXX_COMPILER_FLAG("-Wno-tautological-constant-compare"
CXX_HAS_TAUT_WARNING)
@@ -489,8 +512,8 @@ if (MSVC)
     set (OPENPGM_INCLUDE_DIRS ${OPENPGM_ROOT}/include)
     set (OPENPGM_LIBRARY_DIRS ${OPENPGM_ROOT}/lib)
     set (OPENPGM_LIBRARIES
-      optimized
libpgm${MSVC_TOOLSET}-mt-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
-      debug
libpgm${MSVC_TOOLSET}-mt-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
+      optimized
libpgm${MSVC_TOOLSET}${RUNTIME_TYPE}-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
+      debug
libpgm${MSVC_TOOLSET}${RUNTIME_TYPE}-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
   endif ()
 else ()
   if (WITH_OPENPGM)
@@ -983,7 +1006,7 @@ if (MSVC)
   # of file content.
   set( CMAKE_STATIC_LINKER_FLAGS /ignore:4221 )
   set (PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
-  set (PDB_NAME
"libzmq${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}")
+  set (PDB_NAME
"libzmq${MSVC_TOOLSET}${RUNTIME_TYPE}-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}")
   function(enable_vs_guideline_checker target)
     set_target_properties(${target} PROPERTIES
         VS_GLOBAL_EnableCppCoreCheck true
@@ -997,10 +1020,10 @@ if (MSVC)
     endif()
     set_target_properties (libzmq PROPERTIES
       PUBLIC_HEADER "${public_headers}"
-      RELEASE_POSTFIX
"${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      RELWITHDEBINFO_POSTFIX
"${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      MINSIZEREL_POSTFIX
"${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      DEBUG_POSTFIX
"${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      RELEASE_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      RELWITHDEBINFO_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      MINSIZEREL_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      DEBUG_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
       RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
       COMPILE_DEFINITIONS "DLL_EXPORT"
       OUTPUT_NAME "libzmq")
@@ -1010,10 +1033,10 @@ if (MSVC)
     add_library (libzmq-static STATIC ${sources}
${CMAKE_CURRENT_BINARY_DIR}/version.rc)
     set_target_properties (libzmq-static PROPERTIES
       PUBLIC_HEADER "${public_headers}"
-      RELEASE_POSTFIX
"${MSVC_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      RELWITHDEBINFO_POSTFIX
"${MSVC_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      MINSIZEREL_POSTFIX
"${MSVC_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
-      DEBUG_POSTFIX
"${MSVC_TOOLSET}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      RELEASE_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      RELWITHDEBINFO_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      MINSIZEREL_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
+      DEBUG_POSTFIX
"${MSVC_TOOLSET}${RUNTIME_TYPE}-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
       COMPILE_FLAGS "/DZMQ_STATIC"
       OUTPUT_NAME "libzmq")
   endif()

---------------------- builds/cmake/ZeroMQConfig.cmake.in
----------------------
index 21222ef1..6b916b36 100644
@@ -11,7 +11,8 @@
 #
 #   ZeroMQ_FOUND - true if ZeroMQ found on the system
 #   ZeroMQ_INCLUDE_DIR - the directory containing ZeroMQ headers
-#   ZeroMQ_LIBRARY -
+#   ZeroMQ_LIBRARY - dynamic library
+#   ZeroMQ_LIBRARIES - link libraries
 #   ZeroMQ_STATIC_LIBRARY

 @PACKAGE_INIT@
@@ -21,5 +22,6 @@ if(NOT TARGET libzmq AND NOT TARGET libzmq-static)

   get_target_property(@PROJECT_NAME@_INCLUDE_DIR libzmq
INTERFACE_INCLUDE_DIRECTORIES)
   get_target_property(@PROJECT_NAME@_LIBRARY libzmq LOCATION)
+  get_target_property(@PROJECT_NAME@_LIBRARIES libzmq IMPLIB)
   get_target_property(@PROJECT_NAME@_STATIC_LIBRARY libzmq-static LOCATION)
 endif()
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to