Go to the documentation of this file.
28#ifndef SDL_platform_defines_h_
29#define SDL_platform_defines_h_
38#define SDL_PLATFORM_AIX 1
48#define SDL_PLATFORM_HAIKU 1
51#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__)
58#define SDL_PLATFORM_BSDI 1
61#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
68#define SDL_PLATFORM_FREEBSD 1
71#if defined(hpux) || defined(__hpux) || defined(__hpux__)
78#define SDL_PLATFORM_HPUX 1
81#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE)
88#define SDL_PLATFORM_IRIX 1
91#if (defined(linux) || defined(__linux) || defined(__linux__))
101#define SDL_PLATFORM_LINUX 1
104#if defined(ANDROID) || defined(__ANDROID__)
111#define SDL_PLATFORM_ANDROID 1
112#undef SDL_PLATFORM_LINUX
123#define SDL_PLATFORM_OPENHARMONY 1
124#undef SDL_PLATFORM_LINUX
127#if defined(__unix__) || defined(__unix) || defined(unix)
138#define SDL_PLATFORM_UNIX 1
155#define SDL_PLATFORM_APPLE 1
158#include <AvailabilityMacros.h>
159#ifndef __has_extension
160 #define __has_extension(x) 0
161 #include <TargetConditionals.h>
162 #undef __has_extension
164 #include <TargetConditionals.h>
171#ifndef TARGET_OS_MACCATALYST
172 #define TARGET_OS_MACCATALYST 0
175 #define TARGET_OS_IOS 0
177#ifndef TARGET_OS_IPHONE
178 #define TARGET_OS_IPHONE 0
181 #define TARGET_OS_TV 0
183#ifndef TARGET_OS_SIMULATOR
184 #define TARGET_OS_SIMULATOR 0
186#ifndef TARGET_OS_VISION
187 #define TARGET_OS_VISION 0
199#define SDL_PLATFORM_TVOS 1
211#define SDL_PLATFORM_VISIONOS 1
223#define SDL_PLATFORM_IOS 1
234#define SDL_PLATFORM_MACOS 1
236#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
237 #error SDL for macOS only supports deploying on 10.12 and above.
249#define SDL_PLATFORM_EMSCRIPTEN 1
259#define SDL_PLATFORM_NETBSD 1
269#define SDL_PLATFORM_OPENBSD 1
272#if defined(__OS2__) || defined(__EMX__)
279#define SDL_PLATFORM_OS2 1
282#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE)
289#define SDL_PLATFORM_OSF 1
292#if defined(__QNXNTO__) || defined(__QNX__)
299#define SDL_PLATFORM_QNXNTO 1
302#if defined(riscos) || defined(__riscos) || defined(__riscos__)
309#define SDL_PLATFORM_RISCOS 1
312#if defined(__sun) && defined(__SVR4)
319#define SDL_PLATFORM_SOLARIS 1
322#if defined(__CYGWIN__)
329#define SDL_PLATFORM_CYGWIN 1
332#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(__NGAGE__)
348#define SDL_PLATFORM_WINDOWS 1
351#if defined(_MSC_VER) && defined(__has_include)
352 #if __has_include(<winapifamily.h>)
353 #define HAVE_WINAPIFAMILY_H 1
355 #define HAVE_WINAPIFAMILY_H 0
359#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_)
360 #define HAVE_WINAPIFAMILY_H 1
362 #define HAVE_WINAPIFAMILY_H 0
365#if HAVE_WINAPIFAMILY_H
366 #include <winapifamily.h>
367 #define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP))
369 #define WINAPI_FAMILY_WINRT 0
372#ifdef SDL_WIKI_DOCUMENTATION_SECTION
379#define SDL_WINAPI_FAMILY_PHONE (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
381#elif defined(HAVE_WINAPIFAMILY_H) && HAVE_WINAPIFAMILY_H
382 #define SDL_WINAPI_FAMILY_PHONE (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
384 #define SDL_WINAPI_FAMILY_PHONE 0
387#if WINAPI_FAMILY_WINRT
388#error Windows RT/UWP is no longer supported in SDL
390#elif defined(_GAMING_DESKTOP)
398#define SDL_PLATFORM_WINGDK 1
400#elif defined(_GAMING_XBOX_XBOXONE)
407#define SDL_PLATFORM_XBOXONE 1
409#elif defined(_GAMING_XBOX_SCARLETT)
416#define SDL_PLATFORM_XBOXSERIES 1
429#define SDL_PLATFORM_WIN32 1
436#if defined(SDL_PLATFORM_WINGDK) || defined(SDL_PLATFORM_XBOXONE) || defined(SDL_PLATFORM_XBOXSERIES)
444#define SDL_PLATFORM_GDK 1
447#if defined(__PSP__) || defined(__psp__)
454#define SDL_PLATFORM_PSP 1
457#if defined(__PS2__) || defined(PS2)
465#define SDL_PLATFORM_PS2 1
468#if defined(__vita__) || defined(__psp2__)
475#define SDL_PLATFORM_VITA 1
485#define SDL_PLATFORM_3DS 1
496#define SDL_PLATFORM_NGAGE 1
506#define SDL_PLATFORM_DOS 1
516#define SDL_PLATFORM_HURD 1