From f7d1c159d4f96686ce994319280c1bd3a2eab994 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 5 Apr 2017 18:46:48 +0200 Subject: [PATCH] Fix windows compilation --- CMakeLists.txt | 63 ++++++++++++++++++++++---------------------- tests/CMakeLists.txt | 2 +- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 16cffd4a..59c46674 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ elseif (WITH_LIBSODIUM) # On Solaris, libsodium depends on libssp if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") - target_link_libraries (libzmq ssp) + target_link_libraries (zmq-shared ssp) endif () set (ZMQ_USE_LIBSODIUM 1) set (ZMQ_HAVE_CURVE 1) @@ -694,7 +694,7 @@ endforeach () if (ZMQ_BUILD_FRAMEWORK) add_custom_command ( - TARGET libzmq + TARGET zmq-shared POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E make_directory "${CMAKE_LIBRARY_OUTPUT_PATH}/ZeroMQ.framework/Versions/${ZMQ_VERSION}/MacOS" @@ -726,17 +726,18 @@ endif () # output if (MSVC) - add_library (libzmq SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${CMAKE_CURRENT_BINARY_DIR}/NSIS.template.in) - target_link_libraries (libzmq ${OPTIONAL_LIBRARIES}) - set_target_properties (libzmq PROPERTIES + add_library (zmq-shared SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${CMAKE_CURRENT_BINARY_DIR}/NSIS.template.in) + target_link_libraries (zmq-shared ${OPTIONAL_LIBRARIES}) + set_target_properties (zmq-shared 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}" DEBUG_POSTFIX "${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin" - COMPILE_DEFINITIONS "DLL_EXPORT") - add_library (libzmq-static STATIC ${sources}) - set_target_properties (libzmq-static PROPERTIES + COMPILE_DEFINITIONS "DLL_EXPORT" + OUTPUT_NAME "libzmq") + add_library (zmq-static STATIC ${sources}) + set_target_properties (zmq-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}" @@ -744,17 +745,17 @@ if (MSVC) COMPILE_FLAGS "/DZMQ_STATIC" OUTPUT_NAME "libzmq") else () - add_library (libzmq SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${zmq-pkgconfig}) + add_library (zmq-shared SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${zmq-pkgconfig}) # NOTE: the SOVERSION MUST be the same as the one generated by libtool! - set_target_properties (libzmq PROPERTIES + set_target_properties (zmq-shared PROPERTIES COMPILE_DEFINITIONS "DLL_EXPORT" PUBLIC_HEADER "${public_headers}" VERSION ${ZMQ_VERSION} SOVERSION "5.1.3" - OUTPUT_NAME "libzmq" - PREFIX "") + OUTPUT_NAME "zmq" + PREFIX "lib") if (ZMQ_BUILD_FRAMEWORK) - set_target_properties (libzmq PROPERTIES + set_target_properties (zmq-shared PROPERTIES FRAMEWORK TRUE MACOSX_FRAMEWORK_IDENTIFIER "org.zeromq.libzmq" MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${ZMQ_VERSION} @@ -766,15 +767,15 @@ else () set_source_files_properties (${zmq-pkgconfig} PROPERTIES MACOSX_PACKAGE_LOCATION lib/pkgconfig) endif () - add_library (libzmq-static STATIC ${sources} ${public_headers} ${html-docs} ${readme-docs} ${zmq-pkgconfig}) - set_target_properties (libzmq-static PROPERTIES + add_library (zmq-static STATIC ${sources} ${public_headers} ${html-docs} ${readme-docs} ${zmq-pkgconfig}) + set_target_properties (zmq-static PROPERTIES PUBLIC_HEADER "${public_headers}" COMPILE_DEFINITIONS "ZMQ_STATIC" - OUTPUT_NAME "libzmq" - PREFIX "") + OUTPUT_NAME "zmq" + PREFIX "lib") endif () -foreach (target libzmq libzmq-static) +foreach (target zmq-shared zmq-static) target_include_directories (${target} PUBLIC $ @@ -783,27 +784,27 @@ foreach (target libzmq libzmq-static) ) endforeach() -target_link_libraries (libzmq ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries (zmq-shared ${CMAKE_THREAD_LIBS_INIT}) if (SODIUM_FOUND) - target_link_libraries (libzmq ${SODIUM_LIBRARIES}) + target_link_libraries (zmq-shared ${SODIUM_LIBRARIES}) endif () if (HAVE_WS2_32) - target_link_libraries (libzmq ws2_32) + target_link_libraries (zmq-shared ws2_32) elseif (HAVE_WS2) - target_link_libraries (libzmq ws2) + target_link_libraries (zmq-shared ws2) endif () if (HAVE_RPCRT4) - target_link_libraries (libzmq rpcrt4) + target_link_libraries (zmq-shared rpcrt4) endif () if (HAVE_IPHLAPI) - target_link_libraries (libzmq iphlpapi) + target_link_libraries (zmq-shared iphlpapi) endif () if (RT_LIBRARY) - target_link_libraries (libzmq ${RT_LIBRARY}) + target_link_libraries (zmq-shared ${RT_LIBRARY}) endif () set (perf-tools local_lat @@ -822,7 +823,7 @@ endif () if (WITH_PERF_TOOL) foreach (perf-tool ${perf-tools}) add_executable (${perf-tool} perf/${perf-tool}.cpp) - target_link_libraries (${perf-tool} libzmq ${OPTIONAL_LIBRARIES}) + target_link_libraries (${perf-tool} zmq-shared ${OPTIONAL_LIBRARIES}) if (RT_LIBRARY) target_link_libraries (${perf-tool} ${RT_LIBRARY}) @@ -831,7 +832,7 @@ if (WITH_PERF_TOOL) if (ZMQ_BUILD_FRAMEWORK) # Copy perf-tools binaries into Framework add_custom_command ( - TARGET libzmq ${perf-tool} + TARGET zmq-shared ${perf-tool} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy "$" "${LIBRARY_OUTPUT_PATH}/ZeroMQ.framework/Versions/${ZMQ_VERSION_STRING}/MacOS/${perf-tool}" @@ -861,14 +862,14 @@ endif () include(GNUInstallDirs) if (MSVC) - install (TARGETS libzmq libzmq-static + install (TARGETS zmq-shared zmq-static EXPORT ${PROJECT_NAME}-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT SDK) if (CMAKE_BUILD_TYPE STREQUAL "Debug") - install (TARGETS libzmq libzmq-static + install (TARGETS zmq-shared zmq-static RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} @@ -878,13 +879,13 @@ if (MSVC) COMPONENT SDK) endif () else () - install (TARGETS libzmq + install (TARGETS zmq-shared RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Runtime) endif () else () - install (TARGETS libzmq libzmq-static + install (TARGETS zmq-shared zmq-static EXPORT ${PROJECT_NAME}-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bb292873..917c3cde 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -138,7 +138,7 @@ if(WIN32) endif() # add library and include dirs for all targets -link_libraries(libzmq ${OPTIONAL_LIBRARIES}) +link_libraries(zmq-shared ${OPTIONAL_LIBRARIES}) include_directories("${CMAKE_SOURCE_DIR}/../include") foreach(test ${tests})