language: cpp cache: - apt - ccache sudo: false dist: xenial env: global: - CCACHE_COMPRESS=1 addons: apt: sources: - ubuntu-toolchain-r-test packages: &common_deps - antlr3 - cmake - cxxtest - junit4 - libantlr3c-dev - libcln-dev - libgmp-dev - libhamcrest-java - openjdk-8-jdk - swig3.0 before_install: - eval "${MATRIX_EVAL}" # Clang does not play nice with ccache (at least the versions offered by # Travis), use a workaround: # https://github.com/travis-ci/travis-ci/issues/5383#issuecomment-224630584 - | if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$CXX" == "clang++" ]; then export CFLAGS="-Qunused-arguments" export CXXFLAGS="-Qunused-arguments" sudo ln -s $(which ccache) /usr/lib/ccache/clang sudo ln -s $(which ccache) /usr/lib/ccache/clang++ fi before_script: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 script: - ccache -M 1G - ccache -z - ${CC} --version - ${CXX} --version - | echo "travis_fold:start:load_script" normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')" configureCVC4() { echo "CVC4 config - $TRAVIS_CVC4_CONFIG"; ./configure.sh --name=build --prefix=$(pwd)/build/install --unit-testing $TRAVIS_CVC4_CONFIG } error() { echo; echo "${red}${1}${normal}"; echo; exit 1; } makeCheck() { ( cd build make -j2 check ARGS='-LE regress[1-4]' CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/UNIT/SYSTEM/REGRESSION TEST FAILED" ) } makeExamples() { ( cd examples mkdir build cd build cmake .. -DCMAKE_PREFIX_PATH=$(pwd)/../../build/install/lib/cmake make -j2 ctest -j2 --output-on-failure || error "RUNNING EXAMPLES FAILED" ) } makeInstallCheck() { ( cd build make install -j2 echo -e "#include \nint main() { CVC4::ExprManager em; return 0; }" > /tmp/test.cpp $CXX -std=c++11 /tmp/test.cpp -I install/include -L install/lib -lcvc4 -lcln || exit 1 ) } run() { echo "travis_fold:start:$1" echo "Running $1" $1 || exit 1 echo "travis_fold:end:$1" } [[ "$TRAVIS_CVC4_CONFIG" == *"symfpu"* ]] && CVC4_SYMFPU_BUILD="yes" [ -n "$CVC4_SYMFPU_BUILD" ] && run contrib/get-symfpu [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_WITH_LFSC" ] && run contrib/get-lfsc-checker [ -n "$TRAVIS_CVC4" ] && run configureCVC4 [ -n "$TRAVIS_CVC4" ] && run makeCheck [ -z "$CVC4_SYMFPU_BUILD" ] && run makeInstallCheck && run makeExamples [ -z "$TRAVIS_CVC4" ] && error "Unknown Travis-CI configuration" echo "travis_fold:end:load_script" - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}" - ccache -s matrix: fast_finish: true include: # Test with GCC - compiler: gcc env: - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='production --language-bindings=java --lfsc' - compiler: gcc env: - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --symfpu --lfsc --no-debug-symbols' # # Test with Clang - compiler: clang env: - TRAVIS_CVC4=yes TRAVIS_WITH_LFSC=yes TRAVIS_CVC4_CONFIG='debug --symfpu --cln --gpl --no-debug-symbols --no-proofs' notifications: email: on_success: change on_failure: always