Problem: cppzmq build broken with C++11 compiler and git cloned repo.

Default build, ./ci_build.sh without any arguments, which causes to run
with draft disabled, does not work properly for git cloned repository and
C++11 compiler.

Two issues:
1. For git cloned repository ENABLE_DRAFTS is ON by default but libzmq
compiled build without drafts .Travis did not catch that because default build
runs on non C++11 compiler.
2. testutil.hpp does not build because of missing draft guards.

Solution 1: Remove check for presence of .git for enabling draft API as it
is confusing to use with ENABLE_DRAFTS flag and there should be only one
explicit way to enable draft build.

Solution 2: add missing draft guards in testutil.hpp for server/client
socket in use there.

Solution 3: add extra Travis build covering C++11 compiler and non
draft enabled build.
This commit is contained in:
Pawel Kurdybacha 2018-05-20 07:00:08 +01:00
parent d487e67249
commit 099bcfc4a4
3 changed files with 14 additions and 7 deletions

View File

@ -30,7 +30,18 @@ matrix:
# GCC default, draft disabled, default libzmq (defined in ci_build.sh)
- os: linux
# GCC 7, draft enabled (default), latest libzmq (default)
# GCC 6, draft disabled (default), latest libzmq (default)
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
env:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
# GCC 7, draft enabled, latest libzmq (default)
- os: linux
addons:
apt:

View File

@ -19,11 +19,7 @@ if (ZeroMQ_FOUND AND (NOT TARGET libzmq OR NOT TARGET libzmq-static))
message(FATAL_ERROR "ZeroMQ version not supported!")
endif()
if (EXISTS "${CMAKE_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 ()
OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" OFF)
if (ENABLE_DRAFTS)
ADD_DEFINITIONS (-DZMQ_BUILD_DRAFT_API)
set (pkg_config_defines "-DZMQ_BUILD_DRAFT_API=1")

View File

@ -3,7 +3,7 @@
#include <gtest/gtest.h>
#include <zmq.hpp>
#if defined(ZMQ_CPP11)
#if defined(ZMQ_BUILD_DRAFT_API) && defined(ZMQ_CPP11)
#include <array>
class loopback_ip4_binder