Merge pull request #97 from steve-o/master

Add MSVC 2013 support; Fix CMake regressions upstream
This commit is contained in:
Pieter Hintjens 2013-07-13 14:08:11 -07:00
commit aeb87cf2cc
2 changed files with 42 additions and 14 deletions

View File

@ -1,6 +1,9 @@
# CMake build script for ZeroMQ on Windows # CMake build script for ZeroMQ on Windows
cmake_minimum_required (VERSION 2.8) # 2.8.11 provides toolkit support
# 2.8.11.2 provides MSVC2013 support
cmake_minimum_required (VERSION 2.8.11.2)
project (ZeroMQ) project (ZeroMQ)
include (${CMAKE_SOURCE_DIR}/cmake/Modules/TestZMQVersion.cmake) include (${CMAKE_SOURCE_DIR}/cmake/Modules/TestZMQVersion.cmake)
@ -79,6 +82,7 @@ add_definitions(
# NB: May require tweaking for highly connected applications. # NB: May require tweaking for highly connected applications.
-DFD_SETSIZE=1024 -DFD_SETSIZE=1024
-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS
-D_WIN32_WINNT=${_zmq_WIN32_WINNT}
) )
# Parallel make. # Parallel make.
@ -262,13 +266,15 @@ endforeach (txt ${docs})
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# output # output
message(targetting ${_zmq_TOOLSET})
add_library(libzmq SHARED ${sources} ${html-docs} ${CMAKE_BINARY_DIR}/NSIS.template.in) add_library(libzmq SHARED ${sources} ${html-docs} ${CMAKE_BINARY_DIR}/NSIS.template.in)
target_link_libraries(libzmq ws2_32.lib rpcrt4.lib ${OPTIONAL_LIBRARIES}) target_link_libraries(libzmq ws2_32.lib rpcrt4.lib ${OPTIONAL_LIBRARIES})
set_target_properties(libzmq PROPERTIES set_target_properties(libzmq PROPERTIES
RELEASE_POSTFIX "${_zmq_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}" RELEASE_POSTFIX "${_zmq_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
DEBUG_POSTFIX "${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}" DEBUG_POSTFIX "${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
PDB_NAME "placeholder" PDB_NAME "libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib"
) )
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@ -276,12 +282,13 @@ set_target_properties(libzmq PROPERTIES
install (TARGETS libzmq ARCHIVE DESTINATION lib COMPONENT SDK) install (TARGETS libzmq ARCHIVE DESTINATION lib COMPONENT SDK)
if (CMAKE_BUILD_TYPE STREQUAL "Debug") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install (TARGETS libzmq RUNTIME DESTINATION bin COMPONENT SDK) # no -op
install (FILES ${CMAKE_BINARY_DIR}/lib/libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib COMPONENT SDK) else ()
else (CMAKE_BUILD_TYPE STREQUAL "Debug")
install (TARGETS libzmq RUNTIME DESTINATION bin COMPONENT Runtime) install (TARGETS libzmq RUNTIME DESTINATION bin COMPONENT Runtime)
install (FILES ${CMAKE_BINARY_DIR}/libzmq.dir/Debug/${_zmq_COMPILER}.pdb DESTINATION lib COMPONENT SDK RENAME libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb) install (FILES ${CMAKE_BINARY_DIR}/lib/Debug/libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.lib DESTINATION lib COMPONENT SDK)
endif (CMAKE_BUILD_TYPE STREQUAL "Debug") install (FILES ${CMAKE_BINARY_DIR}/lib/Debug/libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib COMPONENT SDK)
install (FILES ${CMAKE_BINARY_DIR}/lib/Debug/libzmq${_zmq_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.dll DESTINATION bin COMPONENT SDK)
endif ()
install (FILES ${headers} DESTINATION include COMPONENT SDK) install (FILES ${headers} DESTINATION include COMPONENT SDK)
set (perf-tools set (perf-tools
@ -317,18 +324,22 @@ if (CMAKE_CL_64)
set (CPACK_NSIS_DISPLAY_NAME "ZeroMQ ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH} (x64)") set (CPACK_NSIS_DISPLAY_NAME "ZeroMQ ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH} (x64)")
set (CPACK_PACKAGE_FILE_NAME "ZeroMQ-${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}-x64") set (CPACK_PACKAGE_FILE_NAME "ZeroMQ-${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}-x64")
set (CPACK_INSTALL_CMAKE_PROJECTS set (CPACK_INSTALL_CMAKE_PROJECTS
"${CMAKE_SOURCE_DIR}/build/x64/v110;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x64/v100;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x64/v90;ZeroMQ;ALL;/" "${CMAKE_SOURCE_DIR}/build/x64/v90;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x64/v110;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x64/v120;ZeroMQ;ALL;/"
# default to 2008/Vista compatible CRT
"${CMAKE_SOURCE_DIR}/build/x64/v100;ZeroMQ;ALL;/"
) )
else (CMAKE_CL_64) else (CMAKE_CL_64)
set (CPACK_NSIS_DISPLAY_NAME "ZeroMQ ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}") set (CPACK_NSIS_DISPLAY_NAME "ZeroMQ ${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}")
set (CPACK_PACKAGE_FILE_NAME "ZeroMQ-${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}-x86") set (CPACK_PACKAGE_FILE_NAME "ZeroMQ-${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}-x86")
set (CPACK_INSTALL_CMAKE_PROJECTS set (CPACK_INSTALL_CMAKE_PROJECTS
"${CMAKE_SOURCE_DIR}/build/x86/v110_xp;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v110;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v100;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v90;ZeroMQ;ALL;/" "${CMAKE_SOURCE_DIR}/build/x86/v90;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v100;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v110;ZeroMQ;ALL;/"
"${CMAKE_SOURCE_DIR}/build/x86/v120;ZeroMQ;ALL;/"
# default to XP-compatible CRT
"${CMAKE_SOURCE_DIR}/build/x86/v110_xp;ZeroMQ;ALL;/"
) )
endif (CMAKE_CL_64) endif (CMAKE_CL_64)
set (CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}") set (CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}")

View File

@ -24,21 +24,38 @@
MESSAGE(STATUS "Detecting ZMQ - failed") MESSAGE(STATUS "Detecting ZMQ - failed")
ENDIF() ENDIF()
if(MSVC_VERSION MATCHES "1700") if(MSVC_VERSION MATCHES "1800")
set(_zmq_TOOLSET "-v120")
set(_zmq_COMPILER "vc120")
set(_zmq_WIN32_WINNT "0x0601")
elseif(MSVC_VERSION MATCHES "1700")
if(CMAKE_GENERATOR_TOOLSET MATCHES "v110_xp") if(CMAKE_GENERATOR_TOOLSET MATCHES "v110_xp")
set(_zmq_TOOLSET "-v110_xp") set(_zmq_TOOLSET "-v110_xp")
set(_zmq_COMPILER "vc110") set(_zmq_COMPILER "vc110")
set(_zmq_WIN32_WINNT "0x0501")
else() else()
set(_zmq_TOOLSET "-v110") set(_zmq_TOOLSET "-v110")
set(_zmq_COMPILER "vc110") set(_zmq_COMPILER "vc110")
set(_zmq_WIN32_WINNT "0x0601")
endif() endif()
elseif(MSVC10) elseif(MSVC10)
set(_zmq_TOOLSET "-v100") set(_zmq_TOOLSET "-v100")
set(_zmq_COMPILER "vc100") set(_zmq_COMPILER "vc100")
if(CMAKE_CL_64)
set(_zmq_WIN32_WINNT "0x0600")
else()
set(_zmq_WIN32_WINNT "0x0501")
endif()
elseif(MSVC90) elseif(MSVC90)
set(_zmq_TOOLSET "-v90") set(_zmq_TOOLSET "-v90")
set(_zmq_COMPILER "vc90") set(_zmq_COMPILER "vc90")
if(CMAKE_CL_64)
set(_zmq_WIN32_WINNT "0x0600")
else()
set(_zmq_WIN32_WINNT "0x0501")
endif()
else() else()
set(_zmq_TOOLSET "") set(_zmq_TOOLSET "")
set(_zmq_COMPILER "") set(_zmq_COMPILER "")
set(_zmq_WIN32_WINNT "")
endif() endif()