From 21fd0047e3c7a0022d9037703cb9618c76d01dbc Mon Sep 17 00:00:00 2001
From: Wouter Wijsman <[EMAIL REDACTED]>
Date: Mon, 29 Nov 2021 18:42:13 +0100
Subject: [PATCH] Initial for building PSP version with CMake
---
CMakeLists.txt | 60 ++++++++++++++++++++++++++++++++++--
include/SDL_config.h.cmake | 6 ++++
include/SDL_config_psp.h | 2 +-
src/timer/psp/SDL_systimer.c | 4 +--
4 files changed, 67 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6e8ecda1348..a1cf5d376d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -224,7 +224,7 @@ if(APPLE OR ARCH_64 OR MSVC_CLANG)
set(OPT_DEF_SSEMATH ON)
endif()
endif()
-if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA)
+if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP)
set(OPT_DEF_LIBC ON)
endif()
@@ -328,7 +328,7 @@ if(EMSCRIPTEN)
set(SDL_CPUINFO_ENABLED_BY_DEFAULT OFF)
endif()
-if(VITA)
+if(VITA OR PSP)
set(SDL_SHARED_ENABLED_BY_DEFAULT OFF)
set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF)
endif()
@@ -2354,6 +2354,62 @@ elseif(VITA)
# CheckPTHREAD()
+elseif(PSP)
+
+ file(GLOB PSP_MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/psp/*.c)
+ set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${PSP_MAIN_SOURCES})
+
+ if(SDL_AUDIO)
+ set(SDL_AUDIO_DRIVER_PSP 1)
+ file(GLOB PSP_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_AUDIO_SOURCES})
+ set(HAVE_SDL_AUDIO TRUE)
+ endif()
+ if(SDL_JOYSTICK)
+ set(SDL_JOYSTICK_PSP 1)
+ file(GLOB PSP_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_JOYSTICK_SOURCES})
+ set(HAVE_SDL_JOYSTICK TRUE)
+ endif()
+ if(SDL_POWER)
+ set(SDL_POWER_PSP 1)
+ file(GLOB PSP_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_POWER_SOURCES})
+ set(HAVE_SDL_POWER TRUE)
+ endif()
+ if(SDL_THREADS)
+ set(SDL_THREAD_PSP 1)
+ file(GLOB PSP_THREAD_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_systls.c ${SDL2_SOURCE_DIR}/src/thread/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_THREAD_SOURCES})
+ set(HAVE_SDL_THREADS TRUE)
+ endif()
+ if(SDL_TIMERS)
+ set(SDL_TIMER_PSP 1)
+ file(GLOB PSP_TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_TIMER_SOURCES})
+ set(HAVE_SDL_TIMERS TRUE)
+ endif()
+ if(SDL_VIDEO)
+ set(SDL_VIDEO_DRIVER_PSP 1)
+ file(GLOB PSP_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/psp/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${PSP_VIDEO_SOURCES})
+ set(HAVE_SDL_VIDEO TRUE)
+ set(SDL_VIDEO_OPENGL 1)
+ set(HAVE_VIDEO_OPENGL TRUE)
+ endif()
+
+ list(APPEND EXTRA_LIBS
+ pspctrl
+ psphprm
+ pspge
+ pspgu
+ pspdisplay
+ pspvfpu
+ pspaudio
+ pspvram
+ GL
+ )
+
endif()
if(SDL_VULKAN AND NOT SDL_LOADSO)
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index 38655812ae1..cf83c3bf36e 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -315,6 +315,7 @@
#cmakedefine SDL_AUDIO_DRIVER_WINMM @SDL_AUDIO_DRIVER_WINMM@
#cmakedefine SDL_AUDIO_DRIVER_OS2 @SDL_AUDIO_DRIVER_OS2@
#cmakedefine SDL_AUDIO_DRIVER_VITA @SDL_AUDIO_DRIVER_VITA@
+#cmakedefine SDL_AUDIO_DRIVER_PSP @SDL_AUDIO_DRIVER_PSP@
/* Enable various input drivers */
#cmakedefine SDL_INPUT_LINUXEV @SDL_INPUT_LINUXEV@
@@ -337,6 +338,7 @@
#cmakedefine SDL_JOYSTICK_EMSCRIPTEN @SDL_JOYSTICK_EMSCRIPTEN@
#cmakedefine SDL_JOYSTICK_VIRTUAL @SDL_JOYSTICK_VIRTUAL@
#cmakedefine SDL_JOYSTICK_VITA @SDL_JOYSTICK_VITA@
+#cmakedefine SDL_JOYSTICK_PSP @SDL_JOYSTICK_PSP@
#cmakedefine SDL_HAPTIC_DUMMY @SDL_HAPTIC_DUMMY@
#cmakedefine SDL_HAPTIC_LINUX @SDL_HAPTIC_LINUX@
#cmakedefine SDL_HAPTIC_IOKIT @SDL_HAPTIC_IOKIT@
@@ -367,6 +369,7 @@
#cmakedefine SDL_THREAD_WINDOWS @SDL_THREAD_WINDOWS@
#cmakedefine SDL_THREAD_OS2 @SDL_THREAD_OS2@
#cmakedefine SDL_THREAD_VITA @SDL_THREAD_VITA@
+#cmakedefine SDL_THREAD_PSP @SDL_THREAD_PSP@
/* Enable various timer systems */
#cmakedefine SDL_TIMER_HAIKU @SDL_TIMER_HAIKU@
@@ -375,6 +378,7 @@
#cmakedefine SDL_TIMER_WINDOWS @SDL_TIMER_WINDOWS@
#cmakedefine SDL_TIMER_OS2 @SDL_TIMER_OS2@
#cmakedefine SDL_TIMER_VITA @SDL_TIMER_VITA@
+#cmakedefine SDL_TIMER_PSP @SDL_TIMER_PSP@
/* Enable various video drivers */
#cmakedefine SDL_VIDEO_DRIVER_ANDROID @SDL_VIDEO_DRIVER_ANDROID@
@@ -395,6 +399,7 @@
#cmakedefine SDL_VIDEO_DRIVER_OS2 @SDL_VIDEO_DRIVER_OS2@
#cmakedefine SDL_VIDEO_DRIVER_QNX @SDL_VIDEO_DRIVER_QNX@
#cmakedefine SDL_VIDEO_DRIVER_RISCOS @SDL_VIDEO_DRIVER_RISCOS@
+#cmakedefine SDL_VIDEO_DRIVER_PSP @SDL_VIDEO_DRIVER_PSP@
#cmakedefine SDL_VIDEO_DRIVER_KMSDRM @SDL_VIDEO_DRIVER_KMSDRM@
#cmakedefine SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC @SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC@
@@ -469,6 +474,7 @@
#cmakedefine SDL_POWER_EMSCRIPTEN @SDL_POWER_EMSCRIPTEN@
#cmakedefine SDL_POWER_HARDWIRED @SDL_POWER_HARDWIRED@
#cmakedefine SDL_POWER_VITA @SDL_POWER_VITA@
+#cmakedefine SDL_POWER_PSP @SDL_POWER_PSP@
/* Enable system filesystem support */
#cmakedefine SDL_FILESYSTEM_ANDROID @SDL_FILESYSTEM_ANDROID@
diff --git a/include/SDL_config_psp.h b/include/SDL_config_psp.h
index 56d1ad6813b..cdd85030afb 100644
--- a/include/SDL_config_psp.h
+++ b/include/SDL_config_psp.h
@@ -132,7 +132,7 @@
#define SDL_THREAD_PSP 1
/* Enable the PSP timer support (src/timer/psp/\*.c) */
-#define SDL_TIMERS_PSP 1
+#define SDL_TIMER_PSP 1
/* Enable the PSP joystick driver (src/joystick/psp/\*.c) */
#define SDL_JOYSTICK_PSP 1
diff --git a/src/timer/psp/SDL_systimer.c b/src/timer/psp/SDL_systimer.c
index 1125d38f703..e2483f0dc57 100644
--- a/src/timer/psp/SDL_systimer.c
+++ b/src/timer/psp/SDL_systimer.c
@@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"
-#ifdef SDL_TIMERS_PSP
+#ifdef SDL_TIMER_PSP
#include "SDL_thread.h"
#include "SDL_timer.h"
@@ -84,7 +84,7 @@ void SDL_Delay(Uint32 ms)
sceKernelDelayThreadCB(ms * 1000);
}
-#endif /* SDL_TIMERS_PSP */
+#endif /* SDL_TIMER_PSP */
/* vim: ts=4 sw=4
*/