aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml174
1 files changed, 174 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..5508ba8
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,174 @@
+name: CI
+on: [push, pull_request]
+
+jobs:
+ linux-autotools:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ ./autogen.sh
+ ./configure --enable-example
+ make -j$(nproc) CFLAGS="-g -O2 -Werror" CXXFLAGS="-g -O2 -Werror"
+
+ linux-cmake:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=YES -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror"
+ cmake --build build
+
+ macos-autotools:
+ runs-on: macos-latest
+ steps:
+ - name: Install autotools
+ run: |
+ brew install automake
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ ./autogen.sh
+ ./configure --enable-example
+ make -j$(nproc) CFLAGS="-g -O2 -Werror" CXXFLAGS="-g -O2 -Werror"
+
+ macos-cmake:
+ runs-on: macos-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=YES -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror"
+ cmake --build build
+
+ mingw-cross-autotools:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install cross compiler
+ run: |
+ sudo apt-get install g++-mingw-w64-x86-64
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ ./autogen.sh
+ ./configure --enable-example --host=x86_64-w64-mingw32
+ make -j$(nproc) CFLAGS="-g -O2 -Werror" CXXFLAGS="-g -O2 -Werror"
+
+ mingw-cross-cmake:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install cross compiler
+ run: |
+ sudo apt-get install g++-mingw-w64-x86-64
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=YES -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_CROSSCOMPILING=TRUE -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror"
+ cmake --build build
+
+ msys-cmake:
+ runs-on: windows-latest
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: mingw64
+ update: true
+ install: >-
+ git
+ mingw-w64-x86_64-toolchain
+ mingw-w64-x86_64-cmake
+ mingw-w64-x86_64-ninja
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -G Ninja -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=YES
+ cmake --build build
+
+ msvc-cmake:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -B build -DBUILD_PROGRAMS=YES
+ cmake --build build --config Release
+
+ msvc-cmake-ninja-arm:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Set up the environment
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: amd64_arm
+ - name: Build
+ run: |
+ cmake . -G Ninja -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_PROGRAMS=YES
+ cmake --build build
+
+ msvc-cmake-arm64:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ cmake . -B build -DBUILD_PROGRAMS=YES -A ARM64
+ cmake --build build --config Release
+
+ llvm-mingw:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install llvm-mingw
+ run: |
+ wget https://github.com/mstorsjo/llvm-mingw/releases/download/20211002/llvm-mingw-20211002-ucrt-ubuntu-18.04-x86_64.tar.xz
+ tar -Jxvf llvm-mingw-20211002-ucrt-ubuntu-18.04-x86_64.tar.xz
+ rm llvm-mingw-*.tar.xz
+ sudo mv llvm-mingw-* /opt/llvm-mingw
+ echo /opt/llvm-mingw/bin >> $GITHUB_PATH
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build fdk-aac
+ run: |
+ ./autogen.sh
+ ./configure --host=aarch64-w64-mingw32 --enable-example
+ make -j$(nproc) CFLAGS="-g -O2 -Werror" CXXFLAGS="-g -O2 -Werror"
+
+ linux-ffmpeg:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Build fdk-aac
+ run: |
+ ./autogen.sh
+ mkdir build
+ cd build
+ ../configure --enable-example --prefix=$(pwd)/../prefix
+ make -j$(nproc)
+ make -j$(nproc) install
+ - name: Checkout FFmpeg
+ uses: actions/checkout@v2
+ with:
+ repository: ffmpeg/ffmpeg
+ path: ffmpeg
+ - name: Build FFmpeg
+ run: |
+ sudo apt-get install -y nasm
+ cd ffmpeg
+ PKG_CONFIG_PATH=$(pwd)/../prefix/lib/pkgconfig ./configure --enable-libfdk-aac --enable-nonfree
+ make -j$(nproc)