2021-05-06 21:10:21 +00:00
|
|
|
name: build
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
- ci
|
|
|
|
- 'release/**'
|
|
|
|
pull_request:
|
|
|
|
branches: [master]
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
mingw:
|
|
|
|
runs-on: ubuntu-20.04
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
target: [i686-w64-mingw32, x86_64-w64-mingw32]
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
|
2021-10-06 22:18:58 +00:00
|
|
|
# Increase -N suffix here to force full rebuild after changes
|
2021-05-06 21:10:21 +00:00
|
|
|
- uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: mingw_prefix/
|
2022-01-24 20:49:13 +00:00
|
|
|
key: "${{ matrix.target }}-2"
|
2021-05-06 21:10:21 +00:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib nasm yasm
|
2021-11-07 19:29:11 +00:00
|
|
|
# Meson from apt is too old
|
|
|
|
pip3 install --no-input meson ninja
|
2021-05-06 21:10:21 +00:00
|
|
|
./bootstrap.py
|
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Build with meson
|
2021-05-06 21:10:21 +00:00
|
|
|
run: |
|
2021-11-07 19:29:11 +00:00
|
|
|
./ci/build-mingw64.sh meson
|
2021-05-06 21:10:21 +00:00
|
|
|
env:
|
|
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Print meson log
|
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
2021-11-26 03:22:19 +00:00
|
|
|
cat ./${{ matrix.target }}_mingw_build/meson-logs/meson-log.txt
|
2021-11-07 19:29:11 +00:00
|
|
|
|
|
|
|
- name: Build with waf
|
|
|
|
run: |
|
|
|
|
./ci/build-mingw64.sh waf
|
|
|
|
env:
|
|
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
|
|
|
|
- name: Print waf log
|
2021-05-06 21:10:21 +00:00
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
|
|
|
cat ./build/config.log
|
2021-07-25 12:17:19 +00:00
|
|
|
|
2021-07-23 09:24:38 +00:00
|
|
|
macos:
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
cc:
|
|
|
|
- "clang"
|
|
|
|
os:
|
|
|
|
- "macos-10.15"
|
2021-10-05 21:19:28 +00:00
|
|
|
- "macos-11"
|
2021-07-23 09:24:38 +00:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
|
2021-10-21 17:27:44 +00:00
|
|
|
- name: Override Xcode 13.0 if it's the default toolchain
|
|
|
|
run: |
|
|
|
|
XCODE_PATH="$(xcode-select -p)"
|
|
|
|
case "${XCODE_PATH}" in
|
|
|
|
*Xcode_13.0*)
|
|
|
|
sudo xcode-select -s "/Applications/Xcode_13.1.app"
|
|
|
|
echo "Updated Xcode path ${XCODE_PATH} -> $(xcode-select -p)"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2021-07-23 09:24:38 +00:00
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
brew update
|
github/workflows: use lua 5.1 on macos
LuaJIT is still actively developed, but upstream is allergic to making
new releases for whatever reason. The last tagged release was in May of
2017, so we probably shouldn't expect a new release anytime soon. Now
for mpv, this doesn't really matter except in the case of macOS where
2.0.5 is actually a bit broken (and of course the CI uses luajit). More
specifically, the 2.0.5 pc is broken and has a "-pagezero_size 10000"
flag which causes libmpv to fail (only executables are allowed to use
this). This magically works on waf. It's possible that it just happens
to ignore the link arguments. However on the meson build, this is broken
and led to a really ugly hack using a partial dependency so both mpv and
libmpv succeed. Fortunately, the 2.1 luajit branch fixes this.
Unfortunately, there's no actual release.
Instead, just use Lua 5.1. Note that lua 5.1 is technically deprecated
in homebrew, but the chances of this going away is pretty slim since
everyone knows that new lua versions are not backwards compatible.
Anyways, using 5.1 works fine and lets us get rid of a terrible hack in
the meson build. People really shouldn't be using 2.0 LuaJIT anyway.
2022-01-25 04:26:02 +00:00
|
|
|
brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 lua@5.1 libass ffmpeg meson
|
2021-11-07 19:29:11 +00:00
|
|
|
|
|
|
|
- name: Build with meson
|
|
|
|
run: |
|
|
|
|
./ci/build-macos.sh meson
|
|
|
|
env:
|
|
|
|
CC: "${{ matrix.cc }}"
|
|
|
|
TRAVIS_OS_NAME: "${{ matrix.os }}"
|
|
|
|
|
|
|
|
- name: Print meson log
|
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
|
|
|
cat ./build/meson-logs/meson-log.txt
|
2021-07-23 09:24:38 +00:00
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Build with waf
|
2021-07-23 09:24:38 +00:00
|
|
|
run: |
|
2021-11-07 19:29:11 +00:00
|
|
|
./ci/build-macos.sh waf
|
2021-07-23 09:24:38 +00:00
|
|
|
env:
|
|
|
|
CC: "${{ matrix.cc }}"
|
|
|
|
TRAVIS_OS_NAME: "${{ matrix.os }}"
|
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Print waf log
|
2021-07-23 09:24:38 +00:00
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
|
|
|
cat ./build/config.log
|
2021-07-25 12:17:19 +00:00
|
|
|
|
2021-07-25 09:01:06 +00:00
|
|
|
linux:
|
|
|
|
runs-on: "ubuntu-20.04"
|
|
|
|
container:
|
|
|
|
image: "registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps"
|
2021-10-02 16:20:36 +00:00
|
|
|
# Disable seccomp until a container manager in GitHub recognizes
|
|
|
|
# clone3() syscall,
|
|
|
|
# <https://github.com/actions/virtual-environments/issues/3812>.
|
|
|
|
options: --security-opt seccomp=unconfined
|
2021-07-25 09:01:06 +00:00
|
|
|
env:
|
|
|
|
CC: "${{ matrix.cc }}"
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
cc:
|
|
|
|
- "gcc"
|
|
|
|
- "clang"
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
./bootstrap.py
|
2022-01-08 18:03:21 +00:00
|
|
|
zypper -n install meson
|
2021-11-07 19:29:11 +00:00
|
|
|
|
|
|
|
- name: Build with meson
|
|
|
|
run: |
|
|
|
|
./ci/build-tumbleweed.sh meson
|
|
|
|
|
|
|
|
- name: Print meson log
|
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
|
|
|
cat ./build/meson-logs/meson-log.txt
|
2021-07-25 09:01:06 +00:00
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Build with waf
|
2021-07-25 09:01:06 +00:00
|
|
|
run: |
|
2021-11-07 19:29:11 +00:00
|
|
|
./ci/build-tumbleweed.sh waf
|
2021-07-25 09:01:06 +00:00
|
|
|
|
2021-11-07 19:29:11 +00:00
|
|
|
- name: Print waf log
|
2021-07-25 09:01:06 +00:00
|
|
|
if: ${{ failure() }}
|
|
|
|
run: |
|
|
|
|
cat ./build/config.log
|
2021-07-25 20:24:05 +00:00
|
|
|
|
|
|
|
freebsd:
|
|
|
|
runs-on: macos-10.15 # until https://github.com/actions/runner/issues/385
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Test in FreeBSD VM
|
|
|
|
uses: vmactions/freebsd-vm@v0.1.5 # aka FreeBSD 13.0
|
|
|
|
with:
|
|
|
|
usesh: true
|
|
|
|
prepare: |
|
|
|
|
# Requested in ci/build-freebsd.sh
|
|
|
|
pkg install -y \
|
2021-11-07 19:29:11 +00:00
|
|
|
cmake \
|
2021-07-25 20:24:05 +00:00
|
|
|
evdev-proto \
|
|
|
|
ffmpeg \
|
|
|
|
libplacebo \
|
|
|
|
libxkbcommon \
|
|
|
|
luajit \
|
2022-01-08 18:03:21 +00:00
|
|
|
meson \
|
2021-07-25 20:24:05 +00:00
|
|
|
openal-soft \
|
|
|
|
pkgconf \
|
|
|
|
python3 \
|
|
|
|
sdl2 \
|
2022-01-22 18:48:48 +00:00
|
|
|
sndio \
|
2021-07-25 20:24:05 +00:00
|
|
|
vulkan-headers \
|
|
|
|
wayland-protocols \
|
|
|
|
#
|
|
|
|
# Optionally auto-enabled
|
|
|
|
pkg install -y \
|
|
|
|
alsa-lib \
|
|
|
|
jackit \
|
|
|
|
libXv \
|
|
|
|
libarchive \
|
|
|
|
libbluray \
|
|
|
|
libcaca \
|
|
|
|
libcdio-paranoia \
|
|
|
|
libdvdnav \
|
|
|
|
mujs \
|
|
|
|
pulseaudio \
|
|
|
|
rubberband \
|
|
|
|
sekrit-twc-zimg \
|
|
|
|
uchardet \
|
|
|
|
v4l_compat \
|
|
|
|
#
|
|
|
|
run: |
|
|
|
|
./ci/build-freebsd.sh
|