CI #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
jobs: | |
linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ARCH: [x64] | |
include: | |
- ARCH: x64 | |
PACKAGES: libpulse-dev portaudio19-dev libasound2-dev libjack-dev libpipewire-0.3-dev qtbase5-dev libdbus-1-dev | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 3 | |
- name: Install dependencies | |
run: | | |
echo "set man-db/auto-update false" | sudo debconf-communicate; sudo dpkg-reconfigure man-db | |
sudo apt-get update | |
sudo apt-get install build-essential cmake | |
- name: Install OpenAL Soft dependencies | |
run: sudo apt-get install -qq ${{matrix.PACKAGES}} | |
- name: Configure build | |
run: | | |
cmake -B build -DALSOFT_REQUIRE_RTKIT=ON -DALSOFT_REQUIRE_ALSA=ON -DALSOFT_REQUIRE_OSS=ON -DALSOFT_REQUIRE_PORTAUDIO=ON -DALSOFT_REQUIRE_PULSEAUDIO=ON -DALSOFT_REQUIRE_JACK=ON -DALSOFT_REQUIRE_PIPEWIRE=ON -DALSOFT_EMBED_HRTF_DATA=YES -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIF=Y_SOURCE=0" | |
- name: Build | |
run: | | |
cmake --build build --parallel | |
strip build/libopenal.so | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-${{matrix.ARCH}} | |
path: build/libopenal.so | |
if-no-files-found: error | |
linux-cross: | |
name: Linux Cross | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
ARCH: [arm32, arm64, ppc64le, riscv64] | |
include: | |
# ----- | |
- ARCH: arm32 | |
CROSS_ARCH: armhf | |
TRIPLET: arm-linux-gnueabihf | |
CMAKE_PARAMS: -DPROCESSOR=arm | |
# ----- | |
- ARCH: arm64 | |
CROSS_ARCH: arm64 | |
TRIPLET: aarch64-linux-gnu | |
CMAKE_PARAMS: -DPROCESSOR=aarch64 | |
# ---- | |
- ARCH: ppc64le | |
CROSS_ARCH: ppc64el | |
TRIPLET: powerpc64le-linux-gnu | |
CMAKE_PARAMS: -DPROCESSOR=powerpc64le | |
# ----- | |
- ARCH: riscv64 | |
CROSS_ARCH: riscv64 | |
TRIPLET: riscv64-linux-gnu | |
CMAKE_PARAMS: -DPROCESSOR=riscv64 | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 3 | |
- name: Install dependencies | |
run: | | |
DEBIAN_FRONTEND=noninteractive sudo apt-get -yq update | |
DEBIAN_FRONTEND=noninteractive sudo apt-get -yq install cmake gcc-${{matrix.TRIPLET}} g++-${{matrix.TRIPLET}} libc6-dev-${{matrix.CROSS_ARCH}}-cross | |
- name: Prepare cross-compilation | |
run: | | |
sudo sed -i 's/deb mirror/deb [arch=amd64,i386] mirror/' /etc/apt/sources.list | |
sudo grep "mirror+file" /etc/apt/sources.list | sudo tee /etc/apt/sources.list.d/ports.list | |
sudo sed -i 's/amd64,i386/${{matrix.CROSS_ARCH}}/' /etc/apt/sources.list.d/ports.list | |
sudo sed -i 's#mirror+file:/etc/apt/apt-mirrors.txt#http://ports.ubuntu.com/ubuntu-ports/#' /etc/apt/sources.list.d/ports.list | |
sudo dpkg --add-architecture ${{matrix.CROSS_ARCH}} | |
sudo apt-get update || true | |
- name: Install cross-compilation dependencies | |
run: DEBIAN_FRONTEND=noninteractive sudo apt-get -yq --allow-unauthenticated --no-install-suggests --no-install-recommends install libpulse-dev:${{matrix.CROSS_ARCH}} portaudio19-dev:${{matrix.CROSS_ARCH}} libasound2-dev:${{matrix.CROSS_ARCH}} libjack-dev:${{matrix.CROSS_ARCH}} libdbus-1-dev:${{matrix.CROSS_ARCH}} -o Dpkg::Options::="--force-overwrite" | |
#libpipewire-0.3-dev:${{matrix.CROSS_ARCH}} | |
- name: Configure build | |
run: CC=${{matrix.TRIPLET}}-gcc CXX=${{matrix.TRIPLET}}-g++ cmake -B build -DALSOFT_REQUIRE_RTKIT=ON -DALSOFT_REQUIRE_ALSA=ON -DALSOFT_REQUIRE_OSS=ON -DALSOFT_REQUIRE_PORTAUDIO=ON -DALSOFT_REQUIRE_PULSEAUDIO=ON -DALSOFT_REQUIRE_JACK=ON -DALSOFT_EMBED_HRTF_DATA=YES -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0" -DCMAKE_TOOLCHAIN_FILE=../XCompile-Linux.txt -DHOST=${{matrix.TRIPLET}} ${{matrix.CMAKE_PARAMS}} | |
#-DALSOFT_REQUIRE_PIPEWIRE=ON | |
- name: Build | |
run: | | |
cmake --build build --parallel | |
${{matrix.TRIPLET}}-strip build/libopenal.so | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-${{matrix.ARCH}} | |
path: build/libopenal.so | |
if-no-files-found: error | |
freebsd-cross: | |
name: FreeBSD Cross | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 3 | |
- name: Build | |
uses: cross-platform-actions/[email protected] | |
with: | |
operating_system: freebsd | |
architecture: x86-64 | |
version: '13.3' | |
memory: 4G | |
shell: bash | |
run: | | |
sudo pkg install -y cmake pkgconf gmake alsa-lib pulseaudio portaudio jackit dbus pipewire | |
cmake -B build -DALSOFT_REQUIRE_RTKIT=ON -DALSOFT_REQUIRE_ALSA=ON -DALSOFT_REQUIRE_OSS=ON -DALSOFT_REQUIRE_PORTAUDIO=ON -DALSOFT_REQUIRE_PULSEAUDIO=ON -DALSOFT_REQUIRE_JACK=ON -DALSOFT_REQUIRE_PIPEWIRE=ON -DALSOFT_EMBED_HRTF_DATA=YES -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIF=Y_SOURCE=0" | |
cmake --build build --parallel | |
strip build/libopenal.so | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: freebsd-x64 | |
path: build/libopenal.so | |
if-no-files-found: error | |
macos: | |
name: macOS | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
ARCH: [x64, arm64] | |
include: | |
- ARCH: x64 | |
CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_OSX_ARCHITECTURES=x86_64 | |
- ARCH: arm64 | |
CMAKE_PARAMS: -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DCMAKE_OSX_ARCHITECTURES=arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 3 | |
- name: Configure build | |
run: cmake -B build -DALSOFT_REQUIRE_COREAUDIO=ON -DALSOFT_EMBED_HRTF_DATA=YES -DCMAKE_BUILD_TYPE=Release ${{matrix.CMAKE_PARAMS}} | |
- name: Build | |
run: | | |
cmake --build build --parallel | |
strip -u -r build/libopenal.dylib | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-${{matrix.ARCH}} | |
path: build/libopenal.dylib | |
if-no-files-found: error | |
windows: | |
name: Windows | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ARCH: [x64, arm64] | |
include: | |
- ARCH: x64 | |
PLATFORM: x64 | |
- ARCH: arm64 | |
PLATFORM: ARM64 | |
defaults: | |
run: | |
shell: cmd | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 3 | |
- name: Configure build | |
run: cmake -B build -G "Visual Studio 17 2022" -A ${{matrix.PLATFORM}} -DALSOFT_REQUIRE_WINMM=ON -DALSOFT_REQUIRE_DSOUND=ON -DALSOFT_REQUIRE_WASAPI=ON -DALSOFT_EMBED_HRTF_DATA=ON -DFORCE_STATIC_VCRT=ON -DALSOFT_EAX=OFF # -T ClangCL | |
- name: Build | |
run: cmake --build build --parallel --config Release | |
- name: Rename file | |
run: ren build\Release\OpenAL32.dll openal.dll | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-${{matrix.ARCH}} | |
path: build\Release\openal.dll | |
if-no-files-found: error |