mirror of
https://gitee.com/openharmony/third_party_libsnd
synced 2024-11-23 09:59:54 +00:00
163 lines
6.5 KiB
YAML
163 lines
6.5 KiB
YAML
name: C/C++ CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
name: [
|
|
ubuntu-latest-gcc-autotools,
|
|
ubuntu-latest-clang-autotools,
|
|
macos-latest-autotools,
|
|
ubuntu-latest-gcc-cmake,
|
|
ubuntu-latest-gcc-cmake-shared,
|
|
ubuntu-latest-clang-cmake,
|
|
ubuntu-latest-clang-cmake-shared,
|
|
macos-latest-cmake,
|
|
macos-latest-cmake-shared,
|
|
windows-latest-vs2019-x64,
|
|
windows-latest-vs2019-x64-shared,
|
|
windows-latest-vs2019-Win32,
|
|
windows-latest-vs2019-Win32-shared
|
|
]
|
|
include:
|
|
- name: ubuntu-latest-gcc-autotools
|
|
os: ubuntu-latest
|
|
cc: gcc
|
|
cxx: g++
|
|
build-system: autotools
|
|
|
|
- name: ubuntu-latest-clang-autotools
|
|
os: ubuntu-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: autotools
|
|
|
|
- name: macos-latest-autotools
|
|
os: macos-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: autotools
|
|
|
|
- name: ubuntu-latest-gcc-cmake
|
|
os: ubuntu-latest
|
|
cc: gcc
|
|
cxx: g++
|
|
build-system: cmake
|
|
cmake-generator: 'Ninja'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: ubuntu-latest-gcc-cmake-shared
|
|
os: ubuntu-latest
|
|
cc: gcc
|
|
cxx: g++
|
|
build-system: cmake
|
|
cmake-generator: 'Ninja'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: ubuntu-latest-clang-cmake
|
|
os: ubuntu-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: cmake
|
|
cmake-generator: 'Ninja'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: ubuntu-latest-clang-cmake-shared
|
|
os: ubuntu-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: cmake
|
|
cmake-generator: 'Ninja'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: macos-latest-cmake
|
|
os: macos-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: cmake
|
|
cmake-generator: 'Unix Makefiles'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: macos-latest-cmake-shared
|
|
os: macos-latest
|
|
cc: clang
|
|
cxx: clang++
|
|
build-system: cmake
|
|
cmake-generator: 'Unix Makefiles'
|
|
cmake-options: '-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_C_FLAGS="-Wall -Wextra" -DCMAKE_VERBOSE_MAKEFILE=ON'
|
|
|
|
- name: windows-latest-vs2019-x64
|
|
os: windows-latest
|
|
triplet: 'x64-windows-static'
|
|
build-system: cmake
|
|
cmake-generator: 'Visual Studio 16 2019'
|
|
cmake-options: '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake'
|
|
|
|
- name: windows-latest-vs2019-x64-shared
|
|
os: windows-latest
|
|
triplet: 'x64-windows-static'
|
|
build-system: cmake
|
|
cmake-generator: 'Visual Studio 16 2019'
|
|
cmake-options: '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> -DBUILD_SHARED_LIBS=ON -DBUILD_REGTEST=OFF -DBUILD_EXAMPLES=OFF -DINSTALL_PKGCONFIG_MODULE=OFF -DCPACK_PACKAGE_NAME=libsndfile -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake'
|
|
|
|
- name: windows-latest-vs2019-Win32
|
|
os: windows-latest
|
|
triplet: 'x86-windows-static'
|
|
build-system: cmake
|
|
cmake-generator: 'Visual Studio 16 2019'
|
|
cmake-options: '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> -DCMAKE_GENERATOR_PLATFORM=Win32 -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=x86-windows-static -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake'
|
|
|
|
- name: windows-latest-vs2019-Win32-shared
|
|
os: windows-latest
|
|
triplet: 'x86-windows-static'
|
|
build-system: cmake
|
|
cmake-generator: 'Visual Studio 16 2019'
|
|
cmake-options: '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> -DCMAKE_GENERATOR_PLATFORM=Win32 -DBUILD_SHARED_LIBS=ON -DBUILD_REGTEST=OFF -DBUILD_EXAMPLES=OFF -DINSTALL_PKGCONFIG_MODULE=OFF -DCPACK_PACKAGE_NAME=libsndfile -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=x86-windows-static -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake'
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install MacOS dependencies
|
|
if: startsWith(matrix.os,'macos')
|
|
run: |
|
|
brew update
|
|
brew install autoconf automake libtool autogen libogg libvorbis flac opus sqlite3 speex
|
|
|
|
- name: Install Lunux dependencies
|
|
if: startsWith(matrix.os,'ubuntu')
|
|
run: sudo apt-get install -y autogen ninja-build libogg-dev libvorbis-dev libflac-dev libopus-dev libasound2-dev libsqlite3-dev libspeex-dev
|
|
|
|
- name: Install Windows dependencies
|
|
if: startsWith(matrix.os,'windows')
|
|
run: |
|
|
vcpkg install libvorbis libflac opus sqlite3 speex --triplet ${{matrix.triplet}}
|
|
|
|
- name: Configure, build and test with Autotools
|
|
env:
|
|
CC: ${{ matrix.cc }}
|
|
CXX: ${{ matrix.cxx }}
|
|
if: startsWith(matrix.build-system,'autotools')
|
|
run: |
|
|
./autogen.sh
|
|
if [[ "${CC}" == "clang" ]]; then
|
|
./configure --enable-werror && make clean all check && make distcheck
|
|
else
|
|
Scripts/asan-configure.sh --enable-werror && make clean all check && make distcheck
|
|
fi
|
|
|
|
- name: Configure, build and test with CMake
|
|
env:
|
|
CC: ${{ matrix.cc }}
|
|
CXX: ${{ matrix.cxx }}
|
|
if: startsWith(matrix.build-system,'cmake')
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G "${{matrix.cmake-generator}}" ${{matrix.cmake-options}}
|
|
cmake --build . --config Release
|
|
ctest
|