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

View File

@@ -167,12 +167,10 @@
*/
#define SDL_MAIN_NEEDED
#elif defined(SDL_PLATFORM_IOS)
/* On iOS SDL provides a main function that creates an application delegate
and starts the iOS application run loop.
#elif defined(SDL_PLATFORM_IOS) || defined(SDL_PLATFORM_TVOS)
/* On iOS and tvOS SDL provides a main function that creates an application delegate and starts the application run loop.
To use it, just #include SDL_main.h in the source file that contains your
main() function.
To use it, just #include <SDL3/SDL_main.h> in the source file that contains your main() function.
See src/video/uikit/SDL_uikitappdelegate.m for more details.
*/
@@ -230,6 +228,15 @@
*/
#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 /* SDL_MAIN_HANDLED */

View File

@@ -21,9 +21,15 @@
#include "SDL_internal.h"
#include "SDL_main_callbacks.h"
/* Most platforms that use/need SDL_main have their own SDL_RunApp() implementation.
* If not, you can special case it here by appending || defined(__YOUR_PLATFORM__) */
#if ( !defined(SDL_MAIN_NEEDED) && !defined(SDL_MAIN_AVAILABLE) ) || defined(SDL_PLATFORM_ANDROID)
// Add your platform here if you define a custom SDL_RunApp() implementation
#if !defined(SDL_PLATFORM_WIN32) && \
!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)
{