Skip to content

Commit

Permalink
Merge pull request #2527 from diorcety/x
Browse files Browse the repository at this point in the history
Fix compilation on windows using msys2
  • Loading branch information
bluca authored Apr 12, 2017
2 parents dfde9a2 + f7d1c15 commit bf07573
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 35 deletions.
67 changes: 33 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -677,9 +677,7 @@ foreach (txt ${docs})
set (dst doc/${html})
add_custom_command (
OUTPUT ${dst}
COMMAND ${PYTHON_EXECUTABLE}
ARGS -x
${ASCIIDOC_EXECUTABLE}
COMMAND ${ASCIIDOC_EXECUTABLE}
-d manpage
-b xhtml11
-f ${CMAKE_CURRENT_SOURCE_DIR}/doc/asciidoc.conf
Expand All @@ -696,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"
Expand Down Expand Up @@ -728,35 +726,36 @@ 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}"
DEBUG_POSTFIX "${MSVC_TOOLSET}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
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}
Expand All @@ -768,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
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
Expand All @@ -785,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
Expand All @@ -824,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})
Expand All @@ -833,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 "$<TARGET_FILE:${perf-tool}>" "${LIBRARY_OUTPUT_PATH}/ZeroMQ.framework/Versions/${ZMQ_VERSION_STRING}/MacOS/${perf-tool}"
Expand Down Expand Up @@ -863,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}
Expand All @@ -880,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}
Expand Down
2 changes: 1 addition & 1 deletion tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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})
Expand Down

0 comments on commit bf07573

Please sign in to comment.