-------------------------------- 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