Skip to content

Initial Nintendo DS port #196

Initial Nintendo DS port

Initial Nintendo DS port #196

Workflow file for this run

name: Build
on: [push, pull_request]
env:
BUILD_TYPE: Release
jobs:
build-linux:
name: Linux (${{ matrix.linux.system }})
runs-on: ubuntu-latest
strategy:
matrix:
linux:
- { system: X, apt-packages: libinih-dev libx11-dev libxext-dev, cmake-flags: -DSOUND_SUPPORT=ON }
- { system: SDL1, apt-packages: libinih-dev libsdl1.2-dev }
- { system: SDL2, apt-packages: libinih-dev libsdl2-dev }
- { system: SDL3, apt-packages: libinih-dev }
steps:
- uses: actions/checkout@v3
- name: Install dependencies
if: ${{ matrix.linux.apt-packages != '' }}
run: sudo apt-get update && sudo apt-get install ${{ matrix.linux.apt-packages }}
- name: Install SDL3
if: ${{ matrix.linux.system == 'SDL3' }}
uses: libsdl-org/setup-sdl@main
with:
version: 3-latest
build-type: ${{env.BUILD_TYPE}}
- name: Configure
run: cmake -B build/ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DSYSTEM=${{ matrix.linux.system }} -DUSE_SYSTEM_INIH=ON ${{ matrix.linux.cmake-flags }} .
- name: Build
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --parallel
- uses: actions/upload-artifact@v4
with:
name: arcem-linux-${{ matrix.linux.system }}
path: ./build/arcem
build-macosx:
name: Mac OS X (${{ matrix.macosx.system }})
runs-on: macos-latest
strategy:
matrix:
macosx:
- { system: macosx, cmake-flags: -GXcode -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" }
- { system: X, brew-packages: xquartz }
- { system: SDL1, brew-packages: sdl12-compat }
- { system: SDL2, brew-packages: sdl2 }
- { system: SDL3, brew-packages: sdl3 }
steps:
- uses: actions/checkout@v3
- name: Install dependencies
if: ${{ matrix.macosx.brew-packages != '' }}
run: brew install ${{ matrix.macosx.brew-packages }}
- name: Configure
run: cmake -B build/ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DSYSTEM=${{ matrix.macosx.system }} ${{ matrix.macosx.cmake-flags }} .
- name: Build
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --parallel
- name: Package
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --target package
- uses: actions/upload-artifact@v4
with:
name: arcem-macosx-${{ matrix.macosx.system }}
path: ./build/ArcEm-*.dmg
build-msvc:
name: Windows (MSVC ${{ matrix.msvc.platform }})
runs-on: windows-latest
strategy:
matrix:
msvc:
- { platform: Win32 }
- { platform: x64 }
- { platform: ARM64 }
steps:
- uses: actions/checkout@v3
- name: Configure
run: cmake -B build/ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -A ${{ matrix.msvc.platform }} .
- name: Build
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --parallel
- name: Package
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --target package
- uses: actions/upload-artifact@v4
with:
name: arcem-msvc-${{ matrix.msvc.platform }}
path: build/ArcEm-*.zip
build-mingw:
name: Windows (${{ matrix.mingw.msystem }})
runs-on: ${{ matrix.mingw.runs-on }}
defaults:
run:
shell: msys2 {0}
strategy:
matrix:
mingw:
- { msystem: mingw32, msys-env: mingw-w64-i686, runs-on: windows-latest }
- { msystem: mingw64, msys-env: mingw-w64-x86_64, runs-on: windows-latest }
- { msystem: clangarm64, msys-env: mingw-w64-clang-aarch64, runs-on: windows-11-arm }
steps:
- name: Set up MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.mingw.msystem }}
install: ${{ matrix.mingw.msys-env }}-cc ${{ matrix.mingw.msys-env }}-cmake
- uses: actions/checkout@v3
- name: Configure
run: cmake -B build/ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} .
- name: Build
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --parallel
- name: Package
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --target package
- uses: actions/upload-artifact@v4
with:
name: arcem-${{ matrix.mingw.msystem }}
path: ./build/ArcEm-*.zip
build-watcom:
name: Windows (OpenWatcom)
runs-on: ubuntu-latest
steps:
- name: Set up OpenWatcom
uses: open-watcom/setup-watcom@v0
with:
tag: 2021-12-01-Build
- uses: actions/checkout@v3
- name: Build
run: wmake -f Makefile.ow
- uses: actions/upload-artifact@v4
with:
name: arcem-watcom
path: ./ArcEm.exe
build-riscos:
name: RISC OS
runs-on: ubuntu-latest
container: riscosdotinfo/riscos-gccsdk-4.7:latest
steps:
- uses: actions/checkout@v3
- name: Build
run: make SYSTEM=riscos-single CROSS=arm-unknown-riscos-
- uses: actions/upload-artifact@v4
with:
name: arcem-riscos
path: ./ArcEm
build-amiga:
name: ${{ matrix.amiga.name }}
runs-on: ubuntu-latest
container: amigadev/crosstools:${{ matrix.amiga.host }}
strategy:
matrix:
amiga:
# - { name: "AmigaOS 3", host: "m68k-amigaos", system: "amigaos3" }
- { name: "AmigaOS 4", host: "ppc-amigaos", system: "amiga" }
steps:
- uses: actions/checkout@v3
- name: Build
run: make SYSTEM=${{ matrix.amiga.system }} CROSS=${{ matrix.amiga.host }}-
- uses: actions/upload-artifact@v4
with:
name: arcem-${{ matrix.amiga.host }}
path: ./arcem
build-nds:
name: Nintendo DS
runs-on: ubuntu-latest
container: devkitpro/devkitarm:20241104
steps:
- uses: actions/checkout@v3
- name: Configure
run: $DEVKITPRO/portlibs/nds/bin/arm-none-eabi-cmake -B build/ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} .
- name: Build
run: cmake --build build/ --config ${{env.BUILD_TYPE}} --parallel
- uses: actions/upload-artifact@v4
with:
name: arcem-nds
path: ./build/ArcEm.nds