From 6681bcf08cbac37a24fc9592c849ef34a3434a89 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 8 Feb 2016 12:29:44 +0000 Subject: [PATCH 1/4] Problem: tweetnacl/contrib/randombytes need C++0x Solution: disable -pedantic when building with tweetnacl to avoid warning about "long long" not existing in ISO C++ 98 --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index b3455e21..2c1af188 100644 --- a/configure.ac +++ b/configure.ac @@ -470,6 +470,7 @@ if test "x$have_sodium_library" != "xno"; then elif test "x$with_tweetnacl" != "xno"; then AC_DEFINE(HAVE_LIBSODIUM, 1, [Sodium is provided by tweetnacl.]) AC_DEFINE(HAVE_TWEETNACL, 1, [Using tweetnacl.]) + libzmq_pedantic="no" fi AM_CONDITIONAL(HAVE_SODIUM, test "x$have_sodium_library" != "xno") From 84544ca6e28ecb5409bc991a42ed2c4c36327367 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 8 Feb 2016 11:15:25 +0000 Subject: [PATCH 2/4] Problem: no CI build with tweetnacl Solution: add builds/tweetnacl/ci_build.sh and add it in travis.yml --- .travis.yml | 1 + builds/tweetnacl/ci_build.sh | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 builds/tweetnacl/ci_build.sh diff --git a/.travis.yml b/.travis.yml index a7db5016..7646226a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ os: env: - BUILD_TYPE=default - BUILD_TYPE=android +- BUILD_TYPE=tweetnacl sudo: false diff --git a/builds/tweetnacl/ci_build.sh b/builds/tweetnacl/ci_build.sh new file mode 100755 index 00000000..e59c10f0 --- /dev/null +++ b/builds/tweetnacl/ci_build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -x + +mkdir tmp +BUILD_PREFIX=$PWD/tmp + +CONFIG_OPTS=() +CONFIG_OPTS+=("CFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("CPPFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("CXXFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("LDFLAGS=-L${BUILD_PREFIX}/lib") +CONFIG_OPTS+=("PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig") +CONFIG_OPTS+=("--prefix=${BUILD_PREFIX}") + +# Build and check this project +( + cd ../..; + ./autogen.sh && + ./configure "${CONFIG_OPTS[@]}" --with-tweetnacl=yes && + make && + ( if make check; then true; else cat test-suite.log; exit 1; fi ) && + make install +) || exit 1 From 918c1ec620bd484eb6facbd1a0123816169f60ad Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 8 Feb 2016 13:12:00 +0000 Subject: [PATCH 3/4] Problem: CMake uses command added in 2.8.12 Solution: bump CMake required version to 2.8.12 to avoid: CMake Error at tests/CMakeLists.txt:110 (target_include_directories): Unknown CMake command "target_include_directories". --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c74b5854..27e44937 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # CMake build script for ZeroMQ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 2.8.12) project(ZeroMQ) list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}") From c23cc65735eeece3eb2facfa1dda7df09ae1974e Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 8 Feb 2016 12:46:49 +0000 Subject: [PATCH 4/4] Problem: no CMake Travis CI build Solution: add builds/cmake/ci_build.sh and call it from travis.yml --- .travis.yml | 8 ++++++++ builds/cmake/ci_build.sh | 25 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 builds/cmake/ci_build.sh diff --git a/.travis.yml b/.travis.yml index 7646226a..7e59e1e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,17 @@ env: - BUILD_TYPE=default - BUILD_TYPE=android - BUILD_TYPE=tweetnacl +- BUILD_TYPE=cmake sudo: false +addons: + apt: + sources: + - kubuntu-backports + packages: + - cmake + before_install: - if [ $TRAVIS_OS_NAME == "osx" ] ; then brew update; brew install binutils ; fi diff --git a/builds/cmake/ci_build.sh b/builds/cmake/ci_build.sh new file mode 100755 index 00000000..7f2c70a2 --- /dev/null +++ b/builds/cmake/ci_build.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -x + +mkdir tmp +BUILD_PREFIX=$PWD/tmp + +CONFIG_OPTS=() +CONFIG_OPTS+=("CFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("CPPFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("CXXFLAGS=-I${BUILD_PREFIX}/include") +CONFIG_OPTS+=("LDFLAGS=-L${BUILD_PREFIX}/lib") +CONFIG_OPTS+=("PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig") + +CMAKE_OPTS=() +CMAKE_OPTS+=("-DCMAKE_INSTALL_PREFIX:PATH=${BUILD_PREFIX}") +CMAKE_OPTS+=("-DCMAKE_PREFIX_PATH:PATH=${BUILD_PREFIX}") +CMAKE_OPTS+=("-DCMAKE_LIBRARY_PATH:PATH=${BUILD_PREFIX}/lib") +CMAKE_OPTS+=("-DCMAKE_INCLUDE_PATH:PATH=${BUILD_PREFIX}/include") + +git clone --depth 1 -b stable git://github.com/jedisct1/libsodium.git && +( cd libsodium; ./autogen.sh && ./configure --prefix=$BUILD_PREFIX && make && make install ) || exit 1 + +# Build, check, and install from local source +( cd ../..; mkdir build_cmake && cd build_cmake && PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make all VERBOSE=1 && make install ) || exit 1