Commit 2cd4c38b authored by Pieter Hintjens's avatar Pieter Hintjens

Merge pull request #1843 from opedroso/WINDOWS_MAKE_TEST

Problem: Tests do no build in Windows environment
parents 0916c17b 1c9cec22
# CMake build script for ZeroMQ tests
cmake_minimum_required(VERSION "2.8.1")
# name of Windows project will tests.sln
PROJECT(tests)
set(tests
test_system
......@@ -105,10 +109,26 @@ if(WITH_VMCI)
)
endif()
# add location of platform.hpp for Windows builds
if(WIN32)
add_definitions(-DZMQ_CUSTOM_PLATFORM_HPP)
include_directories(../builds/msvc)
link_libraries(Ws2_32.lib)
endif()
# add library and include dirs for all targets
link_libraries(libzmq)
include_directories("${CMAKE_SOURCE_DIR}/../include")
include_directories("${CMAKE_SOURCE_DIR}/src")
foreach(test ${tests})
add_executable(${test} ${test}.cpp)
target_include_directories(${test} PRIVATE "${CMAKE_SOURCE_DIR}/src")
target_link_libraries(${test} libzmq)
if(WIN32)
# it will only link correctly for DEBUG builds in Windows (I don't know how to specify the target and target library in CMake)
SET_TARGET_PROPERTIES( ${test} PROPERTIES LINK_FLAGS "/LIBPATH:../bin/Win32/Debug/v120/dynamic" )
else()
link_directories(${test} PRIVATE "${CMAKE_SOURCE_DIR}/../lib")
endif()
if(RT_LIBRARY)
target_link_libraries(${test} ${RT_LIBRARY} )
......@@ -137,3 +157,4 @@ foreach(TEST_SOURCE ${ALL_TEST_SOURCES})
message(AUTHOR_WARNING "Test '${TESTNAME}' is not known to CTest.")
endif()
endforeach()
......@@ -15,4 +15,12 @@ Please use only ANSI C99 in test cases, no C++. This is to make the code more re
On many slower environments, like embedded systems, VMs or CI systems, test might
fail because it takes time for sockets to settle after a connect. If you need
to add a sleep, please be consistent with all the other tests and use:
msleep (SETTLE_TIME);
\ No newline at end of file
msleep (SETTLE_TIME);
# Building tests in Windows
Install CMAKE
CMD> CMAKE libzmq/tests
CMD> tests.sln
CMD> # build all projects in the solution
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment