summaryrefslogtreecommitdiff
path: root/lib/faad2/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'lib/faad2/.github/workflows')
-rw-r--r--lib/faad2/.github/workflows/build.yaml142
-rw-r--r--lib/faad2/.github/workflows/fuzz.yaml65
2 files changed, 207 insertions, 0 deletions
diff --git a/lib/faad2/.github/workflows/build.yaml b/lib/faad2/.github/workflows/build.yaml
new file mode 100644
index 00000000..288ca17c
--- /dev/null
+++ b/lib/faad2/.github/workflows/build.yaml
@@ -0,0 +1,142 @@
+# FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
+# Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Any non-GPL usage of this software or parts of this software is strictly
+# forbidden.
+#
+# The "appropriate copyright message" mentioned in section 2c of the GPLv2
+# must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
+#
+# Commercial non-GPL licensing of this software is possible.
+# For more info contact Nero AG through Mpeg4AAClicense@nero.com.
+
+name: Build
+on:
+ push:
+ branches: [master]
+ pull_request:
+ types: [opened, reopened, labeled, synchronize]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
+jobs:
+ BuildWithBazel:
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+
+ steps:
+ - name: Checkout the source
+ uses: actions/checkout@v4
+ with:
+ submodules: false
+ fetch-depth: 1
+ - name: Configure and build
+ run: |
+ bazel build :all
+
+ BuildWithCMake:
+ runs-on: ${{ matrix.os || 'ubuntu-latest' }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: Clang Shared
+ cc: clang
+ cxx: clang++
+ cflags: -Wall -fcolor-diagnostics -fansi-escape-codes
+ shared: 'true'
+ - name: Clang Static
+ cc: clang
+ cxx: clang++
+ cflags: -Wall -fcolor-diagnostics -fansi-escape-codes -O2 -Werror=strict-aliasing
+ - name: GCC Static
+ cc: gcc
+ cxx: g++
+ cflags: -Wall -fdiagnostics-color=always -O2 -Werror=strict-aliasing
+ - name: MSVC
+ os: windows-latest
+ cmake_args: >-
+ -G "Visual Studio 17 2022" -A x64
+ - name: OSX
+ os: macos-latest
+
+ env:
+ CC: ${{ matrix.cc || 'cc' }}
+ CXX: ${{ matrix.cxx || 'cxx' }}
+ CFLAGS: ${{ matrix.cflags || '-Wall' }}
+ CXXFLAGS: ${{ matrix.cflags || '-Wall' }}
+ SHARED: ${{ matrix.shared || 'false' }}
+
+ steps:
+ - name: Checkout the source
+ uses: actions/checkout@v4
+ with:
+ submodules: false
+ fetch-depth: 1
+ - name: Configure and build
+ shell: bash
+ run: |
+ export NUM_CORES=`nproc || getconf _NPROCESSORS_ONLN`
+ cmake -B build . \
+ -DCMAKE_INSTALL_PREFIX=$RUNNER_TEMP/usrlocal \
+ -DBUILD_SHARED_LIBS=${SHARED} \
+ ${{ matrix.cmake_args }}
+ cmake --build build -j ${NUM_CORES}
+ cmake --install build
+
+ BuildOnMsys:
+ name: BuildOnMsys (${{ matrix.msystem }})
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - msystem: mingw64
+ - msystem: clang64
+ - msystem: ucrt64
+ - msystem: mingw32
+ - msystem: clang32
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - name: Checkout the source
+ uses: actions/checkout@v4
+ with:
+ submodules: false
+ fetch-depth: 1
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{ matrix.msystem }}
+ update: true
+ path-type: inherit
+ install: >-
+ base-devel
+ pacboy: >-
+ cmake:p
+ - name: Configure and build
+ run: |
+ cmake -B build . \
+ -DCMAKE_INSTALL_PREFIX=$RUNNER_TEMP/usrlocal \
+ -DBUILD_SHARED_LIBS=${SHARED}
+ cmake --build build -j `nproc`
+ cmake --install build
diff --git a/lib/faad2/.github/workflows/fuzz.yaml b/lib/faad2/.github/workflows/fuzz.yaml
new file mode 100644
index 00000000..9ab78f1e
--- /dev/null
+++ b/lib/faad2/.github/workflows/fuzz.yaml
@@ -0,0 +1,65 @@
+# FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
+# Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Any non-GPL usage of this software or parts of this software is strictly
+# forbidden.
+#
+# The "appropriate copyright message" mentioned in section 2c of the GPLv2
+# must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
+#
+# Commercial non-GPL licensing of this software is possible.
+# For more info contact Nero AG through Mpeg4AAClicense@nero.com.
+
+name: OSS-Fuzz
+on:
+ push:
+ branches: [master]
+ pull_request:
+ types: [opened, reopened, labeled, synchronize]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
+jobs:
+ Fuzzing:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ sanitizer: [address, undefined, memory]
+ steps:
+ - name: Build Fuzzers (${{ matrix.sanitizer }})
+ id: build
+ uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'faad2'
+ language: c
+ sanitizer: ${{ matrix.sanitizer }}
+ - name: Run Fuzzers (${{ matrix.sanitizer }})
+ uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+ with:
+ oss-fuzz-project-name: 'faad'
+ language: c
+ sanitizer: ${{ matrix.sanitizer }}
+ fuzz-seconds: 600
+ - name: Upload Crash
+ uses: actions/upload-artifact@v3
+ if: failure() && steps.build.outcome == 'success'
+ with:
+ name: ${{ matrix.sanitizer }}-artifacts
+ path: ./out/artifacts