diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1352288e..bdca5cea 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -280,3 +280,70 @@ jobs: -DTEST_SHARED=${{ matrix.platform.shared }} \ -DTEST_STATIC=${{ matrix.platform.static }} cmake --build cmake_config_build --verbose + +name: Build (Nintendo 3DS) + +on: [push, pull_request] + +jobs: + n3ds: + runs-on: ubuntu-latest + container: + image: devkitpro/devkitarm:latest + steps: + - uses: actions/checkout@v3 + - name: Install build requirements + run: | + apt update + apt install ninja-build + - name: Configure CMake + run: | + export CMAKE_CONFIGURATION_TYPES=Debug + cmake -B build \ + -DSDL2IMAGE_VENDORED=${{ matrix.platform.vendored }} \ + -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=$PWD/build \ + -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$PWD/build \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Debug \ + -DSDL2IMAGE_SAMPLES=ON \ + -DSDL2IMAGE_TESTS=ON \ + -DSDL2IMAGE_TESTS_INSTALL=ON \ + -DSDL2IMAGE_AVIF=${{ !matrix.platform.vendored }} \ + -DSDL2IMAGE_JXL=ON \ + -DSDL2IMAGE_TIF=ON \ + -DSDL2IMAGE_WEBP=ON \ + -DSDL2IMAGE_VENDORED=${{ !!matrix.platform.vendored }} \ + -DCMAKE_INSTALL_PREFIX=prefix_cmake \ + ${{ matrix.platform.cmake }} + - name: Build + run: cmake --build build --verbose + - name: Install CMake + run: | + set -eu + rm -fr DESTDIR-cmake + cmake --install build/ --config Debug + echo "SDL2_image_DIR=$(pwd)/prefix_cmake" >> $GITHUB_ENV + ( cd prefix_cmake; 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=${DEVKITPRO}/cmake/3DS.cmake \ + -DTEST_SHARED=FALSE \ + -DCMAKE_PREFIX_PATH=${{ env.SDL2_image_DIR }} \ + -DCMAKE_BUILD_TYPE=Release + cmake --build cmake_config_build --verbose + - name: Extract CC/CXX/CFLAGS/CXXFLAGS from CMake toolchain + run: | + cmake -S .github/cmake -B /tmp/cmake_extract \ + -DCMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/3DS.cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DVAR_PATH=/tmp/n3ds_env.txt + cat /tmp/n3ds_env.txt >> $GITHUB_ENV + - name: Verify sdl2-config + run: | + export PATH=${{ env.SDL2_DIR }}/bin:$PATH + cmake/test/test_sdlconfig.sh + - name: Verify sdl2.pc + run: | + export PKG_CONFIG_PATH=${{ env.SDL2_DIR }}/lib/pkgconfig + cmake/test/test_pkgconfig.sh