| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- name: Build (LoongArch64)
- on: [push, pull_request]
- concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
- cancel-in-progress: true
- jobs:
- loongarch64:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- platform:
- - { toolchain-version: 2022.09.06 }
- steps:
- - uses: actions/checkout@v4
- - name: Install build requirements
- run: |
- sudo apt-get update -y
- sudo apt-get install -y --no-install-recommends cmake ninja-build pkg-config tar wget
- - uses: actions/cache/restore@v4
- id: restore-cache
- with:
- path: /opt/cross-tools
- key: loongarch64-${{ matrix.platform.toolchain-version }}
- - name: Download LoongArch64 gcc+glibc toolchain
- if: ${{ !steps.restore-cache.outputs.cache-hit }}
- run: |
- url="https://github.com/loongson/build-tools/releases/download/${{ matrix.platform.toolchain-version }}/loongarch64-clfs-6.3-cross-tools-gcc-glibc.tar.xz"
- wget "$url" -O /tmp/toolchain.tar.xz
- mkdir -p /opt
- tar -C /opt -x -f /tmp/toolchain.tar.xz
- - uses: actions/cache/save@v3
- if: ${{ !steps.restore-cache.outputs.cache-hit }}
- with:
- path: /opt/cross-tools
- key: loongarch64-${{ matrix.platform.toolchain-version }}
- - name: Set-up Loongarch64 build environment
- run: |
- echo "/opt/cross-tools/bin" >> $GITHUB_PATH
- echo "CC=loongarch64-unknown-linux-gnu-gcc" >> $GITHUB_ENV
- echo "CXX=loongarch64-unknown-linux-gnu-g++" >> $GITHUB_ENV
- - name: Configure (CMake)
- run: |
- cmake -S . -B build -G Ninja \
- -Wdeprecated -Wdev -Werror \
- -DSDL_SHARED=ON \
- -DSDL_STATIC=ON \
- -DSDL_TESTS=ON \
- -DSDL_WERROR=ON \
- -DSDL_TESTS=ON \
- -DSDL_INSTALL_TESTS=ON \
- -DSDL_DISABLE_INSTALL_DOCS=OFF \
- -DSDL_VENDOR_INFO="Github Workflow" \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=prefix
- - name: Build (CMake)
- run: |
- cmake --build build --verbose
- - name: Install (CMake)
- run: |
- echo "SDL3_DIR=$(pwd)/prefix" >> $GITHUB_ENV
- cmake --install build/
- ( cd prefix; find ) | LC_ALL=C sort -u
- - name: Package (CPack)
- run: |
- cmake --build build/ --config Release --target package
- - name: Verify CMake configuration files
- run: |
- cmake -S cmake/test -B cmake_config_build -G Ninja \
- -DTEST_SHARED=TRUE \
- -DTEST_STATIC=TRUE \
- -DCMAKE_PREFIX_PATH=${{ env.SDL3_DIR }} \
- -DCMAKE_BUILD_TYPE=Release
- cmake --build cmake_config_build --verbose
- - name: Verify sdl3.pc
- run: |
- export PKG_CONFIG_PATH=${{ env.SDL3_DIR }}/lib/pkgconfig
- cmake/test/test_pkgconfig.sh
- - uses: actions/upload-artifact@v4
- with:
- if-no-files-found: error
- name: SDL-loongarch64
- path: build/dist/SDL3*
|