Move node visitor class from smt_util/ to expr/ (#4110)
[cvc5.git] / .travis.yml
1 language: cpp
2 cache:
3 - apt
4 - ccache
5
6 sudo: false
7 dist: xenial
8
9 env:
10 global:
11 - CCACHE_COMPRESS=1
12 addons:
13 apt:
14 sources:
15 - ubuntu-toolchain-r-test
16 packages: &common_deps
17 - antlr3
18 - cmake
19 - cxxtest
20 - junit4
21 - libantlr3c-dev
22 - libcln-dev
23 - libgmp-dev
24 - libhamcrest-java
25 - openjdk-8-jdk
26 - python3
27 - python3-pip
28 - python3-setuptools
29 - swig3.0
30 before_install:
31 # Clang does not play nice with ccache (at least the versions offered by
32 # Travis), use a workaround:
33 # https://github.com/travis-ci/travis-ci/issues/5383#issuecomment-224630584
34 - |
35 if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$CXX" == "clang++" ]; then
36 export CFLAGS="-Qunused-arguments"
37 export CXXFLAGS="-Qunused-arguments"
38 sudo ln -s $(which ccache) /usr/lib/ccache/clang
39 sudo ln -s $(which ccache) /usr/lib/ccache/clang++
40 fi
41 before_script:
42 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
43 script:
44 - ccache -M 1G
45 - ccache -z
46 - ${CC} --version
47 - ${CXX} --version
48 - sudo ${TRAVIS_PYTHON} -m pip install toml
49 - sudo ${TRAVIS_PYTHON} -m pip install Cython==0.29 --install-option="--no-cython-compile"
50 - |
51 echo "travis_fold:start:load_script"
52 normal="$(echo -e '\033[0m')" red="$normal$(echo -e '\033[01;31m')" green="$normal$(echo -e '\033[01;32m')"
53 configureCVC4() {
54 echo "CVC4 config - $TRAVIS_CVC4_CONFIG";
55 ./configure.sh --name=build --prefix=$(pwd)/build/install --unit-testing $TRAVIS_CVC4_CONFIG
56 }
57 error() {
58 echo;
59 echo "${red}${1}${normal}";
60 echo;
61 exit 1;
62 }
63 makeCheck() {
64 (
65 cd build
66 make -j2 check ARGS='-LE regress[1-4]' CVC4_REGRESSION_ARGS='--no-early-exit' || error "BUILD/UNIT/SYSTEM/REGRESSION TEST FAILED"
67 )
68 }
69 makeExamples() {
70 (
71 cd examples
72 mkdir build
73 cd build
74 cmake .. -DCMAKE_PREFIX_PATH=$(pwd)/../../build/install/lib/cmake
75 make -j2
76 ctest -j2 --output-on-failure || error "RUNNING EXAMPLES FAILED"
77 )
78 }
79 makeInstallCheck() {
80 (
81 cd build
82 make install -j2
83 echo -e "#include <cvc4/cvc4.h>\nint main() { CVC4::ExprManager em; return 0; }" > /tmp/test.cpp
84 $CXX -std=c++11 /tmp/test.cpp -I install/include -L install/lib -lcvc4 -lcln || exit 1
85 # set PYTHONPATH to include the directory containing pycvc4 module
86 export PYTHONPATH=$PYTHONPATH:$(dirname $(find ./install/ -name "pycvc4" -type d))
87 if [[ "$TRAVIS_CVC4_PYTHON_BINDINGS" == "yes" ]]; then
88 $TRAVIS_PYTHON -c "import pycvc4" || exit 1
89 fi
90 )
91 }
92 run() {
93 echo "travis_fold:start:$1"
94 echo "Running $1"
95 $1 || exit 1
96 echo "travis_fold:end:$1"
97 }
98 [[ "$TRAVIS_CVC4_CONFIG" == *"symfpu"* ]] && CVC4_SYMFPU_BUILD="yes"
99 [ -n "$CVC4_SYMFPU_BUILD" ] && run contrib/get-symfpu
100 [ -n "$TRAVIS_CVC4" ] && [ -n "$TRAVIS_WITH_LFSC" ] && run contrib/get-lfsc-checker
101 [ -n "$TRAVIS_CVC4" ] && run configureCVC4
102 [ -n "$TRAVIS_CVC4" ] && run makeCheck
103 [ -z "$CVC4_SYMFPU_BUILD" ] && run makeInstallCheck && run makeExamples
104 [ -z "$TRAVIS_CVC4" ] && error "Unknown Travis-CI configuration"
105 echo "travis_fold:end:load_script"
106 - echo; echo "${green}EVERYTHING SEEMED TO PASS!${normal}"
107 - ccache -s
108 matrix:
109 fast_finish: true
110 include:
111 # Test with GCC
112 - compiler: gcc
113 env:
114 - TRAVIS_CVC4=yes
115 - TRAVIS_WITH_LFSC=yes
116 - TRAVIS_CVC4_PYTHON_BINDINGS=no
117 - TRAVIS_CVC4_CONFIG="production --language-bindings=java --lfsc"
118 - TRAVIS_PYTHON=python
119 - compiler: gcc
120 env:
121 - TRAVIS_CVC4=yes
122 - TRAVIS_WITH_LFSC=yes
123 - TRAVIS_CVC4_PYTHON_BINDINGS=no
124 - TRAVIS_CVC4_CONFIG="debug --symfpu --lfsc --no-debug-symbols"
125 - TRAVIS_PYTHON=python
126 # Test python bindings
127 - compiler: gcc
128 env:
129 - TRAVIS_CVC4=yes
130 - TRAVIS_WITH_LFSC=yes
131 - TRAVIS_CVC4_PYTHON_BINDINGS=yes
132 - TRAVIS_CVC4_CONFIG="production --python-bindings --python2"
133 - TRAVIS_PYTHON=python
134 - compiler: gcc
135 env:
136 - TRAVIS_CVC4=yes
137 - TRAVIS_WITH_LFSC=yes
138 - TRAVIS_CVC4_PYTHON_BINDINGS=yes
139 - TRAVIS_CVC4_CONFIG="production --python-bindings --python3"
140 - TRAVIS_PYTHON=python3
141 #
142 # Test with Clang
143 - compiler: clang
144 env:
145 - TRAVIS_CVC4=yes
146 - TRAVIS_WITH_LFSC=yes
147 - TRAVIS_CVC4_PYTHON_BINDINGS=no
148 - TRAVIS_CVC4_CONFIG="debug --symfpu --cln --gpl --no-debug-symbols --no-proofs"
149 - TRAVIS_PYTHON=python
150 notifications:
151 email:
152 on_success: change
153 on_failure: always