Skip to content

Commit b11e445

Browse files
authored
Merge pull request #232 from kurdybacha/pkgconfig-build
Problem: libzmq pkg-config build not covered by CI
2 parents 6fe3d54 + 265a107 commit b11e445

File tree

2 files changed

+67
-32
lines changed

2 files changed

+67
-32
lines changed

.travis.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,21 @@ matrix:
1616
- os: osx
1717
osx_image: xcode9.1
1818
compiler: clang
19-
env: ZMQ_VERSION=4.2.5 DRAFT=1
19+
env: DRAFT=1
2020

2121
##########################################################
2222
# GCC on Linux
2323
##########################################################
2424

25-
# GCC default, draft disabled, latest libzmq
25+
# GCC default, draft disabled, older libzmq with pkg-config
2626
- os: linux
27-
env: ZMQ_VERSION=4.2.5
27+
sudo: true
28+
env: ZMQ_VERSION=4.2.0 BUILD_TYPE=pkgconfig
2829

29-
# GCC default, draft disabled, older libzmq
30+
# GCC default, draft disabled, default libzmq (defined in ci_build.sh)
3031
- os: linux
31-
env: ZMQ_VERSION=4.2.4
3232

33-
# GCC 7, draft enabled, latest libzmq
33+
# GCC 7, draft enabled (default), latest libzmq (default)
3434
- os: linux
3535
addons:
3636
apt:
@@ -39,7 +39,7 @@ matrix:
3939
packages:
4040
- g++-7
4141
env:
42-
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" ZMQ_VERSION=4.2.5 DRAFT=1
42+
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" DRAFT=1
4343
# - env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format
4444
# os: linux
4545
# addons:
@@ -49,8 +49,6 @@ matrix:
4949
# packages:
5050
# - clang-5.0
5151

52-
sudo: false
53-
5452
before_install:
5553
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then pip install --user cpp-coveralls; fi
5654

ci_build.sh

Lines changed: 60 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,80 @@
33
set -x
44
set -e
55

6+
BUILD_TYPE=${BUILD_TYPE:-cmake}
67
LIBZMQ=${PWD}/libzmq-build
78
CPPZMQ=${PWD}/cppzmq-build
9+
ZMQ_VERSION="4.2.5"
10+
DRAFT=${DRAFT:-0}
811
# Travis machines have 2 cores
912
JOBS=2
1013

11-
if [ "$DRAFT" = "1" ] ; then
14+
if [ "${DRAFT}" = "1" ] ; then
1215
# if we enable drafts during the libzmq cmake build, the pkgconfig
1316
# data should set ZMQ_BUILD_DRAFT_API in dependent builds, but this
1417
# does not appear to work (TODO)
1518
export ZEROMQ_CMAKE_FLAGS="-DENABLE_DRAFTS=ON"
1619
fi
1720

18-
install_zeromq() {
19-
curl -L https://github.com/zeromq/libzmq/archive/v${ZMQ_VERSION}.tar.gz \
21+
libzmq_install() {
22+
curl -L https://github.com/zeromq/libzmq/archive/v"${ZMQ_VERSION}".tar.gz \
2023
>zeromq.tar.gz
2124
tar -xvzf zeromq.tar.gz
22-
cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \
23-
-DZMQ_BUILD_TESTS=OFF \
24-
-DCMAKE_BUILD_TYPE=Release \
25-
${ZEROMQ_CMAKE_FLAGS}
26-
cmake --build ${LIBZMQ} -- -j${JOBS}
25+
if [ "${BUILD_TYPE}" = "cmake" ] ; then
26+
cmake -Hlibzmq-${ZMQ_VERSION} -B${LIBZMQ} -DWITH_PERF_TOOL=OFF \
27+
-DZMQ_BUILD_TESTS=OFF \
28+
-DCMAKE_BUILD_TYPE=Release \
29+
${ZEROMQ_CMAKE_FLAGS}
30+
cmake --build ${LIBZMQ} -- -j${JOBS}
31+
elif [ "${BUILD_TYPE}" = "pkgconfig" ] ; then
32+
pushd .
33+
cd libzmq-${ZMQ_VERSION}
34+
./autogen.sh &&
35+
./configure &&
36+
make VERBOSE=1 -j${JOBS}
37+
sudo make install
38+
popd
39+
fi
2740
}
2841

42+
2943
# build zeromq first
44+
cppzmq_build() {
45+
pushd .
46+
if [ "${BUILD_TYPE}" = "cmake" ] ; then
47+
export ZeroMQ_DIR=${LIBZMQ}
48+
fi
49+
cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS}
50+
cmake --build ${CPPZMQ} -- -j${JOBS}
51+
if [ "${BUILD_TYPE}" = "pkgconfig" ] ; then
52+
cd ${CPPZMQ}
53+
sudo make install
54+
fi
55+
popd
56+
}
57+
58+
cppzmq_tests() {
59+
pushd .
60+
cd ${CPPZMQ}
61+
ctest -V -j${JOBS}
62+
popd
63+
}
64+
65+
cppzmq_demo() {
66+
pushd .
67+
if [ "${BUILD_TYPE}" = "cmake" ] ; then
68+
export ZeroMQ_DIR=${LIBZMQ}
69+
export cppzmq_DIR=${CPPZMQ}
70+
fi
71+
cmake -Hdemo -Bdemo/build
72+
cmake --build demo/build
73+
cd demo/build
74+
ctest -V
75+
popd
76+
}
77+
78+
if [ "${ZMQ_VERSION}" != "" ] ; then libzmq_install ; fi
3079

31-
if [ "${ZMQ_VERSION}" != "" ] ; then install_zeromq ; fi
32-
33-
# build cppzmq
34-
pushd .
35-
ZeroMQ_DIR=${LIBZMQ} cmake -H. -B${CPPZMQ} ${ZEROMQ_CMAKE_FLAGS}
36-
cmake --build ${CPPZMQ} -- -j${JOBS}
37-
cd ${CPPZMQ}
38-
ctest -V -j${JOBS}
39-
popd
40-
41-
# build cppzmq demo
42-
ZeroMQ_DIR=${LIBZMQ} cppzmq_DIR=${CPPZMQ} cmake -Hdemo -Bdemo/build
43-
cmake --build demo/build
44-
cd demo/build
45-
ctest -V
80+
cppzmq_build
81+
cppzmq_tests
82+
cppzmq_demo

0 commit comments

Comments
 (0)