Merge pull request #232 from kurdybacha/pkgconfig-build

Problem: libzmq pkg-config build not covered by CI
This commit is contained in:
Simon Giesecke 2018-05-17 12:30:37 +02:00 committed by GitHub
commit b11e44550a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 65 additions and 30 deletions

View File

@ -16,21 +16,21 @@ matrix:
- os: osx - os: osx
osx_image: xcode9.1 osx_image: xcode9.1
compiler: clang compiler: clang
env: ZMQ_VERSION=4.2.5 DRAFT=1 env: DRAFT=1
########################################################## ##########################################################
# GCC on Linux # GCC on Linux
########################################################## ##########################################################
# GCC default, draft disabled, latest libzmq # GCC default, draft disabled, older libzmq with pkg-config
- os: linux - os: linux
env: ZMQ_VERSION=4.2.5 sudo: true
env: ZMQ_VERSION=4.2.0 BUILD_TYPE=pkgconfig
# GCC default, draft disabled, older libzmq # GCC default, draft disabled, default libzmq (defined in ci_build.sh)
- os: linux - os: linux
env: ZMQ_VERSION=4.2.4
# GCC 7, draft enabled, latest libzmq # GCC 7, draft enabled (default), latest libzmq (default)
- os: linux - os: linux
addons: addons:
apt: apt:
@ -39,7 +39,7 @@ matrix:
packages: packages:
- g++-7 - g++-7
env: env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" ZMQ_VERSION=4.2.5 DRAFT=1 - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" DRAFT=1
# - env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format # - env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format
# os: linux # os: linux
# addons: # addons:
@ -49,8 +49,6 @@ matrix:
# packages: # packages:
# - clang-5.0 # - clang-5.0
sudo: false
before_install: before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then pip install --user cpp-coveralls; fi - if [ "$TRAVIS_OS_NAME" = "linux" ]; then pip install --user cpp-coveralls; fi

View File

@ -3,43 +3,80 @@
set -x set -x
set -e set -e
BUILD_TYPE=${BUILD_TYPE:-cmake}
LIBZMQ=${PWD}/libzmq-build LIBZMQ=${PWD}/libzmq-build
CPPZMQ=${PWD}/cppzmq-build CPPZMQ=${PWD}/cppzmq-build
ZMQ_VERSION="4.2.5"
DRAFT=${DRAFT:-0}
# Travis machines have 2 cores # Travis machines have 2 cores
JOBS=2 JOBS=2
if [ "$DRAFT" = "1" ] ; then if [ "${DRAFT}" = "1" ] ; then
# if we enable drafts during the libzmq cmake build, the pkgconfig # if we enable drafts during the libzmq cmake build, the pkgconfig
# data should set ZMQ_BUILD_DRAFT_API in dependent builds, but this # data should set ZMQ_BUILD_DRAFT_API in dependent builds, but this
# does not appear to work (TODO) # does not appear to work (TODO)
export ZEROMQ_CMAKE_FLAGS="-DENABLE_DRAFTS=ON" export ZEROMQ_CMAKE_FLAGS="-DENABLE_DRAFTS=ON"
fi fi
install_zeromq() { libzmq_install() {
curl -L https://github.com/zeromq/libzmq/archive/v${ZMQ_VERSION}.tar.gz \ curl -L https://github.com/zeromq/libzmq/archive/v"${ZMQ_VERSION}".tar.gz \
>zeromq.tar.gz >zeromq.tar.gz
tar -xvzf zeromq.tar.gz tar -xvzf zeromq.tar.gz
cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \ if [ "${BUILD_TYPE}" = "cmake" ] ; then
-DZMQ_BUILD_TESTS=OFF \ cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \
-DCMAKE_BUILD_TYPE=Release \ -DZMQ_BUILD_TESTS=OFF \
${ZEROMQ_CMAKE_FLAGS} -DCMAKE_BUILD_TYPE=Release \
cmake --build ${LIBZMQ} -- -j${JOBS} ${ZEROMQ_CMAKE_FLAGS}
cmake --build ${LIBZMQ} -- -j${JOBS}
elif [ "${BUILD_TYPE}" = "pkgconfig" ] ; then
pushd .
cd libzmq-${ZMQ_VERSION}
./autogen.sh &&
./configure &&
make VERBOSE=1 -j${JOBS}
sudo make install
popd
fi
} }
# build zeromq first # build zeromq first
cppzmq_build() {
pushd .
if [ "${BUILD_TYPE}" = "cmake" ] ; then
export ZeroMQ_DIR=${LIBZMQ}
fi
cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS}
cmake --build ${CPPZMQ} -- -j${JOBS}
if [ "${BUILD_TYPE}" = "pkgconfig" ] ; then
cd ${CPPZMQ}
sudo make install
fi
popd
}
if [ "${ZMQ_VERSION}" != "" ] ; then install_zeromq ; fi cppzmq_tests() {
pushd .
cd ${CPPZMQ}
ctest -V -j${JOBS}
popd
}
# build cppzmq cppzmq_demo() {
pushd . pushd .
ZeroMQ_DIR=${LIBZMQ} cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS} if [ "${BUILD_TYPE}" = "cmake" ] ; then
cmake --build ${CPPZMQ} -- -j${JOBS} export ZeroMQ_DIR=${LIBZMQ}
cd ${CPPZMQ} export cppzmq_DIR=${CPPZMQ}
ctest -V -j${JOBS} fi
popd cmake -Hdemo -Bdemo/build
cmake --build demo/build
cd demo/build
ctest -V
popd
}
# build cppzmq demo if [ "${ZMQ_VERSION}" != "" ] ; then libzmq_install ; fi
ZeroMQ_DIR=${LIBZMQ} cppzmq_DIR=${CPPZMQ} cmake -Hdemo -Bdemo/build
cmake --build demo/build cppzmq_build
cd demo/build cppzmq_tests
ctest -V cppzmq_demo