@@ -20,32 +20,58 @@ function bdist_wheel_cmd {
2020
2121if [ -n " $IS_OSX " ]; then
2222 echo " > OSX environment "
23+ export MAKEFLAGS=" -j$( sysctl -n hw.ncpu) "
2324else
2425 echo " > Linux environment "
26+ export MAKEFLAGS=" -j$( grep -E ' ^processor[[:space:]]*:' /proc/cpuinfo | wc -l) "
27+ fi
28+
29+ if [ -n " $IS_OSX " ]; then
30+
31+ source travis_osx_brew_cache.sh
32+
33+ BREW_SLOW_BUILIDING_PACKAGES=$( printf ' %s\n' \
34+ " x265 20" \
35+ " cmake 15" \
36+ " ffmpeg 10" \
37+ )
38+
39+ # Contrib adds significantly to project's build time
40+ if [ " $ENABLE_CONTRIB " -eq 1 ]; then
41+ BREW_TIME_LIMIT=$(( BREW_TIME_LIMIT - 10 * 60 ))
42+ fi
43+
2544fi
2645
2746function pre_build {
2847 echo " Starting pre-build"
29- set -e
48+ set -e -o pipefail
3049
3150 if [ -n " $IS_OSX " ]; then
3251 echo " Running for OSX"
52+
53+ brew update --merge
54+ brew_add_local_bottles
55+
56+ # Don't query analytical info online on `brew info`,
57+ # this takes several seconds and we don't need it
58+ # see https://docs.brew.sh/Manpage , "info formula" section
59+ export HOMEBREW_NO_GITHUB_API=1
3360
34- brew update
61+ # https://docs.travis-ci.com/user/caching/#ccache-cache
62+ # No need to allow rc 1 -- if this triggers a timeout,
63+ # something is clearly wrong
64+ brew_install_and_cache_within_time_limit ccache
65+ export PATH=" /usr/local/opt/ccache/libexec:$PATH "
3566
3667 echo ' Installing QT4'
37- brew tap | grep -qxF cartr/qt4 || brew tap -v cartr/qt4
38- brew tap --list-pinned | grep -qxF cartr/qt4 || brew tap-pin -v cartr/qt4
39- brew list --versions qt@4 || brew install -v qt@4
40- echo ' -----------------'
41- echo ' -----------------'
68+ brew tap | grep -qxF cartr/qt4 || brew tap cartr/qt4
69+ brew tap --list-pinned | grep -qxF cartr/qt4 || brew tap-pin cartr/qt4
70+ brew_install_and_cache_within_time_limit qt@4 || { [ $? -gt 1 ] && return 2 || return 0; }
71+
4272 echo ' Installing FFmpeg'
43- # brew install does produce output regularly on a regular MacOS,
44- # but Travis doesn't see it for some reason
45- brew list --versions ffmpeg || \
46- travis_wait brew install -v ffmpeg --without-x264 --without-xvid --without-gpl
47- brew info ffmpeg
48- echo ' -----------------'
73+
74+ brew_install_and_cache_within_time_limit ffmpeg || { [ $? -gt 1 ] && return 2 || return 0; }
4975
5076 else
5177 echo " Running for linux"
0 commit comments