Ryujinx.Graphics.Nvdec.Depe.../.github/workflows/ci.yml

78 lines
3.2 KiB
YAML

name: FFmpeg native build
on:
workflow_dispatch:
inputs:
rev:
description: 'FFmpeg/FFmpeg commit to build'
required: true
env:
DECODERS: "h264,vp8"
MACOSX_DEPLOYMENT_TARGET: "11.0"
jobs:
build:
name: ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- { name: win-x64, os: ubuntu-20.04, flags: "--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --disable-w32threads --extra-ldflags=\"-static-libgcc -static-libstdc++ -static\"" }
- { name: linux-x64, os: ubuntu-20.04, flags: "--arch=x86_64 --extra-ldflags=\"-static-libgcc -static-libstdc++\"" }
- { name: osx-x64, os: macos-latest, flags: "--arch=x86_64 --install-name-dir=\"@rpath\"" }
- { name: osx-arm64, os: macos-latest, flags: "--arch=arm64 --install-name-dir=\"@rpath\" --enable-neon --enable-cross-compile --cc=\"clang -arch arm64\"" }
steps:
- name: Setup Linux common dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get install yasm \
make \
automake \
autoconf \
git \
pkg-config \
libtool-bin \
nasm
- name: Setup MinGW64 dependencies
if: ${{ matrix.platform.name == 'win-x64' }}
run: |
sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
- name: Setup nasm for osx-x64 dependencies
if: ${{ matrix.platform.name == 'osx-x64' }}
run: |
brew install nasm
- uses: actions/checkout@v2
with:
repository: FFmpeg/FFmpeg
ref: ${{ github.event.inputs.rev }}
- name: Configure FFmpeg build
run: |
./configure --disable-everything \
--disable-static \
--disable-doc \
--disable-programs \
--disable-swscale \
--disable-avformat \
--disable-swresample \
--disable-avdevice \
--disable-avfilter \
--disable-debug \
--enable-avcodec \
--enable-shared \
--enable-decoder=${{ env.DECODERS }} \
--enable-lto \
--enable-stripping \
${{ matrix.platform.flags }} \
--prefix=release_output
- name: "Build FFmpeg"
run: |
make -j4 && make install
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.platform.name }}-binaries
path: |
release_output/*