Skip to content

Silence some compiler warnings. #86

Silence some compiler warnings.

Silence some compiler warnings. #86

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
Windows:
runs-on: windows-latest
strategy:
matrix:
PLATFORM: [x64, ARM64]
defaults:
run:
shell: cmd
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get FFmpeg 5
uses: robinraju/release-downloader@v1
with:
repository: GyanD/codexffmpeg
tag: "5.0"
fileName: ffmpeg-5.0-full_build-shared.7z
tarBall: false
zipBall: false
- name: Get FFmpeg 6
uses: robinraju/release-downloader@v1
with:
repository: GyanD/codexffmpeg
tag: "6.0"
fileName: ffmpeg-6.0-full_build-shared.7z
tarBall: false
zipBall: false
- name: Get FFmpeg 7
uses: robinraju/release-downloader@v1
with:
repository: GyanD/codexffmpeg
tag: "7.0"
fileName: ffmpeg-7.0-full_build-shared.7z
tarBall: false
zipBall: false
# A note to myself and other: FFmpeg build is for x64, but it doesn't matter. Only the include files are
# necessary for NAV to work as it will use runtime loading.
- name: Extract FFmpeg
run: |
7z x ffmpeg-5.0-full_build-shared.7z
7z x ffmpeg-6.0-full_build-shared.7z
7z x ffmpeg-7.0-full_build-shared.7z
- name: Configure
run: |
cmake -Bbuild -S. -A ${{ matrix.PLATFORM }} --install-prefix %CD%\install -DBUILD_SHARED_LIBS=1 ^
-DFFMPEG5_DIR=%CD%\ffmpeg-5.0-full_build-shared ^
-DFFMPEG6_DIR=%CD%\ffmpeg-6.0-full_build-shared ^
-DFFMPEG7_DIR=%CD%\ffmpeg-7.0-full_build-shared
- name: Install
run: cmake --build build --config RelWithDebInfo --target install -j%NUMBER_OF_PROCESSORS%
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: nav-dll-${{ matrix.PLATFORM }}
path: install/
compression-level: 9
Ubuntu:
runs-on: ${{ matrix.platform.runs-on }}
container: ${{ matrix.platform.container }}
strategy:
matrix:
platform:
- arch: x86-64
runs-on: ubuntu-24.04
container: debian:bullseye
- arch: arm64
runs-on: ubuntu-24.04-arm
container: arm64v8/debian:bullseye
steps:
- name: Setup
run: |
set -e
echo "deb http://archive.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list.d/bullseye-backports.list
apt-get update
apt-get install -y \
build-essential \
cmake/bullseye-backports \
cmake-data/bullseye-backports \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
# NAV
- name: Checkout
uses: actions/checkout@v4
# FFmpeg 4
- name: Checkout FFmpeg 4
uses: actions/checkout@v4
with:
repository: FFmpeg/FFmpeg
ref: n4.0
path: ffmpeg4
- name: Cache FFmpeg 4
id: ffmpeg4
uses: actions/cache@v4
with:
path: ffmpeg4/build/installdir
key: ffmpeg4
- name: Build FFmpeg 4
if: steps.ffmpeg4.outputs.cache-hit != 'true'
working-directory: ffmpeg4
run: |
set -e
mkdir build
cd build
../configure --disable-doc --disable-encoders --disable-programs --disable-static --enable-shared --disable-x86asm --prefix=$PWD/installdir
make install -j$(nproc)
# FFmpeg 5
- name: Checkout FFmpeg 5
uses: actions/checkout@v4
with:
repository: FFmpeg/FFmpeg
ref: n5.0
path: ffmpeg5
- name: Cache FFmpeg 5
id: ffmpeg5
uses: actions/cache@v4
with:
path: ffmpeg5/build/installdir
key: ffmpeg5
- name: Build FFmpeg 5
if: steps.ffmpeg5.outputs.cache-hit != 'true'
working-directory: ffmpeg5
run: |
set -e
mkdir build
cd build
../configure --disable-doc --disable-encoders --disable-programs --disable-static --enable-shared --disable-x86asm --prefix=$PWD/installdir
make install -j$(nproc)
# FFmpeg 6
- name: Checkout FFmpeg 6
uses: actions/checkout@v4
with:
repository: FFmpeg/FFmpeg
ref: n6.0
path: ffmpeg6
- name: Cache FFmpeg 6
id: ffmpeg6
uses: actions/cache@v4
with:
path: ffmpeg6/build/installdir
key: ffmpeg6
- name: Build FFmpeg 6
if: steps.ffmpeg6.outputs.cache-hit != 'true'
working-directory: ffmpeg6
run: |
set -e
mkdir build
cd build
../configure --disable-doc --disable-encoders --disable-programs --disable-static --enable-shared --disable-x86asm --prefix=$PWD/installdir
make install -j$(nproc)
# FFmpeg 7
- name: Checkout FFmpeg 7
uses: actions/checkout@v4
with:
repository: FFmpeg/FFmpeg
ref: n7.0
path: ffmpeg7
- name: Cache FFmpeg 7
id: ffmpeg7
uses: actions/cache@v4
with:
path: ffmpeg7/build/installdir
key: ffmpeg7
- name: Build FFmpeg 7
if: steps.ffmpeg7.outputs.cache-hit != 'true'
working-directory: ffmpeg7
run: |
set -e
mkdir build
cd build
../configure --disable-doc --disable-encoders --disable-programs --disable-static --enable-shared --disable-x86asm --prefix=$PWD/installdir
make install -j$(nproc)
- name: Configure
run: |
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=RelWithDebInfo --install-prefix $PWD/install -DBUILD_SHARED_LIBS=1 \
-DFFMPEG4_DIR=$PWD/ffmpeg4/build/installdir \
-DFFMPEG5_DIR=$PWD/ffmpeg5/build/installdir \
-DFFMPEG6_DIR=$PWD/ffmpeg6/build/installdir \
-DFFMPEG7_DIR=$PWD/ffmpeg7/build/installdir
- name: Install
run: cmake --build build --target install -j$(nproc)
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: nav-linux-${{ matrix.platform.arch }}
path: install/
compression-level: 9
Android:
runs-on: ubuntu-24.04
strategy:
matrix:
abi: [armeabi-v7a, arm64-v8a, x86_64]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure
run: cmake -Bbuild -S. -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI=${{ matrix.abi }} -DCMAKE_BUILD_TYPE=RelWithDebInfo --install-prefix $PWD/install -DBUILD_SHARED_LIBS=1
- name: Install
run: cmake --build build --target install -j$(nproc)
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: nav-android-${{ matrix.abi }}
path: install/
compression-level: 9