diff options
Diffstat (limited to 'scripts/mac/before_install.sh')
-rw-r--r-- | scripts/mac/before_install.sh | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/scripts/mac/before_install.sh b/scripts/mac/before_install.sh new file mode 100644 index 000000000..60d7312c9 --- /dev/null +++ b/scripts/mac/before_install.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +set -x + +# try to get rid of the insane debug crap +unalias -a +unset -f rvm_debug +unset -f cd +unset -f pushd +unset -f popd + +# Travis only pulls shallow repos. But that messes with git describe. +# Sorry Travis, fetching the whole thing and the tags as well... +git fetch --unshallow +git pull --tags +git describe + +# for our build we need an updated Homebrew with a few more components +# installed. Since the Travis cache doesn't seem to work, we put it on +# our own server +if curl --output /dev/null --silent --head --fail \ + http://subsurface-divelog.org/downloads/TravisMacBuildCache.tar.xz +then + echo "Download Homebrew with all our packages and overwritw /usr/local" + curl --output ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz \ + https://storage.googleapis.com/travis-cache/TravisMacBuildCache.tar.xz +# curl --output ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz \ +# http://subsurface-divelog.org/downloads/TravisMacBuildCache.tar.xz + sudo tar xJfC ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz /tmp + sudo mv /usr/local /usr/local2 + sudo mv /tmp/usr/local /usr/local +else + echo "Cannot find TravisMacBuildCache: recreate it by first updating Homebrew" + brew update + echo "Updated Homebrew, now get our dependencies brewed" + brew install xz hidapi libusb libxml2 libxslt libzip openssl pkg-config libgit2 + tar cf - /usr/local | xz -v -z -0 --threads=0 > ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz + echo "Sending new cache to transfer.sh - move it into place, please" + ls -lh ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz + curl --upload-file ${TRAVIS_BUILD_DIR}/TravisMacBuildCache.tar.xz https://transfer.sh/TravisMacBuildCache.tar.xz +fi + +# HACK - needs to be part of cache +brew install libssh2 + +# libdivecomputer uses the wrong include path for libusb and hidapi +# the pkgconfig file for libusb/hidapi already gives the include path as +# ../include/libusb-1.0 (../include/hidapi) yet libdivecomputer wants to use +# include <libusb-1.0/libusb.h> and include <hidapi/hidapi.h> + +sudo ln -s /usr/local/include/libusb-1.0 /usr/local/include/libusb-1.0/libusb-1.0 +sudo ln -s /usr/local/include/hidapi /usr/local/include/libusb-1.0/hidapi + +# prep things so we can build for Mac +# we have a custom built Qt some gives us just what we need, including QtWebKit +# +# we should just build and install this into /usr/local/ as well and have +# it all be part of the cache... + +pushd ${TRAVIS_BUILD_DIR} + +mkdir -p Qt/5.9.1 + +echo "Get custom Qt build and unpack it" +curl --output ${TRAVIS_BUILD_DIR}/Qt-5.9.1-mac.tar.xz \ + https://storage.googleapis.com/travis-cache/Qt-5.9.1-mac.tar.xz +# wget -q http://subsurface-divelog.org/downloads/Qt-5.9.1-mac.tar.xz +tar -xJ -C Qt/5.9.1 -f Qt-5.9.1-mac.tar.xz + +sudo mkdir -p /Users/hohndel +sudo ln -s ${TRAVIS_BUILD_DIR}//Qt/5.9.1 /Users/hohndel/Qt5.9.1 +ls -l /Users/hohndel |