mirror of
https://github.com/zeromq/cppzmq.git
synced 2025-05-03 07:52:33 +02:00
Merge pull request #232 from kurdybacha/pkgconfig-build
Problem: libzmq pkg-config build not covered by CI
This commit is contained in:
commit
b11e44550a
16
.travis.yml
16
.travis.yml
@ -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
|
||||||
|
|
||||||
|
57
ci_build.sh
57
ci_build.sh
@ -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
|
||||||
|
if [ "${BUILD_TYPE}" = "cmake" ] ; then
|
||||||
cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \
|
cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \
|
||||||
-DZMQ_BUILD_TESTS=OFF \
|
-DZMQ_BUILD_TESTS=OFF \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
${ZEROMQ_CMAKE_FLAGS}
|
${ZEROMQ_CMAKE_FLAGS}
|
||||||
cmake --build ${LIBZMQ} -- -j${JOBS}
|
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() {
|
||||||
if [ "${ZMQ_VERSION}" != "" ] ; then install_zeromq ; fi
|
|
||||||
|
|
||||||
# build cppzmq
|
|
||||||
pushd .
|
pushd .
|
||||||
ZeroMQ_DIR=${LIBZMQ} cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS}
|
if [ "${BUILD_TYPE}" = "cmake" ] ; then
|
||||||
|
export ZeroMQ_DIR=${LIBZMQ}
|
||||||
|
fi
|
||||||
|
cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS}
|
||||||
cmake --build ${CPPZMQ} -- -j${JOBS}
|
cmake --build ${CPPZMQ} -- -j${JOBS}
|
||||||
|
if [ "${BUILD_TYPE}" = "pkgconfig" ] ; then
|
||||||
|
cd ${CPPZMQ}
|
||||||
|
sudo make install
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
cppzmq_tests() {
|
||||||
|
pushd .
|
||||||
cd ${CPPZMQ}
|
cd ${CPPZMQ}
|
||||||
ctest -V -j${JOBS}
|
ctest -V -j${JOBS}
|
||||||
popd
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
# build cppzmq demo
|
cppzmq_demo() {
|
||||||
ZeroMQ_DIR=${LIBZMQ} cppzmq_DIR=${CPPZMQ} cmake -Hdemo -Bdemo/build
|
pushd .
|
||||||
|
if [ "${BUILD_TYPE}" = "cmake" ] ; then
|
||||||
|
export ZeroMQ_DIR=${LIBZMQ}
|
||||||
|
export cppzmq_DIR=${CPPZMQ}
|
||||||
|
fi
|
||||||
|
cmake -Hdemo -Bdemo/build
|
||||||
cmake --build demo/build
|
cmake --build demo/build
|
||||||
cd demo/build
|
cd demo/build
|
||||||
ctest -V
|
ctest -V
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${ZMQ_VERSION}" != "" ] ; then libzmq_install ; fi
|
||||||
|
|
||||||
|
cppzmq_build
|
||||||
|
cppzmq_tests
|
||||||
|
cppzmq_demo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user