mirror of https://github.com/mpv-player/mpv
travis: update macOS images and make building faster
don't build our own ffmpeg anymore and instead use the bottled version from homebrew. update the newest macOS image. also handle macOS 10.12 as a legacy OS since homebrew and Apple stopped supporting it. nevertheless it's helpful to build on that version since it's the last version we support building on. it's a bit special since we have to pin the homebrew-core version to a previous one where all the bottles for macOS 10.12 are still available, otherwise it would build nearly everything from source and that would take ages. also start caching the homebrew cache folder for downloads.
This commit is contained in:
parent
363048077f
commit
57f9de7b53
74
.travis.yml
74
.travis.yml
|
@ -1,16 +1,29 @@
|
||||||
language: c
|
language: c
|
||||||
|
|
||||||
|
macbase:
|
||||||
|
- &macOld
|
||||||
|
os: osx
|
||||||
|
compiler: clang
|
||||||
|
env:
|
||||||
|
- HOMEBREW_NO_AUTO_UPDATE=1
|
||||||
|
- HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
|
- &macNew
|
||||||
|
<<: *macOld
|
||||||
|
addons:
|
||||||
|
homebrew:
|
||||||
|
packages: ['autoconf', 'automake', 'ffmpeg', 'freetype', 'fribidi',
|
||||||
|
'libass', 'libtool', 'little-cms2', 'luajit', 'nasm',
|
||||||
|
'pkg-config', 'python']
|
||||||
|
update: true
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: osx
|
- <<: *macNew
|
||||||
osx_image: xcode11
|
osx_image: xcode11.3
|
||||||
compiler: clang
|
- <<: *macNew
|
||||||
- os: osx
|
|
||||||
osx_image: xcode10.1
|
osx_image: xcode10.1
|
||||||
compiler: clang
|
- <<: *macOld
|
||||||
- os: osx
|
|
||||||
osx_image: xcode9.2
|
osx_image: xcode9.2
|
||||||
compiler: clang
|
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh
|
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh
|
||||||
|
@ -21,6 +34,10 @@ matrix:
|
||||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:i686 CI_SCRIPT=ci/build-mingw64.sh TARGET=i686-w64-mingw32
|
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:i686 CI_SCRIPT=ci/build-mingw64.sh TARGET=i686-w64-mingw32
|
||||||
- os: linux
|
- os: linux
|
||||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:x86_64 CI_SCRIPT=ci/build-mingw64.sh TARGET=x86_64-w64-mingw32
|
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:x86_64 CI_SCRIPT=ci/build-mingw64.sh TARGET=x86_64-w64-mingw32
|
||||||
|
allow_failures:
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode9.2
|
||||||
|
fast_finish: true
|
||||||
|
|
||||||
dist: bionic
|
dist: bionic
|
||||||
services:
|
services:
|
||||||
|
@ -48,9 +65,34 @@ before_install:
|
||||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker pull $CONTAINER; fi
|
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker pull $CONTAINER; fi
|
||||||
- |
|
- |
|
||||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||||
brew link --overwrite python
|
if [[ "$TRAVIS_OSX_IMAGE" == "xcode9.2" ]]; then
|
||||||
"$TRAVIS_BUILD_DIR/ci/get_ffmpeg.sh"
|
brew update
|
||||||
|
pushd "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core"
|
||||||
|
git checkout 55e02323812604add9a69bab8730319b9255a697
|
||||||
|
popd
|
||||||
|
brew install autoconf
|
||||||
|
brew install automake
|
||||||
|
brew install pkg-config
|
||||||
|
brew install libtool
|
||||||
|
brew install python
|
||||||
|
brew install freetype
|
||||||
|
brew install fribidi
|
||||||
|
brew install little-cms2
|
||||||
|
brew install luajit
|
||||||
|
brew install libass
|
||||||
|
brew install ffmpeg
|
||||||
|
else
|
||||||
|
brew link --overwrite python
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
before_cache:
|
||||||
|
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew cleanup -s ; fi
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/Library/Caches/Homebrew
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./bootstrap.py
|
- ./bootstrap.py
|
||||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker run --env CC --env TARGET -v $TRAVIS_BUILD_DIR:/build $CONTAINER /bin/sh -c "cd /build && $CI_SCRIPT"; fi
|
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker run --env CC --env TARGET -v $TRAVIS_BUILD_DIR:/build $CONTAINER /bin/sh -c "cd /build && $CI_SCRIPT"; fi
|
||||||
|
@ -75,17 +117,3 @@ addons:
|
||||||
build_command_prepend: "./bootstrap.py && ./waf configure"
|
build_command_prepend: "./bootstrap.py && ./waf configure"
|
||||||
build_command: "./waf build"
|
build_command: "./waf build"
|
||||||
branch_pattern: coverity_scan
|
branch_pattern: coverity_scan
|
||||||
homebrew:
|
|
||||||
packages:
|
|
||||||
- autoconf
|
|
||||||
- automake
|
|
||||||
- freetype
|
|
||||||
- fribidi
|
|
||||||
- libass
|
|
||||||
- libtool
|
|
||||||
- little-cms2
|
|
||||||
- luajit
|
|
||||||
- nasm
|
|
||||||
- pkg-config
|
|
||||||
- python
|
|
||||||
update: true
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
FFMPEG_SRC_DIR="${HOME}/deps/src/ffmpeg"
|
|
||||||
FFMPEG_BUILD_DIR="${FFMPEG_SRC_DIR}/${TRAVIS_OS_NAME}"
|
|
||||||
FFMPEG_SYSROOT="${HOME}/deps/sysroot"
|
|
||||||
FFMPEG_HASH="18928e2bb4568cbe5e9061c3e6b63559392af3d2"
|
|
||||||
|
|
||||||
# Get the sauce if not around
|
|
||||||
if [[ ! -d "${FFMPEG_SRC_DIR}" ]] ; then
|
|
||||||
git clone "https://git.videolan.org/git/ffmpeg.git" "${FFMPEG_SRC_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# pop into FFmpeg's source dir and clean up & check out our wanted revision
|
|
||||||
pushd "${FFMPEG_SRC_DIR}"
|
|
||||||
git reset --hard HEAD && git clean -dfx
|
|
||||||
git checkout "${FFMPEG_HASH}"
|
|
||||||
popd
|
|
||||||
|
|
||||||
# If a build dir of the same type is around, clean it up
|
|
||||||
if [[ -d "${FFMPEG_BUILD_DIR}" ]] ; then
|
|
||||||
rm -rf "${FFMPEG_BUILD_DIR}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create and move into the build dir, configure and build!
|
|
||||||
mkdir -p "${FFMPEG_BUILD_DIR}" && pushd "${FFMPEG_BUILD_DIR}"
|
|
||||||
|
|
||||||
PKG_CONFIG_PATH="${FFMPEG_SYSROOT}/lib/pkgconfig/" ../configure \
|
|
||||||
--disable-{autodetect,stripping} \
|
|
||||||
--cc="${CC}" \
|
|
||||||
--cxx="${CXX}" \
|
|
||||||
--prefix="${FFMPEG_SYSROOT}" \
|
|
||||||
--enable-{zlib,securetransport,videotoolbox}
|
|
||||||
|
|
||||||
make -j4 && make install && popd
|
|
||||||
|
|
||||||
exit 0
|
|
Loading…
Reference in New Issue