diff --git a/.travis.yml b/.travis.yml index b11fc641e4..4b90bd06c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,8 +48,8 @@ matrix: compiler: gcc env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp - os: osx + compiler: clang env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp - if: type != pull_request # These are the install and build (script) phases for the most common entries in the matrix. They could be included # in each entry in the matrix, but that is just repetitive. @@ -73,6 +73,13 @@ addons: packages: - g++-4.9 - clang-3.9 + update: true + homebrew: + packages: + - ccache + - gcc@4.9 + - llvm@3.9 + update: true notifications: email: false diff --git a/ci/env-osx.sh b/ci/env-osx.sh index 03c2d15dd3..9c421e1431 100755 --- a/ci/env-osx.sh +++ b/ci/env-osx.sh @@ -37,5 +37,11 @@ # if [ "${TRAVIS_OS_NAME}" = "osx" ]; then - if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.9" CC="clang-3.9"; fi + if [ "$CXX" = "clang++" ]; then + # $PATH needs to be adjusted because the llvm tap doesn't install the + # package to /usr/local/bin, etc, like the gcc tap does. + # See: https://github.com/Homebrew/legacy-homebrew/issues/29733 + clang_version=3.9 + export PATH="/usr/local/opt/llvm@${clang_version}/bin:$PATH"; + fi fi diff --git a/ci/install-osx.sh b/ci/install-osx.sh index 6550ff514f..f2baebd297 100755 --- a/ci/install-osx.sh +++ b/ci/install-osx.sh @@ -36,4 +36,5 @@ if [ "${TRAVIS_OS_NAME}" != "osx" ]; then exit 0 fi -brew install ccache +brew update +brew install ccache gcc@4.9 llvm@3.9