Resolve Crosscompilation (GNU/Linux): Set reset (cmake bug?) environm… #12
This file contains hidden or 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: [push, pull_request] | |
| jobs: | |
| build: | |
| name: ${{matrix.config.name}} | |
| runs-on: ${{matrix.config.os}} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - { | |
| name: "Win32-Release", | |
| os: windows-latest, | |
| cmake_opts: "-A Win32 \ | |
| -DALSOFT_TESTS=ON \ | |
| -DALSOFT_BUILD_ROUTER=ON \ | |
| -DALSOFT_REQUIRE_WINMM=ON \ | |
| -DALSOFT_REQUIRE_DSOUND=ON \ | |
| -DALSOFT_REQUIRE_WASAPI=ON", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "Win32-Debug", | |
| os: windows-latest, | |
| cmake_opts: "-A Win32 \ | |
| -DALSOFT_TESTS=ON \ | |
| -DALSOFT_BUILD_ROUTER=ON \ | |
| -DALSOFT_REQUIRE_WINMM=ON \ | |
| -DALSOFT_REQUIRE_DSOUND=ON \ | |
| -DALSOFT_REQUIRE_WASAPI=ON", | |
| build_type: "Debug" | |
| } | |
| - { | |
| name: "Win64-Release", | |
| os: windows-latest, | |
| cmake_opts: "-A x64 \ | |
| -DALSOFT_TESTS=ON \ | |
| -DALSOFT_BUILD_ROUTER=ON \ | |
| -DALSOFT_REQUIRE_WINMM=ON \ | |
| -DALSOFT_REQUIRE_DSOUND=ON \ | |
| -DALSOFT_REQUIRE_WASAPI=ON", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "Win64-Debug", | |
| os: windows-latest, | |
| cmake_opts: "-A x64 \ | |
| -DALSOFT_TESTS=ON \ | |
| -DALSOFT_BUILD_ROUTER=ON \ | |
| -DALSOFT_REQUIRE_WINMM=ON \ | |
| -DALSOFT_REQUIRE_DSOUND=ON \ | |
| -DALSOFT_REQUIRE_WASAPI=ON", | |
| build_type: "Debug" | |
| } | |
| - { | |
| name: "Win64-UWP", | |
| os: windows-latest, | |
| cmake_opts: "-A x64 \ | |
| -DALSOFT_TESTS=OFF \ | |
| -DCMAKE_SYSTEM_NAME=WindowsStore \ | |
| \"-DCMAKE_SYSTEM_VERSION=10.0\" \ | |
| -DALSOFT_BUILD_ROUTER=ON \ | |
| -DALSOFT_REQUIRE_WASAPI=ON", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "macOS-Release", | |
| os: macos-latest, | |
| cmake_opts: "-DALSOFT_REQUIRE_COREAUDIO=ON \ | |
| -DALSOFT_TESTS=ON", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "iOS-Release", | |
| os: macos-latest, | |
| cmake_opts: "-GXcode \ | |
| -DCMAKE_SYSTEM_NAME=iOS \ | |
| -DALSOFT_REQUIRE_COREAUDIO=ON \ | |
| -DALSOFT_UTILS=OFF \ | |
| -DALSOFT_EXAMPLES=OFF \ | |
| -DALSOFT_TESTS=OFF \ | |
| -DALSOFT_INSTALL=OFF \ | |
| \"-DCMAKE_OSX_ARCHITECTURES=arm64\"", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "Linux-Release", | |
| os: ubuntu-latest, | |
| cmake_opts: "-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_TESTS=ON", | |
| deps_cmdline: "sudo apt update && sudo apt-get install -qq \ | |
| libpulse-dev \ | |
| portaudio19-dev \ | |
| libasound2-dev \ | |
| libjack-dev \ | |
| libpipewire-0.3-dev \ | |
| qtbase5-dev \ | |
| libdbus-1-dev", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "Android_armeabi-v7a-Release", | |
| os: ubuntu-latest, | |
| cmake_opts: "-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ | |
| -DALSOFT_EMBED_HRTF_DATA=TRUE \ | |
| -DALSOFT_REQUIRE_OPENSL=ON", | |
| build_type: "Release" | |
| } | |
| - { | |
| name: "Android_arm64-v8a-Release", | |
| os: ubuntu-latest, | |
| cmake_opts: "-DANDRIOD_ABI=arm64-v8a \ | |
| -DANDROID_PLATFORM=25 \ | |
| -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \ | |
| -DALSOFT_EMBED_HRTF_DATA=TRUE \ | |
| -DALSOFT_REQUIRE_OPENSL=ON", | |
| build_type: "Release" | |
| } | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: '0' | |
| - name: Get current commit tag, short hash, count and date | |
| run: | | |
| echo "CommitTag=$(git describe --tags --abbrev=0 --match *.*.*)" >> $env:GITHUB_ENV | |
| echo "CommitHashShort=$(git rev-parse --short=8 HEAD)" >> $env:GITHUB_ENV | |
| echo "CommitCount=$(git rev-list --count $env:GITHUB_REF_NAME)" >> $env:GITHUB_ENV | |
| echo "CommitDate=$(git show -s --date=iso-local --format=%cd)" >> $env:GITHUB_ENV | |
| - name: Install Dependencies | |
| shell: bash | |
| run: | | |
| if [[ ! -z "${{matrix.config.deps_cmdline}}" ]]; then | |
| eval ${{matrix.config.deps_cmdline}} | |
| fi | |
| - name: Configure | |
| shell: bash | |
| run: | | |
| cmake -B build -DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} ${{matrix.config.cmake_opts}} . | |
| - name: Build | |
| shell: bash | |
| run: | | |
| cmake --build build --config ${{matrix.config.build_type}} | |
| - name: Test | |
| shell: bash | |
| run: | | |
| cd build | |
| ctest | |
| - name: Set up Windows artifacts | |
| if: ${{ contains(matrix.config.name, 'Win') }} | |
| shell: bash | |
| run: | | |
| cd build | |
| mkdir archive | |
| mkdir archive/router | |
| cp ${{matrix.config.build_type}}/soft_oal.dll archive | |
| cp ${{matrix.config.build_type}}/OpenAL32.dll archive/router | |
| - name: Set up Android artifacts | |
| if: ${{ contains(matrix.config.name, 'Android') }} | |
| shell: bash | |
| run: | | |
| cd build | |
| mkdir archive | |
| cp ${{github.workspace}}/build/libopenal.so archive/ | |
| - name: Upload build as a workflow artifact | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ contains(matrix.config.name, 'Win') || contains(matrix.config.name, 'Android') }} | |
| with: | |
| name: soft_oal-${{matrix.config.name}} | |
| path: build/archive | |
| outputs: | |
| CommitTag: ${{env.CommitTag}} | |
| CommitHashShort: ${{env.CommitHashShort}} | |
| CommitCount: ${{env.CommitCount}} | |
| CommitDate: ${{env.CommitDate}} | |
| release: | |
| if: github.event_name != 'pull_request' | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download build artifacts | |
| uses: actions/download-artifact@v4.1.7 | |
| with: | |
| path: "build" | |
| pattern: "*-Win??-Release" | |
| github-token: "${{secrets.GITHUB_TOKEN}}" | |
| - name: Set up build folders | |
| run: | | |
| mkdir -p build/release/OpenALSoft/Documentation | |
| mkdir -p build/release/OpenALSoft/Win32 | |
| mkdir -p build/release/OpenALSoft/Win64 | |
| echo "${{github.repository}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
| echo "v${{needs.build.outputs.CommitTag}}-${{needs.build.outputs.CommitHashShort}} ${{github.ref_name}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
| echo "Commit #${{needs.build.outputs.CommitCount}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
| echo "${{needs.build.outputs.CommitDate}}" >> "build/release/OpenALSoft/Documentation/Version.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/README.md -o "build/release/OpenALSoft/Documentation/ReadMe.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/ChangeLog -o "build/release/OpenALSoft/Documentation/ChangeLog.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/COPYING -o "build/release/OpenALSoft/Documentation/License.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/BSD-3Clause -o "build/release/OpenALSoft/Documentation/License_BSD-3Clause.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/LICENSE-pffft -o "build/release/OpenALSoft/Documentation/License_PFFFT.txt" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/alsoftrc.sample -o "build/release/OpenALSoft/Win32/alsoft.ini" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/alsoftrc.sample -o "build/release/OpenALSoft/Win64/alsoft.ini" | |
| cp "build/soft_oal-Win32-Release/soft_oal.dll" "build/release/OpenALSoft/Win32/OpenAL32.dll" | |
| cp "build/soft_oal-Win64-Release/soft_oal.dll" "build/release/OpenALSoft/Win64/OpenAL32.dll" | |
| cp -r "build/release/OpenALSoft" "build/release/OpenALSoft+HRTF" | |
| cp "build/release/OpenALSoft+HRTF/Win32/alsoft.ini" "build/release/OpenALSoft+HRTF/Documentation/alsoft.ini" | |
| curl https://raw.githubusercontent.com/${{github.repository}}/${{github.ref_name}}/configs/HRTF/alsoft.ini -o "build/release/OpenALSoft+HRTF/Win32/alsoft.ini" | |
| cp "build/release/OpenALSoft+HRTF/Win32/alsoft.ini" "build/release/OpenALSoft+HRTF/Win64/alsoft.ini" | |
| - name: Compress artifacts | |
| run: | | |
| cd build/release | |
| 7z a OpenALSoft.zip ./OpenALSoft/* | |
| 7z a OpenALSoft+HRTF.zip ./OpenALSoft+HRTF/* | |
| - name: GitHub pre-release | |
| uses: "Sweeistaken/sweelease@v1.1" | |
| with: | |
| repo_token: "${{secrets.GITHUB_TOKEN}}" | |
| automatic_release_tag: "latest" | |
| prerelease: true | |
| title: "OpenAL Soft v${{needs.build.outputs.CommitTag}}-${{needs.build.outputs.CommitHashShort}}" | |
| files: "build/release/*" |