Update Travis CI to Bionic & Xcode 11.2
- Fix Homebrew Ruby errors by forcing brew update before install.
- Remove use of custom Eigen 3.3.4 on Linux in favour of default Bionic
3.3.4 package.
- Update Android NDK version to R20b and build for arm64-v8.
- Fix erroneous string -> STRING in iOS toolchain file.
Change-Id: I041c2a08b92b8307c12bd8967159beb6984e3c65
diff --git a/.travis.yml b/.travis.yml
index 7d14971..9d604a5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,20 +4,20 @@
fast_finish: true
include:
- os: linux
- dist: xenial
+ dist: bionic
sudo: required
compiler: gcc
env: CERES_BUILD_TARGET=LINUX
- os: linux
- dist: xenial
+ dist: bionic
sudo: required
compiler: gcc
env: CERES_BUILD_TARGET=ANDROID
- os: osx
- osx_image: xcode9.4
+ osx_image: xcode11.2
env: CERES_BUILD_TARGET=OSX
- os: osx
- osx_image: xcode9.4
+ osx_image: xcode11.2
env: CERES_BUILD_TARGET=IOS
env:
@@ -29,8 +29,8 @@
- |
if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then
cd /tmp
- wget https://dl.google.com/android/repository/android-ndk-r17b-linux-x86_64.zip
- unzip -qq android-ndk-r17b-linux-x86_64.zip
+ 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:
@@ -49,7 +49,7 @@
fi
- |
if [[ "$CERES_BUILD_TARGET" == "ANDROID" ]]; then
- 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
+ cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/android-ndk-r20b/build/cmake/android.toolchain.cmake -DEIGEN_INCLUDE_DIR=/usr/include/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
diff --git a/cmake/iOS.cmake b/cmake/iOS.cmake
index bb42802..4029f96 100644
--- a/cmake/iOS.cmake
+++ b/cmake/iOS.cmake
@@ -297,7 +297,7 @@
# Set the find root to the iOS developer roots and to user defined paths.
set(CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_OSX_SYSROOT}
- ${CMAKE_PREFIX_PATH} CACHE string "iOS find search path root" FORCE)
+ ${CMAKE_PREFIX_PATH} CACHE STRING "iOS find search path root" FORCE)
# Default to searching for frameworks first.
set(CMAKE_FIND_FRAMEWORK FIRST)
diff --git a/travis/install_travis_linux_deps.sh b/travis/install_travis_linux_deps.sh
index 581cb4a..fd7cc78 100755
--- a/travis/install_travis_linux_deps.sh
+++ b/travis/install_travis_linux_deps.sh
@@ -3,19 +3,8 @@
# Stop processing on any error.
set -e
-# Install default versions of standard dependencies that are new enough in 14.04.
+# Install default versions of standard dependencies that are new enough in 18.04
sudo apt-get install -y cmake
sudo apt-get install -y libatlas-base-dev libsuitesparse-dev
sudo apt-get install -y libgoogle-glog-dev libgflags-dev
-
-# Install Eigen 3.3.4 as the default 14.04 version is 3.2.0 in which the sparse solvers
-# have known poor performance.
-wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz -O /tmp/eigen-3.3.4.tar.gz
-tar -C /tmp -xzf /tmp/eigen-3.3.4.tar.gz
-rm /tmp/eigen-3.3.4.tar.gz
-# Fix detection of BLAS/LAPACK broken in 3.3.4 release.
-wget https://bitbucket.org/eigen/eigen/commits/dbab66d00651bf050d1426334a39b627abe7216e/raw -O /tmp/eigen-3.3.4.fortran.patch
-cd /tmp/eigen-eigen-5a0156e40feb && patch -p1 < /tmp/eigen-3.3.4.fortran.patch
-mkdir /tmp/eigen-3.3.4-build
-cd /tmp/eigen-3.3.4-build
-cmake /tmp/eigen-eigen-5a0156e40feb && make && sudo make install
+sudo apt-get install -y libeigen3-dev
diff --git a/travis/install_travis_osx_deps.sh b/travis/install_travis_osx_deps.sh
index ce02fe4..adb949e 100755
--- a/travis/install_travis_osx_deps.sh
+++ b/travis/install_travis_osx_deps.sh
@@ -12,6 +12,12 @@
fi
}
+# Manually trigger an update prior to installing packages to avoid Ruby
+# version related errors as per [1].
+#
+# [1]: https://github.com/travis-ci/travis-ci/issues/8552
+brew update
+
install_if_not_installed cmake
install_if_not_installed glog
install_if_not_installed gflags