diff --git a/.travis.yml b/.travis.yml index db14ba0..8c49c67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ matrix: packages: - g++-7 env: - - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" BUILD_TYPE=cmake ZMQ_VERSION=4.2.5 + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" BUILD_TYPE=cmake ZMQ_VERSION=4.2.5 DRAFT=1 sudo: required diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b78340..dc96d1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,18 @@ if (ZeroMQ_FOUND AND (NOT TARGET libzmq OR NOT TARGET libzmq-static)) message(FATAL_ERROR "ZeroMQ version not supported!") endif() +if (EXISTS "${SOURCE_DIR}/.git") + OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" ON) +else () + OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" OFF) +endif () +IF (ENABLE_DRAFTS) + ADD_DEFINITIONS (-DZMQ_BUILD_DRAFT_API) + set (pkg_config_defines "-DZMQ_BUILD_DRAFT_API=1") +ELSE (ENABLE_DRAFTS) + set (pkg_config_defines "") +ENDIF (ENABLE_DRAFTS) + message(STATUS "cppzmq v${CPPZMQ_VERSION}") set(CPPZMQ_HEADERS diff --git a/ci_build.sh b/ci_build.sh index bf919ae..2b655a2 100755 --- a/ci_build.sh +++ b/ci_build.sh @@ -3,6 +3,13 @@ set -x set -e +if [ "$DRAFT" = "1" ] ; then + # if we enable drafts during the libzmq cmake build, the pkgconfig + # data should set ZMQ_BUILD_DRAFT_API in dependent builds, but this + # does not appear to work (TODO) + export ZEROMQ_CMAKE_FLAGS="-DENABLE_DRAFTS=ON" +fi + install_zeromq() { pushd . @@ -14,7 +21,7 @@ install_zeromq() { mkdir build cd build - cmake .. + cmake .. ${ZEROMQ_CMAKE_FLAGS} sudo make -j4 install popd @@ -29,7 +36,7 @@ if [ "${ZMQ_VERSION}" != "" ] ; then install_zeromq ; fi pushd . mkdir build cd build -cmake .. +cmake .. ${ZEROMQ_CMAKE_FLAGS} cmake --build . sudo make -j4 install make test ARGS="-V" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f0990af..31883c0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,6 +24,7 @@ add_executable( unit_tests context.cpp socket.cpp + poller.cpp ) target_link_libraries( diff --git a/tests/poller.cpp b/tests/poller.cpp new file mode 100644 index 0000000..ea1cf29 --- /dev/null +++ b/tests/poller.cpp @@ -0,0 +1,9 @@ +#include +#include + +#if defined(ZMQ_CPP11) && defined(ZMQ_BUILD_DRAFT_API) +TEST(poller, create_destroy) +{ + zmq::poller_t context; +} +#endif