Set SDL_MAIN_AVAILABLE for all platforms

This commit is contained in:
Sam Lantinga
2025-11-30 10:23:48 -08:00
parent 778f70c906
commit 1c46c8a3dc
2 changed files with 21 additions and 8 deletions
+12 -5
View File
@@ -167,12 +167,10 @@
*/ */
#define SDL_MAIN_NEEDED #define SDL_MAIN_NEEDED
#elif defined(SDL_PLATFORM_IOS) #elif defined(SDL_PLATFORM_IOS) || defined(SDL_PLATFORM_TVOS)
/* On iOS SDL provides a main function that creates an application delegate /* On iOS and tvOS SDL provides a main function that creates an application delegate and starts the application run loop.
and starts the iOS application run loop.
To use it, just #include SDL_main.h in the source file that contains your To use it, just #include <SDL3/SDL_main.h> in the source file that contains your main() function.
main() function.
See src/video/uikit/SDL_uikitappdelegate.m for more details. See src/video/uikit/SDL_uikitappdelegate.m for more details.
*/ */
@@ -230,6 +228,15 @@
*/ */
#define SDL_MAIN_AVAILABLE #define SDL_MAIN_AVAILABLE
#else
/*
This platform SDL provides a main function that sets up the main
thread and calls your main function.
If you provide this yourself, you may define SDL_MAIN_HANDLED
*/
#define SDL_MAIN_AVAILABLE
#endif #endif
#endif /* SDL_MAIN_HANDLED */ #endif /* SDL_MAIN_HANDLED */
+9 -3
View File
@@ -21,9 +21,15 @@
#include "SDL_internal.h" #include "SDL_internal.h"
#include "SDL_main_callbacks.h" #include "SDL_main_callbacks.h"
/* Most platforms that use/need SDL_main have their own SDL_RunApp() implementation. // Add your platform here if you define a custom SDL_RunApp() implementation
* If not, you can special case it here by appending || defined(__YOUR_PLATFORM__) */ #if !defined(SDL_PLATFORM_WIN32) && \
#if ( !defined(SDL_MAIN_NEEDED) && !defined(SDL_MAIN_AVAILABLE) ) || defined(SDL_PLATFORM_ANDROID) !defined(SDL_PLATFORM_GDK) && \
!defined(SDL_PLATFORM_IOS) && \
!defined(SDL_PLATFORM_TVOS) && \
!defined(SDL_PLATFORM_EMSCRIPTEN) && \
!defined(SDL_PLATFORM_PSP) && \
!defined(SDL_PLATFORM_PS2) && \
!defined(SDL_PLATFORM_3DS)
int SDL_RunApp(int argc, char *argv[], SDL_main_func mainFunction, void * reserved) int SDL_RunApp(int argc, char *argv[], SDL_main_func mainFunction, void * reserved)
{ {