diff options
Diffstat (limited to 'lib/faad2/.github/workflows')
| -rw-r--r-- | lib/faad2/.github/workflows/build.yaml | 142 | ||||
| -rw-r--r-- | lib/faad2/.github/workflows/fuzz.yaml | 65 |
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 |
