Skip to content

Restore support for the Nokia N-Gage #12148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 78 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
8de3b3a
[Nokia N-Gage] Add CMake build configuration.
mupfdev Jan 31, 2025
b74f57f
[Nokia N-Gage] Add stub application: The purpose of this file is to v…
mupfdev Jan 31, 2025
e3ea140
[Nokia N-Gage] Add build configuration and platform-specific defines.
mupfdev Jan 31, 2025
f794dd1
[Nokia N-Gage] Add audio driver implementation.
mupfdev Jan 31, 2025
f11e04d
[Nokia N-Gage] Add rendering back-end.
mupfdev Jan 31, 2025
96bbc45
[Nokia N-Gage] Add video driver implementation.
mupfdev Jan 31, 2025
c90f254
[Nokia N-Gage] Add SDL main application entry point.
mupfdev Jan 31, 2025
b4af124
[Nokia N-Gage] Add platform-specific core functions that are used for…
mupfdev Jan 31, 2025
778e3ad
[Nokia N-Gage] Add functions related to locales and time.
mupfdev Jan 31, 2025
4068177
[Nokia N-Gage] Add file system related functions.
mupfdev Jan 31, 2025
379f90a
[Nokia N-Gage] Add timer/counter functions.
mupfdev Jan 31, 2025
2577bd5
[Nokia N-Gage] Handle platform-specific edge cases.
mupfdev Jan 31, 2025
24ae1be
Add missing include guard
mupfdev Jan 31, 2025
83ff90c
[Nokia N-Gage] Add logging support.
mupfdev Jan 31, 2025
d050977
[Nokia N-Gage] Add platform to SDL.c
mupfdev Jan 31, 2025
30d7eec
[Nokia N-Gage] Add missing SDL_TriggerBreakpoint() implementation to …
mupfdev Feb 1, 2025
80a3b8a
[Nokia N-Gage] Move compile definitions to the SDK's toolchain file.
mupfdev Feb 1, 2025
723441f
[Nokia N-Gage] Remove redundant nullptr definition.
mupfdev Feb 1, 2025
5b3176d
[Nokia N-Gage] Update configuration after adding stdbool.h, stdint.h …
mupfdev Feb 1, 2025
500899c
[Nokia N-Gage] Update guard as suggested by @madebr, this should fix CI
mupfdev Feb 1, 2025
f835113
[Nokia N-Gage] Remove redundant guard after adding minimal stdbool.h …
mupfdev Feb 1, 2025
831474b
[Nokia N-Gage] Remove redundant guard after adding minimal inttypes.h…
mupfdev Feb 1, 2025
7049d8e
Remove redundant guard
mupfdev Feb 1, 2025
1ecb94a
[Nokia N-Gage] Fix audio deinit which caused an error message on exit…
mupfdev Feb 1, 2025
e31c9cb
[Nokia N-Gage] Simplify/Fix focus handling; it is now possible to put…
mupfdev Feb 3, 2025
44e0951
[Nokia N-Gage] Set initial focus to ETrue; this is not required on re…
mupfdev Feb 3, 2025
5a20721
Fix platform name in comment.
mupfdev Feb 5, 2025
171e33f
Fixed decoding 4-bit RLE encoded BMP files
slouken Feb 4, 2025
be456ab
bmp: Removed debug printf call.
icculus Feb 4, 2025
689de9c
Fixed memory leak looking up pen tool names
slouken Feb 5, 2025
27604a0
Fixed potential double-free
slouken Feb 5, 2025
c5c08bb
[Nokia N-Gage] Add build configuration and platform-specific defines.
mupfdev Jan 31, 2025
a8153cb
[Nokia N-Gage] Remove toolchain setting from CMakeLists.txt; this sho…
mupfdev Feb 5, 2025
e159b8e
[Nokia N-Gage] Remove redundant guard.
mupfdev Feb 5, 2025
6eeb24e
[Nokia N-Gage] As suggested by @ccawley2011, SDL_EnableScreenSaver() …
mupfdev Feb 5, 2025
eecdbb5
[Nokia N-Gage] Add external declaration to avoid compiler warning
mupfdev Feb 5, 2025
364c4b5
[Nokia N-Gage] Remove unused NGAGE_QueueNoOp()
mupfdev Feb 5, 2025
1cf9df1
[Nokia N-Gage] Move VideoBootStrap declaration where it belongs
mupfdev Feb 5, 2025
2a13763
[Nokia N-Gage] Update README-ngage.md
mupfdev Feb 5, 2025
fe3acbe
Add missing return value to NGAGE_SuspendScreenSaver().
mupfdev Feb 6, 2025
65d7786
[Nokia N-Gage] Remove redundant code after cleaning up the native Sym…
mupfdev Feb 6, 2025
dd79afc
[Nokia N-Gage] Update SDL_sysfilesystem.c as suggested by @ccawley2011
mupfdev Feb 8, 2025
9aee083
[Nokia N-Gage] Update NGAGE_LockTexture as suggested in PR code review
mupfdev Feb 8, 2025
8be5436
[Nokia N-Gage] Use proper locals for HK and Taiwan
mupfdev Feb 8, 2025
4888ceb
[Nokia N-Gage] ELangEnglish -> en_GB
mupfdev Feb 8, 2025
b465332
[Nokia N-Gage] Remove redundant ssize_t definition. It now lives in s…
mupfdev Feb 9, 2025
f85e3e4
[Nokia N-Gage] Remove redundant external declarations, these had been…
mupfdev Feb 9, 2025
955595e
[Nokia N-Gage] Fix SDL include in ngagetest.c
mupfdev Feb 9, 2025
194fd88
Add missing include
mupfdev Feb 9, 2025
4560331
[Nokia N-Gage] Remove redundant vsnprintf definition, add platform-sp…
mupfdev Feb 9, 2025
df0b9e9
ci: add minimum N-Gage ci
madebr Feb 9, 2025
00a8d7a
[Nokia N-Gage] Update source list in (temporary) platform-specific bu…
mupfdev Mar 2, 2025
90b29d3
[Nokia N-Gage] Update main CMakeLists.txt and add preseed configurati…
mupfdev Apr 21, 2025
323dc60
The SDL_BUTTON_*MASK defines must come immediately after the SDL_Mous…
maia-s Apr 21, 2025
3978bdd
cocoa: Use CGFLOAT_MAX for unbounded max window dimensions
Kontrabant Apr 21, 2025
e7af45a
wayland: Account for timer rollover when calculating the elapsed time…
Kontrabant Apr 21, 2025
1d958a2
Sync SDL3 wiki -> header
SDLWikiBot Apr 22, 2025
f17b310
Sync SDL3 wiki -> header
SDLWikiBot Apr 22, 2025
5c4b969
wayland: Check the origin of clipboard offers before forwarding them …
Kontrabant Apr 18, 2025
e533c59
Updated documentation for SDL_HINT_GPU_DRIVER
slouken Apr 22, 2025
194f8d3
x11: Send key events for dead keys consumed by the IME
cgutman Apr 20, 2025
2771038
Removed incorrect documentation for SDL_RenderViewportSet()
slouken Apr 22, 2025
4241b05
SDL_BlitSurface() comment: Remove sentence about final blit rect bein…
Sackzement Apr 20, 2025
712c13d
Add missing type suffix to SDL_PROP_WINDOW_OPENVR_OVERLAY_ID
maia-s Apr 20, 2025
517621c
Sync SDL3 wiki -> header
SDLWikiBot Apr 22, 2025
8e558a4
Renamed SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_UINT8 to SDL_…
slouken Apr 22, 2025
d5a6bbe
SDL_BlitSurfaceScaled(): Do not blit if surfaces have no pixel data
Sackzement Apr 19, 2025
7612fe7
SDL_BlitSurfaceScaled(): Do not divide by zero
Sackzement Apr 19, 2025
0011edb
Added tests to cover invalid surface blits
slouken Apr 22, 2025
9680eae
GPU: Validate shader bytecode
lmurray Apr 2, 2025
5d6746d
Fixed formatting
slouken Apr 22, 2025
c56b5c4
Sync SDL3 wiki -> header
SDLWikiBot Apr 22, 2025
4bea4e1
comments: Fixed a few typos I ran into in the audio code.
icculus Apr 22, 2025
b7049c1
audio: Added SDL_PutAudioStreamPlanarData.
icculus Apr 22, 2025
a8bc447
examples: added audio/05-planar-data
icculus Apr 22, 2025
d43871a
Sync SDL3 wiki -> header
SDLWikiBot Apr 23, 2025
03eba9e
stb_image.h: apply mainstream PR/1736
sezero Apr 23, 2025
9e36ad3
wayland: Cleanup timestamp handling
Kontrabant Apr 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .github/actions/setup-ngage-sdk/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: 'Setup Nonka N-Gage SDK'
description: 'Download and setup Nokia N-Gage SDK'
inputs:
path:
description: 'Installation path'
default: 'default'
runs:
using: 'composite'
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: 'Verify platform'
id: calc
shell: sh
run: |
case "${{ runner.os }}-${{ runner.arch }}" in
"Windows-X86" | "Windows-X64")
echo "ok!"
echo "cache-key=ngage-sdk-windows" >> ${GITHUB_OUTPUT}
default_install_path="C:/ngagesdk"
;;
*)
echo "Unsupported ${{ runner.os }}-${{ runner.arch }}"
exit 1;
;;
esac
install_path="${{ inputs.path }}"
if [ "x$install_path" = "xdefault" ]; then
install_path="$default_install_path"
fi
echo "install-path=$install_path" >> ${GITHUB_OUTPUT}

toolchain_repo="https://github.com/ngagesdk/ngage-toolchain"
toolchain_branch="main"
echo "toolchain-repo=${toolchain_repo}" >> ${GITHUB_OUTPUT}
echo "toolchain-branch=${toolchain_branch}" >> ${GITHUB_OUTPUT}

sdk_repo="https://github.com/ngagesdk/sdk"
sdk_branch="main"
echo "sdk-repo=${sdk_repo}" >> ${GITHUB_OUTPUT}
echo "sdk-branch=${sdk_branch}" >> ${GITHUB_OUTPUT}

tools_repo="https://github.com/ngagesdk/tools"
tools_branch="main"
echo "tools-repo=${tools_repo}" >> ${GITHUB_OUTPUT}
echo "tools-branch=${tools_branch}" >> ${GITHUB_OUTPUT}

extras_repo="https://github.com/ngagesdk/extras"
extras_branch="main"
echo "extras-repo=${extras_repo}" >> ${GITHUB_OUTPUT}
echo "extras-branch=${extras_branch}" >> ${GITHUB_OUTPUT}
# - name: 'Restore cached ${{ steps.calc.outputs.archive }}'
# id: cache-restore
# uses: actions/cache/restore@v4
# with:
# path: '${{ runner.temp }}'
# key: ${{ steps.calc.outputs.cache-key }}
- name: 'Download N-Gage SDK'
# if: ${{ !steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false' }}
shell: pwsh
run: |

Invoke-WebRequest "${{ steps.calc.outputs.toolchain-repo }}/archive/refs/heads/${{ steps.calc.outputs.toolchain-branch }}.zip" -OutFile "${{ runner.temp }}/ngage-toolchain.zip"
Invoke-WebRequest "${{ steps.calc.outputs.sdk-repo }}/archive/refs/heads/${{ steps.calc.outputs.sdk-branch }}.zip" -OutFile "${{ runner.temp }}/sdk.zip"
Invoke-WebRequest "${{ steps.calc.outputs.tools-repo }}/archive/refs/heads/${{ steps.calc.outputs.tools-branch }}.zip" -OutFile "${{ runner.temp }}/tools.zip"
Invoke-WebRequest "${{ steps.calc.outputs.extras-repo }}/archive/refs/heads/${{ steps.calc.outputs.extras-branch }}.zip" -OutFile "${{ runner.temp }}/extras.zip"

# - name: 'Cache ${{ steps.calc.outputs.archive }}'
# if: ${{ !steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false' }}
# uses: actions/cache/save@v4
# with:
# path: |
# ${{ runner.temp }}/apps.zip
# ${{ runner.temp }}/sdk.zip
# ${{ runner.temp }}/tools.zip
# key: ${{ steps.calc.outputs.cache-key }}
- name: 'Extract N-Gage SDK'
shell: pwsh
run: |
New-Item -ItemType Directory -Path "${{ steps.calc.outputs.install-path }}" -Force

New-Item -ItemType Directory -Path "${{ runner.temp }}/ngage-toolchain-temp" -Force
7z "-o${{ runner.temp }}/ngage-toolchain-temp" x "${{ runner.temp }}/ngage-toolchain.zip"
Move-Item -Path "${{ runner.temp }}/ngage-toolchain-temp/ngage-toolchain-${{ steps.calc.outputs.toolchain-branch }}/*" -Destination "${{ steps.calc.outputs.install-path }}"

7z "-o${{ steps.calc.outputs.install-path }}/sdk" x "${{ runner.temp }}/sdk.zip"
Move-Item -Path "${{ steps.calc.outputs.install-path }}/sdk/sdk-${{ steps.calc.outputs.sdk-branch }}" -Destination "${{ steps.calc.outputs.install-path }}/sdk/sdk"

7z "-o${{ steps.calc.outputs.install-path }}/sdk" x "${{ runner.temp }}/tools.zip"
Move-Item -Path "${{ steps.calc.outputs.install-path }}/sdk/tools-${{ steps.calc.outputs.tools-branch }}" -Destination "${{ steps.calc.outputs.install-path }}/sdk/tools"

7z "-o${{ steps.calc.outputs.install-path }}/sdk" x "${{ runner.temp }}/extras.zip"
Move-Item -Path "${{ steps.calc.outputs.install-path }}/sdk/extras-${{ steps.calc.outputs.extras-branch }}" -Destination "${{ steps.calc.outputs.install-path }}/sdk/extras"
- name: 'Set output variables'
id: final
shell: sh
run: |
echo "${{ steps.calc.outputs.install-path }}/sdk/sdk/6.1/Shared/EPOC32/gcc/bin" >> $GITHUB_PATH
echo "${{ steps.calc.outputs.install-path }}/sdk/sdk/6.1/Shared/EPOC32/ngagesdk/bin" >> $GITHUB_PATH
echo "NGAGESDK=${{ steps.calc.outputs.install-path }}" >> $GITHUB_ENV
echo "CMAKE_TOOLCHAIN_FILE=${{ steps.calc.outputs.install-path }}/cmake/ngage-toolchain.cmake" >> $GITHUB_ENV
20 changes: 20 additions & 0 deletions .github/workflows/create-test-plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ class SdlPlatform(Enum):
Riscos = "riscos"
FreeBSD = "freebsd"
NetBSD = "netbsd"
NGage = "ngage"


class Msys2Platform(Enum):
Expand Down Expand Up @@ -138,6 +139,7 @@ class JobSpec:
"riscos": JobSpec(name="RISC OS", os=JobOs.UbuntuLatest, platform=SdlPlatform.Riscos, artifact="SDL-riscos", container="riscosdotinfo/riscos-gccsdk-4.7:latest", ),
"netbsd": JobSpec(name="NetBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.NetBSD, artifact="SDL-netbsd-x64", ),
"freebsd": JobSpec(name="FreeBSD", os=JobOs.UbuntuLatest, platform=SdlPlatform.FreeBSD, artifact="SDL-freebsd-x64", ),
"ngage": JobSpec(name="N-Gage", os=JobOs.WindowsLatest, platform=SdlPlatform.NGage, artifact="SDL-ngage", ),
}


Expand All @@ -163,6 +165,7 @@ class JobDetails:
artifact: str
no_cmake: bool
ccache: bool = False
continue_on_error: bool = False
build_tests: bool = True
container: str = ""
cmake_build_type: str = "RelWithDebInfo"
Expand Down Expand Up @@ -222,6 +225,7 @@ class JobDetails:
check_sources: bool = False
setup_python: bool = False
pypi_packages: list[str] = dataclasses.field(default_factory=list)
setup_gage_sdk_path: str = ""

def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
data = {
Expand All @@ -231,6 +235,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
"ccache": self.ccache,
"container": self.container if self.container else "",
"platform": self.platform,
"continue-on-error": self.continue_on_error,
"artifact": self.artifact,
"enable-artifacts": enable_artifacts,
"shell": self.shell,
Expand Down Expand Up @@ -289,6 +294,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
"check-sources": self.check_sources,
"setup-python": self.setup_python,
"pypi-packages": my_shlex_join(self.pypi_packages),
"setup-ngage-sdk-path": self.setup_gage_sdk_path,
}
return {k: v for k, v in data.items() if v != ""}

Expand Down Expand Up @@ -739,6 +745,20 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
job.cpactions_arch = "x86-64"
job.cpactions_setup_cmd = "export PATH=\"/usr/pkg/sbin:/usr/pkg/bin:/sbin:$PATH\"; export PKG_CONFIG_PATH=\"/usr/pkg/lib/pkgconfig\";export PKG_PATH=\"https://cdn.netBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f \"1 2\" -d.)/All/\";echo \"PKG_PATH=$PKG_PATH\";echo \"uname -a -> \"$(uname -a)\"\";sudo -E sysctl -w security.pax.aslr.enabled=0;sudo -E sysctl -w security.pax.aslr.global=0;sudo -E pkgin clean;sudo -E pkgin update"
job.cpactions_install_cmd = "sudo -E pkgin -y install cmake dbus pkgconf ninja-build pulseaudio libxkbcommon wayland wayland-protocols libinotify libusb1"
case SdlPlatform.NGage:
job.cmake_arguments.extend([
"-DBUILD_FOR_NOKIA_NGAGE=ON", # FIXME: remove this
])
job.continue_on_error = True # FIXME: remove this
job.setup_ninja = True
job.static_lib = None # FIXME: should be StaticLibType.A
job.shared_lib = None
job.clang_tidy = False
job.werror = False # FIXME: enable SDL_WERROR
job.shared = False
job.run_tests = False
job.setup_gage_sdk_path = "C:/ngagesdk"
job.cmake_toolchain_file = "C:/ngagesdk/cmake/ngage-toolchain.cmake"
case _:
raise ValueError(f"Unsupported platform={spec.platform}")

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/generic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ jobs:
name: ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
container: ${{ matrix.platform.container }}
continue-on-error: ${{ matrix.platform.continue-on-error }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
Expand Down Expand Up @@ -93,6 +94,11 @@ jobs:
with:
arch: ${{ matrix.platform.msvc-vcvars-arch }}
sdk: ${{ matrix.platform.msvc-vcvars-sdk }}
- name: 'Set up Nokia N-Gage SDK'
uses: ./.github/actions/setup-ngage-sdk
if: ${{ matrix.platform.setup-ngage-sdk-path != '' }}
with:
path: '${{ matrix.platform.setup-ngage-sdk-path }}'
- name: 'Set up Windows GDK Desktop'
uses: ./.github/actions/setup-gdk-desktop
if: ${{ matrix.platform.setup-gdk-folder != '' }}
Expand Down
76 changes: 74 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ include("${SDL3_SOURCE_DIR}/cmake/GetGitRevisionDescription.cmake")
include("${SDL3_SOURCE_DIR}/cmake/3rdparty.cmake")
include("${SDL3_SOURCE_DIR}/cmake/PreseedMSVCCache.cmake")
include("${SDL3_SOURCE_DIR}/cmake/PreseedEmscriptenCache.cmake")
include("${SDL3_SOURCE_DIR}/cmake/PreseedNokiaNGageCache.cmake")

SDL_DetectCompiler()
SDL_DetectTargetCPUArchitectures(SDL_CPUS)
Expand Down Expand Up @@ -155,7 +156,7 @@ endif()
# The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers,
# so we'll just use libusb when it's available. libusb does not support iOS,
# so we default to yes on iOS.
if(IOS OR TVOS OR VISIONOS OR WATCHOS OR ANDROID)
if(IOS OR TVOS OR VISIONOS OR WATCHOS OR ANDROID OR NGAGESDK)
set(SDL_HIDAPI_LIBUSB_AVAILABLE FALSE)
else()
set(SDL_HIDAPI_LIBUSB_AVAILABLE TRUE)
Expand Down Expand Up @@ -219,7 +220,7 @@ if(EMSCRIPTEN)
set(SDL_SHARED_AVAILABLE OFF)
endif()

if(VITA OR PSP OR PS2 OR N3DS OR RISCOS)
if(VITA OR PSP OR PS2 OR N3DS OR RISCOS OR NGAGESDK)
set(SDL_SHARED_AVAILABLE OFF)
endif()

Expand Down Expand Up @@ -414,6 +415,26 @@ if(VITA)
set_option(VIDEO_VITA_PVR "Build with PSVita PVR gles/gles2 support" OFF)
endif()

if (NGAGESDK)
enable_language(CXX)

set(SDL_GPU OFF)
set(SDL_CAMERA OFF)
set(SDL_JOYSTICK OFF)
set(SDL_HAPTIC OFF)
set(SDL_HIDAPI OFF)
set(SDL_POWER OFF)
set(SDL_SENSOR OFF)
set(SDL_DIALOG OFF)
set(SDL_DISKAUDIO OFF)
set(SDL_DUMMYAUDIO OFF)
set(SDL_DUMMYCAMERA OFF)
set(SDL_DUMMYVIDEO OFF)
set(SDL_OFFSCREEN OFF)
set(SDL_RENDER_GPU OFF)
set(SDL_VIRTUAL_JOYSTICK OFF)
endif()

if(NOT (SDL_SHARED OR SDL_STATIC))
message(FATAL_ERROR "SDL_SHARED and SDL_STATIC cannot both be disabled")
endif()
Expand Down Expand Up @@ -2930,6 +2951,57 @@ elseif(N3DS)
set(HAVE_SDL_LOCALE TRUE)

sdl_glob_sources("${SDL3_SOURCE_DIR}/src/io/n3ds/*.c")

elseif(NGAGESDK)

set(SDL_MAIN_USE_CALLBACKS 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/ngage/*.c")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/ngage/*.cpp")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/ngage/*.c")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/ngage/*.cpp")

if(SDL_AUDIO)
set(SDL_AUDIO_DRIVER_NGAGE 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/ngage/*.c")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/ngage/*.cpp")
set(HAVE_SDL_AUDIO TRUE)
endif()

set(SDL_FILESYSTEM_NGAGE 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/ngage/*.c")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/ngage/*.cpp")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)

set(SDL_THREADS_DISABLED 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/thread/*.c")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/thread/generic/*.c")
set(HAVE_SDL_THREADS TRUE)

sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/ngage/*.cpp")

set(SDL_VIDEO_RENDER_NGAGE 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/render/ngage/*.c")

sdl_glob_sources("${SDL3_SOURCE_DIR}/src/render/ngage/*.cpp")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/time/ngage/*.cpp")
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/time/unix/*.c")

set(SDL_TIMER_NGAGE 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/ngage/*.cpp")

set(SDL_VIDEO_DRIVER_NGAGE 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/ngage/*.c")
set(HAVE_SDL_TIMERS TRUE)

set(SDL_CAMERA_DISABLED 1)
set(SDL_ASSERT_LEVEL 0)
set(SDL_FSOPS_POSIX 1)
set(SDL_GPU_DISABLED 1)
set(SDL_HAPTIC_DISABLED 1)
set(SDL_JOYSTICK_DISABLED 1)
set(SDL_LEAN_AND_MEAN 1)
set(SDL_SENSOR_DISABLED 1)
endif()

sdl_sources(${SDL3_SOURCE_DIR}/src/dialog/SDL_dialog.c)
Expand Down
Loading
Loading