mirror of
https://github.com/mpv-player/mpv
synced 2025-01-10 08:59:45 +00:00
649556b2b6
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.
194 lines
4.8 KiB
YAML
194 lines
4.8 KiB
YAML
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
|
|
|
|
# Increase -N suffix here to force full rebuild after changes
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: mingw_prefix/
|
|
key: "${{ matrix.target }}-2"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib nasm yasm
|
|
# Meson from apt is too old
|
|
pip3 install --no-input meson ninja
|
|
./bootstrap.py
|
|
|
|
- name: Build with meson
|
|
run: |
|
|
./ci/build-mingw64.sh meson
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./${{ matrix.target }}_mingw_build/meson-logs/meson-log.txt
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-mingw64.sh waf
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
macos:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "clang"
|
|
os:
|
|
- "macos-10.15"
|
|
- "macos-11"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew update
|
|
brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 lua@5.1 libass ffmpeg meson
|
|
|
|
- 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
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-macos.sh waf
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
TRAVIS_OS_NAME: "${{ matrix.os }}"
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
linux:
|
|
runs-on: "ubuntu-20.04"
|
|
container:
|
|
image: "registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps"
|
|
# Disable seccomp until a container manager in GitHub recognizes
|
|
# clone3() syscall,
|
|
# <https://github.com/actions/virtual-environments/issues/3812>.
|
|
options: --security-opt seccomp=unconfined
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "gcc"
|
|
- "clang"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
./bootstrap.py
|
|
zypper -n install meson
|
|
|
|
- name: Build with meson
|
|
run: |
|
|
./ci/build-tumbleweed.sh meson
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/meson-logs/meson-log.txt
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-tumbleweed.sh waf
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
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 \
|
|
cmake \
|
|
evdev-proto \
|
|
ffmpeg \
|
|
libplacebo \
|
|
libxkbcommon \
|
|
luajit \
|
|
meson \
|
|
openal-soft \
|
|
pkgconf \
|
|
python3 \
|
|
sdl2 \
|
|
sndio \
|
|
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
|