| language: cpp |
| |
| matrix: |
| fast_finish: true |
| include: |
| - os: linux |
| dist: bionic |
| sudo: required |
| compiler: gcc |
| env: CERES_BUILD_TARGET=LINUX |
| - os: linux |
| dist: bionic |
| sudo: required |
| compiler: gcc |
| env: CERES_BUILD_TARGET=ANDROID |
| - os: osx |
| osx_image: xcode11.2 |
| env: CERES_BUILD_TARGET=OSX |
| - os: osx |
| osx_image: xcode11.2 |
| env: CERES_BUILD_TARGET=IOS |
| |
| env: |
| # As per http://docs.travis-ci.com/user/languages/cpp/#OpenMP-projects don't be greedy with OpenMP. |
| - OMP_NUM_THREADS=4 |
| |
| before_install: |
| - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get update -qq; fi |
| - | |
| if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then |
| cd /tmp |
| wget https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip |
| unzip -qq android-ndk-r20b-linux-x86_64.zip |
| fi |
| |
| install: |
| - if [ $TRAVIS_OS_NAME = linux ]; then $TRAVIS_BUILD_DIR/travis/install_travis_linux_deps.sh; fi |
| - if [ $TRAVIS_OS_NAME = osx ]; then $TRAVIS_BUILD_DIR/travis/install_travis_osx_deps.sh; fi |
| |
| before_script: |
| - mkdir /tmp/ceres-build |
| - cd /tmp/ceres-build |
| |
| script: |
| # NOTE: TRAVIS_BUILD_DIR is actually the source directory for Ceres. |
| - | |
| if [[ "$CERES_BUILD_TARGET" == "LINUX" || "$CERES_BUILD_TARGET" == "OSX" ]]; then |
| cmake $TRAVIS_BUILD_DIR |
| fi |
| - | |
| if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then |
| cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/android-ndk-r20b/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/lib/cmake/eigen3 -DANDROID_ABI=arm64-v8a -DANDROID_STL=c++_shared -DANDROID_NATIVE_API_LEVEL=android-29 -DMINIGLOG=ON -DBUILD_EXAMPLES=OFF $TRAVIS_BUILD_DIR |
| fi |
| - | |
| if [[ "$CERES_BUILD_TARGET" == "IOS" ]]; then |
| cmake -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/iOS.cmake -DEigen3_DIR=/usr/local/share/eigen3/cmake -DIOS_PLATFORM=OS $TRAVIS_BUILD_DIR |
| fi |
| - make -j 4 |
| - | |
| if [[ "$CERES_BUILD_TARGET" == "LINUX" || "$CERES_BUILD_TARGET" == "OSX" ]]; then |
| sudo make install |
| ctest --output-on-failure -j 4 |
| fi |
| |
| notifications: |
| email: |
| - alexs.mac@gmail.com |
| - sandwichmaker@gmail.com |
| - keir@google.com |
| - wjr@google.com |