about summary refs log tree commit diff homepage
path: root/.travis/install-llvm-and-runtime-compiler.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis/install-llvm-and-runtime-compiler.sh')
-rwxr-xr-x.travis/install-llvm-and-runtime-compiler.sh18
1 files changed, 12 insertions, 6 deletions
diff --git a/.travis/install-llvm-and-runtime-compiler.sh b/.travis/install-llvm-and-runtime-compiler.sh
index 6c9bc009..bd34d843 100755
--- a/.travis/install-llvm-and-runtime-compiler.sh
+++ b/.travis/install-llvm-and-runtime-compiler.sh
@@ -8,12 +8,18 @@ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
   sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 20
   sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 20
 elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
-  # NOTE: We should not easily generalize, since we need the corresponding support of bottled formulas
-  if [ "${LLVM_VERSION}" == "3.4" ]; then
-    brew install llvm34
-  else
-    echo "Error: Requested to install LLVM ${LLVM_VERSION} on macOS, which is not supported"
-    exit 1
+  # We use our own local cache if possible
+  set +e
+  brew install $HOME/Library/Caches/Homebrew/llvm\@${LLVM_VERSION}*.bottle.tar.gz
+  RES=$?
+  set -ev
+  if [ ${RES} -ne 0 ]; then
+    # This might build the llvm package use a time out to avoid dumping log information
+    brew install -v --build-bottle "llvm@${LLVM_VERSION}"
+    # Now bottle the brew
+    brew bottle llvm\@${LLVM_VERSION}
+    # Not make sure it's cached
+    cp llvm\@${LLVM_VERSION}*.bottle.tar.gz $HOME/Library/Caches/Homebrew/
   fi
 else
   echo "Unhandled TRAVIS_OS_NAME \"${TRAVIS_OS_NAME}\""