name: Build (Sony Playstation Vita) on: [push, pull_request] defaults: run: shell: sh jobs: vita: name: ${{ matrix.platform.name }} runs-on: ubuntu-latest container: image: vitasdk/vitasdk:latest strategy: fail-fast: false matrix: platform: - { name: GLES (pib), os: windows-latest, pib: true } - { name: GLES (PVR_PSP2 + gl4es4vita), os: windows-latest, pvr: true } steps: - uses: actions/checkout@v4 - name: Install build requirements run: | apk update apk add cmake ninja pkgconf bash - name: Configure PVR_PSP2 (GLES) if: ${{ !!matrix.platform.pvr }} run: | pvr_psp2_version=3.9 # Configure PVR_PSP2 headers wget https://github.com/GrapheneCt/PVR_PSP2/archive/refs/tags/v$pvr_psp2_version.zip -P/tmp unzip /tmp/v$pvr_psp2_version.zip -d/tmp cp -r /tmp/PVR_PSP2-$pvr_psp2_version/include/* ${VITASDK}/arm-vita-eabi/include rm /tmp/v$pvr_psp2_version.zip # Configure PVR_PSP2 stub libraries wget https://github.com/GrapheneCt/PVR_PSP2/releases/download/v$pvr_psp2_version/vitasdk_stubs.zip -P/tmp unzip /tmp/vitasdk_stubs.zip -d/tmp/pvr_psp2_stubs find /tmp/pvr_psp2_stubs -type f -name "*.a" -exec cp {} ${VITASDK}/arm-vita-eabi/lib \; rm /tmp/vitasdk_stubs.zip rm -rf /tmp/pvr_psp2_stubs - name: Configure gl4es4vita (OpenGL) if: ${{ !!matrix.platform.pvr }} run: | gl4es4vita_version=1.1.4 # Configure gl4es4vita headers wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/include.zip -P/tmp unzip -o /tmp/include.zip -d${VITASDK}/arm-vita-eabi/include rm /tmp/include.zip # Configure gl4es4vita stub libraries wget https://github.com/SonicMastr/gl4es4vita/releases/download/v$gl4es4vita_version-vita/vitasdk_stubs.zip -P/tmp unzip /tmp/vitasdk_stubs.zip -d${VITASDK}/arm-vita-eabi/lib - name: Configure CMake run: | cmake -S . -B build -G Ninja \ -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \ -DVIDEO_VITA_PIB=${{ !!matrix.platform.pib }} \ -DVIDEO_VITA_PVR=${{ !!matrix.platform.pvr }} \ -DSDL_WERROR=ON \ -DSDL_TESTS=ON \ -DSDL_INSTALL_TESTS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=prefix - name: Build run: cmake --build build --verbose - name: Install CMake run: | echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV cmake --install build/ ( cd prefix; find ) | LC_ALL=C sort -u - name: Verify CMake configuration files run: | cmake -S cmake/test -B cmake_config_build -G Ninja \ -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \ -DTEST_SHARED=FALSE \ -DCMAKE_PREFIX_PATH=${{ env.SDL2_DIR }} \ -DCMAKE_BUILD_TYPE=Release cmake --build cmake_config_build --verbose - name: Verify sdl2-config run: | export CC=arm-vita-eabi-gcc export PATH=${{ env.SDL2_DIR }}/bin:$PATH cmake/test/test_sdlconfig.sh - name: Verify sdl2.pc run: | export CC=arm-vita-eabi-gcc export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig cmake/test/test_pkgconfig.sh