|
3 | 3 | set -x
|
4 | 4 | set -e
|
5 | 5 |
|
| 6 | +BUILD_TYPE=${BUILD_TYPE:-cmake} |
6 | 7 | LIBZMQ=${PWD}/libzmq-build
|
7 | 8 | CPPZMQ=${PWD}/cppzmq-build
|
| 9 | +ZMQ_VERSION="4.2.5" |
| 10 | +DRAFT=${DRAFT:-0} |
8 | 11 | # Travis machines have 2 cores
|
9 | 12 | JOBS=2
|
10 | 13 |
|
11 |
| -if [ "$DRAFT" = "1" ] ; then |
| 14 | +if [ "${DRAFT}" = "1" ] ; then |
12 | 15 | # if we enable drafts during the libzmq cmake build, the pkgconfig
|
13 | 16 | # data should set ZMQ_BUILD_DRAFT_API in dependent builds, but this
|
14 | 17 | # does not appear to work (TODO)
|
15 | 18 | export ZEROMQ_CMAKE_FLAGS="-DENABLE_DRAFTS=ON"
|
16 | 19 | fi
|
17 | 20 |
|
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 \ |
20 | 23 | >zeromq.tar.gz
|
21 | 24 | 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 |
27 | 40 | }
|
28 | 41 |
|
| 42 | + |
29 | 43 | # 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 |
30 | 79 |
|
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