diff --git a/.travis.yml b/.travis.yml index c65accb89e..15fe1467b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,14 +8,45 @@ language: c++ compiler: - gcc # - clang +env: + - BUILDTYPE=cmake-make + - BUILDTYPE=cmake-ninja + - BUILDTYPE=autotools before_install: # - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - sudo apt-get update -qq install: # - if [ "$CXX" = "g++" ]; then sudo apt-get install -qq g++-4.9; export CXX="g++-4.9" CC="gcc-4.9"; fi - sudo apt-get build-dep -qq gnucash - - sudo apt-get install -qq swig + - sudo apt-get install -qq swig xsltproc libdbd-sqlite3 cmake3 texinfo ninja-build - sudo apt-get install -qq libboost-all-dev libgtk-3-dev libwebkit2gtk-3.0-dev - sudo apt-get --reinstall install -qq language-pack-en language-pack-fr - git clone https://github.com/google/googletest -b release-1.8.0 ~/gtest -script: ./autogen.sh && ./configure --enable-python GTEST_ROOT=~/gtest/googletest GMOCK_ROOT=~/gtest/googlemock && make && TZ="America/Los_Angeles" make check +script: | + # The -e here says that if any line below fails, the whole script fails + set -ev + + # First, do the cmake build using the default Makefile generator + if [[ "$BUILDTYPE" == "cmake-make" ]]; then + mkdir /tmp/gnucash-build-cmake-make + cd /tmp/gnucash-build-cmake-make + GTEST_ROOT=~/gtest/googletest GMOCK_ROOT=~/gtest/googlemock cmake $TRAVIS_BUILD_DIR + make -j 4 + TZ="America/Los_Angeles" make check + + # Next, do cmake again, using the Ninja generator this time + elif [[ "$BUILDTYPE" == "cmake-ninja" ]]; then + mkdir /tmp/gnucash-build-cmake-ninja + cd /tmp/gnucash-build-cmake-ninja + GTEST_ROOT=~/gtest/googletest GMOCK_ROOT=~/gtest/googlemock cmake -G Ninja $TRAVIS_BUILD_DIR + ninja + TZ="America/Los_Angeles" ninja check + + # Finally, do the autotools build + elif [[ "$BUILDTYPE" == "autotools" ]]; then + cd $TRAVIS_BUILD_DIR + ./autogen.sh + ./configure --enable-python GTEST_ROOT=~/gtest/googletest GMOCK_ROOT=~/gtest/googlemock + make + TZ="America/Los_Angeles" make check + fi