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