Austin Schuh | 70cc955 | 2019-01-21 19:46:48 -0800 | [diff] [blame] | 1 | language: cpp |
| 2 | |
| 3 | matrix: |
| 4 | fast_finish: true |
| 5 | include: |
| 6 | - os: linux |
| 7 | dist: trusty |
| 8 | sudo: required |
| 9 | compiler: gcc |
| 10 | env: CERES_BUILD_TARGET=LINUX |
| 11 | - os: linux |
| 12 | dist: trusty |
| 13 | sudo: required |
| 14 | compiler: gcc |
| 15 | env: CERES_BUILD_TARGET=ANDROID |
| 16 | - os: osx |
| 17 | osx_image: xcode9.4 |
| 18 | env: CERES_BUILD_TARGET=OSX |
| 19 | - os: osx |
| 20 | osx_image: xcode9.4 |
| 21 | env: CERES_BUILD_TARGET=IOS |
| 22 | |
| 23 | env: |
| 24 | # As per http://docs.travis-ci.com/user/languages/cpp/#OpenMP-projects don't be greedy with OpenMP. |
| 25 | - OMP_NUM_THREADS=4 |
| 26 | |
| 27 | before_install: |
| 28 | - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get update -qq; fi |
| 29 | - | |
| 30 | if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then |
| 31 | cd /tmp |
| 32 | wget https://dl.google.com/android/repository/android-ndk-r17b-linux-x86_64.zip |
| 33 | unzip -qq android-ndk-r17b-linux-x86_64.zip |
| 34 | fi |
| 35 | |
| 36 | install: |
| 37 | - if [ $TRAVIS_OS_NAME = linux ]; then $TRAVIS_BUILD_DIR/travis/install_travis_linux_deps.sh; fi |
| 38 | - if [ $TRAVIS_OS_NAME = osx ]; then $TRAVIS_BUILD_DIR/travis/install_travis_osx_deps.sh; fi |
| 39 | |
| 40 | before_script: |
| 41 | - mkdir /tmp/ceres-build |
| 42 | - cd /tmp/ceres-build |
| 43 | |
| 44 | script: |
| 45 | # NOTE: TRAVIS_BUILD_DIR is actually the source directory for Ceres. |
| 46 | - | |
| 47 | if [[ "$CERES_BUILD_TARGET" == "LINUX" || "$CERES_BUILD_TARGET" == "OSX" ]]; then |
| 48 | cmake $TRAVIS_BUILD_DIR |
| 49 | fi |
| 50 | - | |
| 51 | if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then |
| 52 | cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/android-ndk-r17b/build/cmake/android.toolchain.cmake -DEIGEN_INCLUDE_DIR=/usr/local/include/eigen3 -DANDROID_ABI=armeabi-v7a -DANDROID_STL=c++_shared -DANDROID_NATIVE_API_LEVEL=android-24 -DMINIGLOG=ON -DBUILD_EXAMPLES=OFF $TRAVIS_BUILD_DIR |
| 53 | fi |
| 54 | - | |
| 55 | if [[ "$CERES_BUILD_TARGET" == "IOS" ]]; then |
| 56 | cmake -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/iOS.cmake -DEIGEN_INCLUDE_DIR=/usr/local/include/eigen3 -DIOS_PLATFORM=OS $TRAVIS_BUILD_DIR |
| 57 | fi |
| 58 | - make -j 4 |
| 59 | - | |
| 60 | if [[ "$CERES_BUILD_TARGET" == "LINUX" || "$CERES_BUILD_TARGET" == "OSX" ]]; then |
| 61 | sudo make install |
| 62 | ctest --output-on-failure -j 4 |
| 63 | fi |
| 64 | |
| 65 | notifications: |
| 66 | email: |
| 67 | - alexs.mac@gmail.com |
| 68 | - sandwichmaker@gmail.com |
| 69 | - keir@google.com |
| 70 | - wjr@google.com |