Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compilation on windows using msys2 #2527

Merged
merged 2 commits into from
Apr 12, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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