1b815c7f3Sopenharmony_ciname: C/C++ CI 2b815c7f3Sopenharmony_ci 3b815c7f3Sopenharmony_cion: [push, pull_request] 4b815c7f3Sopenharmony_ci 5b815c7f3Sopenharmony_cijobs: 6b815c7f3Sopenharmony_ci build: 7b815c7f3Sopenharmony_ci strategy: 8b815c7f3Sopenharmony_ci fail-fast: false 9b815c7f3Sopenharmony_ci matrix: 10b815c7f3Sopenharmony_ci name: [ 11b815c7f3Sopenharmony_ci ubuntu-gcc-autotools, 12b815c7f3Sopenharmony_ci ubuntu-clang-autotools, 13b815c7f3Sopenharmony_ci ubuntu-gcc-ossfuzz, 14b815c7f3Sopenharmony_ci macos-autotools, 15b815c7f3Sopenharmony_ci ubuntu-gcc-cmake, 16b815c7f3Sopenharmony_ci ubuntu-gcc-cmake-shared, 17b815c7f3Sopenharmony_ci ubuntu-clang-cmake, 18b815c7f3Sopenharmony_ci ubuntu-clang-cmake-shared, 19b815c7f3Sopenharmony_ci macos-cmake, 20b815c7f3Sopenharmony_ci macos-cmake-shared, 21b815c7f3Sopenharmony_ci windows-vs2022-x64, 22b815c7f3Sopenharmony_ci windows-vs2022-x64-shared, 23b815c7f3Sopenharmony_ci windows-vs2022-Win32, 24b815c7f3Sopenharmony_ci windows-vs2022-Win32-shared 25b815c7f3Sopenharmony_ci ] 26b815c7f3Sopenharmony_ci include: 27b815c7f3Sopenharmony_ci - name: ubuntu-gcc-autotools 28b815c7f3Sopenharmony_ci os: ubuntu-latest 29b815c7f3Sopenharmony_ci cc: gcc 30b815c7f3Sopenharmony_ci cxx: g++ 31b815c7f3Sopenharmony_ci autotools-options: --enable-werror 32b815c7f3Sopenharmony_ci build-system: autotools 33b815c7f3Sopenharmony_ci 34b815c7f3Sopenharmony_ci - name: ubuntu-clang-autotools 35b815c7f3Sopenharmony_ci os: ubuntu-latest 36b815c7f3Sopenharmony_ci cc: clang 37b815c7f3Sopenharmony_ci cxx: clang++ 38b815c7f3Sopenharmony_ci autotools-options: --enable-werror 39b815c7f3Sopenharmony_ci build-system: autotools 40b815c7f3Sopenharmony_ci 41b815c7f3Sopenharmony_ci - name: ubuntu-gcc-ossfuzz 42b815c7f3Sopenharmony_ci os: ubuntu-latest 43b815c7f3Sopenharmony_ci cc: gcc 44b815c7f3Sopenharmony_ci cxx: g++ 45b815c7f3Sopenharmony_ci autotools-options: --enable-werror 46b815c7f3Sopenharmony_ci build-system: ossfuzz 47b815c7f3Sopenharmony_ci 48b815c7f3Sopenharmony_ci - name: macos-autotools 49b815c7f3Sopenharmony_ci os: macos-latest 50b815c7f3Sopenharmony_ci cc: clang 51b815c7f3Sopenharmony_ci cxx: clang++ 52b815c7f3Sopenharmony_ci autotools-options: --enable-werror 53b815c7f3Sopenharmony_ci build-system: autotools 54b815c7f3Sopenharmony_ci 55b815c7f3Sopenharmony_ci - name: ubuntu-gcc-cmake 56b815c7f3Sopenharmony_ci os: ubuntu-latest 57b815c7f3Sopenharmony_ci cc: gcc 58b815c7f3Sopenharmony_ci cxx: g++ 59b815c7f3Sopenharmony_ci build-system: cmake 60b815c7f3Sopenharmony_ci cmake-generator: 'Ninja' 61b815c7f3Sopenharmony_ci cmake-options: >- 62b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 63b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 64b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 65b815c7f3Sopenharmony_ci 66b815c7f3Sopenharmony_ci - name: ubuntu-gcc-cmake-shared 67b815c7f3Sopenharmony_ci os: ubuntu-latest 68b815c7f3Sopenharmony_ci cc: gcc 69b815c7f3Sopenharmony_ci cxx: g++ 70b815c7f3Sopenharmony_ci build-system: cmake 71b815c7f3Sopenharmony_ci cmake-generator: 'Ninja' 72b815c7f3Sopenharmony_ci cmake-options: >- 73b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 74b815c7f3Sopenharmony_ci -DBUILD_SHARED_LIBS=ON 75b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 76b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 77b815c7f3Sopenharmony_ci 78b815c7f3Sopenharmony_ci - name: ubuntu-clang-cmake 79b815c7f3Sopenharmony_ci os: ubuntu-latest 80b815c7f3Sopenharmony_ci cc: clang 81b815c7f3Sopenharmony_ci cxx: clang++ 82b815c7f3Sopenharmony_ci build-system: cmake 83b815c7f3Sopenharmony_ci cmake-generator: 'Ninja' 84b815c7f3Sopenharmony_ci cmake-options: >- 85b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 86b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 87b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 88b815c7f3Sopenharmony_ci 89b815c7f3Sopenharmony_ci - name: ubuntu-clang-cmake-shared 90b815c7f3Sopenharmony_ci os: ubuntu-latest 91b815c7f3Sopenharmony_ci cc: clang 92b815c7f3Sopenharmony_ci cxx: clang++ 93b815c7f3Sopenharmony_ci build-system: cmake 94b815c7f3Sopenharmony_ci cmake-generator: 'Ninja' 95b815c7f3Sopenharmony_ci cmake-options: >- 96b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 97b815c7f3Sopenharmony_ci -DBUILD_SHARED_LIBS=ON 98b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 99b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 100b815c7f3Sopenharmony_ci 101b815c7f3Sopenharmony_ci - name: macos-cmake 102b815c7f3Sopenharmony_ci os: macos-latest 103b815c7f3Sopenharmony_ci cc: clang 104b815c7f3Sopenharmony_ci cxx: clang++ 105b815c7f3Sopenharmony_ci build-system: cmake 106b815c7f3Sopenharmony_ci cmake-generator: 'Unix Makefiles' 107b815c7f3Sopenharmony_ci cmake-options: >- 108b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 109b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 110b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 111b815c7f3Sopenharmony_ci 112b815c7f3Sopenharmony_ci - name: macos-cmake-shared 113b815c7f3Sopenharmony_ci os: macos-latest 114b815c7f3Sopenharmony_ci cc: clang 115b815c7f3Sopenharmony_ci cxx: clang++ 116b815c7f3Sopenharmony_ci build-system: cmake 117b815c7f3Sopenharmony_ci cmake-generator: 'Unix Makefiles' 118b815c7f3Sopenharmony_ci cmake-options: >- 119b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 120b815c7f3Sopenharmony_ci -DBUILD_SHARED_LIBS=ON 121b815c7f3Sopenharmony_ci -DCMAKE_C_FLAGS="-Wall -Wextra" 122b815c7f3Sopenharmony_ci -DCMAKE_VERBOSE_MAKEFILE=ON 123b815c7f3Sopenharmony_ci 124b815c7f3Sopenharmony_ci - name: windows-vs2022-x64 125b815c7f3Sopenharmony_ci os: windows-latest 126b815c7f3Sopenharmony_ci triplet: 'x64-windows-static' 127b815c7f3Sopenharmony_ci build-system: cmake 128b815c7f3Sopenharmony_ci cmake-generator: 'Visual Studio 17 2022' 129b815c7f3Sopenharmony_ci cmake-options: >- 130b815c7f3Sopenharmony_ci -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> 131b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 132b815c7f3Sopenharmony_ci -DVCPKG_TARGET_TRIPLET=x64-windows-static 133b815c7f3Sopenharmony_ci -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake 134b815c7f3Sopenharmony_ci 135b815c7f3Sopenharmony_ci - name: windows-vs2022-x64-shared 136b815c7f3Sopenharmony_ci os: windows-latest 137b815c7f3Sopenharmony_ci triplet: 'x64-windows-static' 138b815c7f3Sopenharmony_ci build-system: cmake 139b815c7f3Sopenharmony_ci cmake-generator: 'Visual Studio 17 2022' 140b815c7f3Sopenharmony_ci cmake-options: >- 141b815c7f3Sopenharmony_ci -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> 142b815c7f3Sopenharmony_ci -DBUILD_SHARED_LIBS=ON 143b815c7f3Sopenharmony_ci -DBUILD_REGTEST=OFF 144b815c7f3Sopenharmony_ci -DBUILD_EXAMPLES=OFF 145b815c7f3Sopenharmony_ci -DINSTALL_PKGCONFIG_MODULE=OFF 146b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 147b815c7f3Sopenharmony_ci -DVCPKG_TARGET_TRIPLET=x64-windows-static 148b815c7f3Sopenharmony_ci -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake 149b815c7f3Sopenharmony_ci 150b815c7f3Sopenharmony_ci - name: windows-vs2022-Win32 151b815c7f3Sopenharmony_ci os: windows-latest 152b815c7f3Sopenharmony_ci triplet: 'x86-windows-static' 153b815c7f3Sopenharmony_ci build-system: cmake 154b815c7f3Sopenharmony_ci cmake-generator: 'Visual Studio 17 2022' 155b815c7f3Sopenharmony_ci cmake-options: >- 156b815c7f3Sopenharmony_ci -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> 157b815c7f3Sopenharmony_ci -DCMAKE_GENERATOR_PLATFORM=Win32 158b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 159b815c7f3Sopenharmony_ci -DVCPKG_TARGET_TRIPLET=x86-windows-static 160b815c7f3Sopenharmony_ci -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake 161b815c7f3Sopenharmony_ci 162b815c7f3Sopenharmony_ci - name: windows-vs2022-Win32-shared 163b815c7f3Sopenharmony_ci os: windows-latest 164b815c7f3Sopenharmony_ci triplet: 'x86-windows-static' 165b815c7f3Sopenharmony_ci build-system: cmake 166b815c7f3Sopenharmony_ci cmake-generator: 'Visual Studio 17 2022' 167b815c7f3Sopenharmony_ci cmake-options: >- 168b815c7f3Sopenharmony_ci -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug> 169b815c7f3Sopenharmony_ci -DCMAKE_GENERATOR_PLATFORM=Win32 170b815c7f3Sopenharmony_ci -DBUILD_SHARED_LIBS=ON 171b815c7f3Sopenharmony_ci -DBUILD_REGTEST=OFF 172b815c7f3Sopenharmony_ci -DBUILD_EXAMPLES=OFF 173b815c7f3Sopenharmony_ci -DINSTALL_PKGCONFIG_MODULE=OFF 174b815c7f3Sopenharmony_ci -DCPACK_PACKAGE_NAME=libsndfile 175b815c7f3Sopenharmony_ci -DCMAKE_BUILD_TYPE=Release 176b815c7f3Sopenharmony_ci -DVCPKG_TARGET_TRIPLET=x86-windows-static 177b815c7f3Sopenharmony_ci -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake 178b815c7f3Sopenharmony_ci 179b815c7f3Sopenharmony_ci runs-on: ${{ matrix.os }} 180b815c7f3Sopenharmony_ci steps: 181b815c7f3Sopenharmony_ci - uses: actions/checkout@v2 182b815c7f3Sopenharmony_ci 183b815c7f3Sopenharmony_ci - name: Install MacOS dependencies 184b815c7f3Sopenharmony_ci if: startsWith(matrix.os,'macos') 185b815c7f3Sopenharmony_ci run: | 186b815c7f3Sopenharmony_ci brew install automake autogen speex mpg123 187b815c7f3Sopenharmony_ci 188b815c7f3Sopenharmony_ci - name: Install Linux dependencies 189b815c7f3Sopenharmony_ci if: startsWith(matrix.os,'ubuntu') 190b815c7f3Sopenharmony_ci run: sudo apt-get update -y && sudo apt-get install -y autogen ninja-build libogg-dev libvorbis-dev libflac-dev libopus-dev libasound2-dev libsqlite3-dev libspeex-dev libmp3lame-dev libmpg123-dev 191b815c7f3Sopenharmony_ci 192b815c7f3Sopenharmony_ci - name: Setup NuGet Credentials 193b815c7f3Sopenharmony_ci env: 194b815c7f3Sopenharmony_ci VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' 195b815c7f3Sopenharmony_ci if: startsWith(matrix.os,'windows') 196b815c7f3Sopenharmony_ci shell: 'bash' 197b815c7f3Sopenharmony_ci run: > 198b815c7f3Sopenharmony_ci `vcpkg fetch nuget | tail -n 1` 199b815c7f3Sopenharmony_ci sources add 200b815c7f3Sopenharmony_ci -source "https://nuget.pkg.github.com/libsndfile/index.json" 201b815c7f3Sopenharmony_ci -storepasswordincleartext 202b815c7f3Sopenharmony_ci -name "GitHub" 203b815c7f3Sopenharmony_ci -username "evpobr" 204b815c7f3Sopenharmony_ci -password "${{ secrets.GITHUB_TOKEN }}" 205b815c7f3Sopenharmony_ci 206b815c7f3Sopenharmony_ci - name: Configure, build and test with Autotools 207b815c7f3Sopenharmony_ci env: 208b815c7f3Sopenharmony_ci CC: ${{ matrix.cc }} 209b815c7f3Sopenharmony_ci CXX: ${{ matrix.cxx }} 210b815c7f3Sopenharmony_ci if: startsWith(matrix.build-system,'autotools') 211b815c7f3Sopenharmony_ci run: | 212b815c7f3Sopenharmony_ci autoreconf -vif 213b815c7f3Sopenharmony_ci if [[ "${CC}" == "clang" ]]; then 214b815c7f3Sopenharmony_ci ./configure --enable-werror && make distcheck 215b815c7f3Sopenharmony_ci else 216b815c7f3Sopenharmony_ci Scripts/asan-configure.sh --enable-werror && make distcheck 217b815c7f3Sopenharmony_ci fi 218b815c7f3Sopenharmony_ci 219b815c7f3Sopenharmony_ci - name: Configure, build and test with CMake 220b815c7f3Sopenharmony_ci env: 221b815c7f3Sopenharmony_ci CC: ${{ matrix.cc }} 222b815c7f3Sopenharmony_ci CXX: ${{ matrix.cxx }} 223b815c7f3Sopenharmony_ci VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' 224b815c7f3Sopenharmony_ci if: startsWith(matrix.build-system,'cmake') 225b815c7f3Sopenharmony_ci run: | 226b815c7f3Sopenharmony_ci mkdir build 227b815c7f3Sopenharmony_ci cd build 228b815c7f3Sopenharmony_ci cmake .. -G "${{matrix.cmake-generator}}" ${{matrix.cmake-options}} 229b815c7f3Sopenharmony_ci cmake --build . --config Release 230b815c7f3Sopenharmony_ci ctest 231b815c7f3Sopenharmony_ci 232b815c7f3Sopenharmony_ci - name: Configure, build and test with OSSFuzz 233b815c7f3Sopenharmony_ci env: 234b815c7f3Sopenharmony_ci CC: ${{ matrix.cc }} 235b815c7f3Sopenharmony_ci CXX: ${{ matrix.cxx }} 236b815c7f3Sopenharmony_ci if: startsWith(matrix.build-system,'ossfuzz') 237b815c7f3Sopenharmony_ci run: | 238b815c7f3Sopenharmony_ci ./ossfuzz/ci_oss.sh 239