mirror of https://github.com/mpv-player/mpv
travis: rework scripts to re-enable macOS
* Adds a script to clone and build FFmpeg as well as to configure and build mpv itself. Currently only used for macOS and contain hard-coded macOS specific options. * Still works with the Linux containers. * Moves our language back to "c" from "generic" * Defines our Linux distribution as "bionic" to get the latest Ubuntu base distribution to be the runner for our containers. * Adds the homebrew add-on for macOS package installation for dependencies. Installs everything required but FFmpeg, as we want to have our own FFmpeg snapshots.
This commit is contained in:
parent
b539eb222b
commit
56d31ae190
52
.travis.yml
52
.travis.yml
|
@ -1,19 +1,34 @@
|
|||
language: generic
|
||||
language: c
|
||||
|
||||
os:
|
||||
- linux
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode10.2
|
||||
compiler: clang
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: clang
|
||||
- os: osx
|
||||
osx_image: xcode9.2
|
||||
compiler: clang
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh
|
||||
- os: linux
|
||||
env: CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:i686 CI_SCRIPT=ci/build-mingw64.sh TARGET=i686-w64-mingw32
|
||||
- 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
|
||||
|
||||
dist: bionic
|
||||
services:
|
||||
- docker
|
||||
|
||||
sudo: required
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh CC=gcc
|
||||
- CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps CI_SCRIPT=ci/build-tumbleweed.sh CC=clang
|
||||
- CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:i686 CI_SCRIPT=ci/build-mingw64.sh TARGET=i686-w64-mingw32
|
||||
- CONTAINER=registry.cirno.systems/kiwi/containers/mpv-ci-mingw64:x86_64 CI_SCRIPT=ci/build-mingw64.sh TARGET=x86_64-w64-mingw32
|
||||
global:
|
||||
# Coverity token
|
||||
- secure: "H21mSRlMhk4BKS0xHZvCFGJxteCP0hRVUxTuNfM2Z9HBsyutuLEYMtViLO86VtM+Tqla3xXPzUdS4ozLwI72Ax/5ZUDXACROj73yW6QhFB5D6rLut12+FjqC7M33Qv2hl0xwgNBmR5dsm1ToP37+Wn+ecJQNvN8fkTXF+HVzOEw="
|
||||
|
@ -28,10 +43,14 @@ branches:
|
|||
- /release\/.*$/
|
||||
|
||||
before_install:
|
||||
- docker pull $CONTAINER
|
||||
- if [ "$TRAVIS_COMPILER" = "clang" ]; then export CXX="clang++"; fi
|
||||
- if [ "$TRAVIS_COMPILER" = "gcc" ]; then export CXX="g++"; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then docker pull $CONTAINER; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then "$TRAVIS_BUILD_DIR/ci/get_ffmpeg.sh"; fi
|
||||
script:
|
||||
- ./bootstrap.py
|
||||
- docker run --env CC --env TARGET -v $TRAVIS_BUILD_DIR:/build $CONTAINER /bin/sh -c "cd /build && $CI_SCRIPT"
|
||||
- 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" = "osx" ]; then ./ci/build-macos.sh; fi
|
||||
after_failure: cat ./build/config.log
|
||||
after_script: TOOLS/travis-rebuild-website
|
||||
|
||||
|
@ -52,3 +71,16 @@ addons:
|
|||
build_command_prepend: "./bootstrap.py && ./waf configure"
|
||||
build_command: "./waf build"
|
||||
branch_pattern: coverity_scan
|
||||
homebrew:
|
||||
packages:
|
||||
- autoconf
|
||||
- automake
|
||||
- freetype
|
||||
- fribidi
|
||||
- libass
|
||||
- libtool
|
||||
- little-cms2
|
||||
- luajit
|
||||
- nasm
|
||||
- pkg-config
|
||||
update: true
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
FFMPEG_SYSROOT="${HOME}/deps/sysroot"
|
||||
MPV_INSTALL_PREFIX="${HOME}/out/mpv"
|
||||
MPV_VARIANT="${TRAVIS_OS_NAME}"
|
||||
|
||||
if [[ -d "./build/${MPV_VARIANT}" ]] ; then
|
||||
rm -rf "./build/${MPV_VARIANT}"
|
||||
fi
|
||||
|
||||
if [[ ! -e "./waf" ]] ; then
|
||||
python3 ./bootstrap.py
|
||||
fi
|
||||
|
||||
PKG_CONFIG_PATH="${FFMPEG_SYSROOT}/lib/pkgconfig/" CC="${CC}" CXX="${CXX}" python3 \
|
||||
./waf configure \
|
||||
--variant="${MPV_VARIANT}" \
|
||||
--prefix="${MPV_INSTALL_PREFIX}" \
|
||||
--enable-{gl,iconv,lcms2,libass,libass-osd,libmpv-shared,lua,jpeg,plain-gl,zlib} \
|
||||
--enable-{apple-remote,cocoa,coreaudio,gl-cocoa,macos-cocoa-cb,macos-touchbar,videotoolbox-gl}
|
||||
|
||||
python3 ./waf build --variant="${MPV_VARIANT}" -j4
|
||||
|
||||
python3 ./waf install --variant="${MPV_VARIANT}"
|
|
@ -0,0 +1,38 @@
|
|||
#!/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