Added portable file and directory operations (thanks @icculus!)

This commit is contained in:
Sam Lantinga
2024-03-16 08:15:13 -07:00
parent fe5c34d4bd
commit db0c1d7aeb
30 changed files with 841 additions and 2 deletions

View File

@@ -482,6 +482,7 @@ sdl_glob_sources(
"${SDL3_SOURCE_DIR}/src/dynapi/*.c"
"${SDL3_SOURCE_DIR}/src/events/*.c"
"${SDL3_SOURCE_DIR}/src/file/*.c"
"${SDL3_SOURCE_DIR}/src/filesystem/*.c"
"${SDL3_SOURCE_DIR}/src/joystick/*.c"
"${SDL3_SOURCE_DIR}/src/haptic/*.c"
"${SDL3_SOURCE_DIR}/src/hidapi/*.c"
@@ -1288,6 +1289,14 @@ if(ANDROID)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/android/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
set(SDL_FSOPS_POSIX 1) # !!! FIXME: this might need something else for .apk data?
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_FSOPS_POSIX 1) # !!! FIXME: this might need something else for .apk data?
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
if(SDL_HAPTIC)
set(SDL_HAPTIC_ANDROID 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/android/*.c")
@@ -1446,6 +1455,14 @@ elseif(EMSCRIPTEN)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/emscripten/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
if(SDL_CAMERA)
set(SDL_CAMERA_DRIVER_EMSCRIPTEN 1)
set(HAVE_CAMERA TRUE)
@@ -1762,6 +1779,10 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
endif()
set(HAVE_SDL_STORAGE 1)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_TIMER_UNIX 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c")
set(HAVE_SDL_TIMERS TRUE)
@@ -1976,11 +1997,15 @@ elseif(WINDOWS)
set(SDL_FILESYSTEM_WINDOWS 1)
if(WINDOWS_STORE)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/winrt/*.cpp")
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/SDL_sysfsops.c")
else()
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c")
endif()
set(HAVE_SDL_FILESYSTEM TRUE)
set(SDL_FSOPS_WINDOWS 1)
set(HAVE_SDL_FSOPS TRUE)
set(SDL_STORAGE_GENERIC 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/generic/*.c")
if(NOT WINDOWS_STORE)
@@ -2230,6 +2255,10 @@ elseif(APPLE)
endif()
set(HAVE_SDL_STORAGE 1)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
if(SDL_SENSOR)
if(IOS OR VISIONOS)
set(SDL_SENSOR_COREMOTION 1)
@@ -2422,6 +2451,14 @@ elseif(HAIKU)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/haiku/*.cc")
set(HAVE_SDL_FILESYSTEM TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_TIMER_HAIKU 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/haiku/*.c")
set(HAVE_SDL_TIMERS TRUE)
@@ -2454,6 +2491,14 @@ elseif(RISCOS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/riscos/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
set(SDL_TIMER_UNIX 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/unix/*.c")
set(HAVE_SDL_TIMERS TRUE)
@@ -2491,6 +2536,10 @@ elseif(VITA)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/vita/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
# !!! FIXME: do we need a FSops implementation for this?
# !!! FIXME: do we need a FSops implementation for this?
if(SDL_JOYSTICK)
set(SDL_JOYSTICK_VITA 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/vita/*.c")
@@ -2625,6 +2674,10 @@ elseif(PSP)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/psp/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
# !!! FIXME: do we need a FSops implementation for this?
# !!! FIXME: do we need a FSops implementation for this?
if(SDL_JOYSTICK)
set(SDL_JOYSTICK_PSP 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/psp/*.c")
@@ -2688,6 +2741,10 @@ elseif(PS2)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/ps2/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
# !!! FIXME: do we need a FSops implementation for this?
# !!! FIXME: do we need a FSops implementation for this?
if(SDL_JOYSTICK)
set(SDL_JOYSTICK_PS2 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/ps2/*.c")
@@ -2739,6 +2796,10 @@ elseif(N3DS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/n3ds/*.c")
set(HAVE_SDL_FILESYSTEM TRUE)
# !!! FIXME: do we need a FSops implementation for this?
# !!! FIXME: do we need a FSops implementation for this?
if(SDL_JOYSTICK)
set(SDL_JOYSTICK_N3DS 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/n3ds/*.c")
@@ -2763,6 +2824,10 @@ elseif(N3DS)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/timer/n3ds/*.c")
set(HAVE_SDL_TIMERS TRUE)
set(SDL_FSOPS_POSIX 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/posix/SDL_sysfsops.c")
set(HAVE_SDL_FSOPS TRUE)
if(SDL_SENSOR)
set(SDL_SENSOR_N3DS 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/n3ds/*.c")
@@ -2850,6 +2915,14 @@ if(NOT HAVE_SDL_STORAGE)
set(SDL_STORAGE_GENERIC 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/generic/*.c")
endif()
if(NOT HAVE_SDL_FSOPS)
set(SDL_FSOPS_DUMMY 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/dummy/SDL_sysfsops.c")
endif()
if(NOT HAVE_SDL_FSOPS)
set(SDL_FSOPS_DUMMY 1)
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/dummy/SDL_sysfsops.c")
endif()
if(NOT HAVE_SDL_LOCALE)
set(SDL_LOCALE_DUMMY 1)
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/dummy/*.c")