XTE_PLATFORM

Defined in header <xte/preproc/lang.hpp>

Macros for detecting the current platform. Definitions are compiler-dependent and might not be mutually exclusive.

Replace NAME with one of: AEGIS, AIX, AKAROS, AMIGAOS, AMIGAOS_POWERUP, AMIGAOS_WARPOS, AMIX, ANDROID, APPLE_II, APPLE_IIE, AROS, ASMJS, ATARI, ATARI_2600, ATARI_5200, ATARI_LYNX, ATARI_XL, BADA, BEOS, BLUE_GENE, BLUE_GENE_Q, BRIDGE_OS, BSD, BSD_OS, BSDI, CLOUDABI, CMB, CMB_500, CMB_600, COMMANDER_X16, COMMODORE_16, COMMODORE_64, COMMODORE_128, COMMODORE_PLUS_4, COMMODORE_VIC20, CONVEXOS, CPM, CYGWIN, DC_OSX, DG_UX, DOMAIN_OS, DRAGONFLY_BSD, DRIVERKIT, DYNIX, ECOS, EMSCRIPTEN, EMX, EPOC32_MARM, EPOC32_WINS, FREEBSD, FREERTOS, FUCHSIA, GEOS, GEOS_APPLE, GEOS_CMB, GNU_HURD, GNU_KFREEBSD, GNU_LINUX, GP32, HAIKU, HI_UX, HI_UX_MPP, HP_UX, ILLUMOS, INTEGRITY, INTERIX, IOS, IOS_SIMULATOR, IRIX, KALLISTI, LINUX, LUNIX, LYNXOS, MACCATALYST, MACINTOSH, MACINTOSH_DYLD, MIDNIGHTBSD, MINGW32, MINGW64, MINIX, MINT, MORPHOS, MP_RAS, MPE_IX, MS_DOS, NACL, NETBSD, NETWARE, NES, NEXT, NINTENDO_3DS, NINTENDO_64, NINTENDO_DS, NINTENDO_GAMECUBE, NINTENDO_SWITCH, NINTENDO_WII, NONSTOP, NUCLEUS_RTOS, NUTTX, OHIO_SCIENTIFIC_CHALLENGER_1P, OHOS, OPENBSD, OPENSERVER, ORIC_ATMOS, OS_2, OS_400, OS_9, OSE, PALM_OS, PDOS, PET, PHOENIX, PLAN_9, PNACL, PPCC, PSOS, QNX, RISCOS, RTEMS, RTTHREAD, SEGA_DREAMCAST, SIM6502, SIM65C02, SINIX, SKYOS, SOLARIS, SUNOS, SONY_PS, SONY_PS2, SONY_PS3, SONY_PS4, SONY_PS5, SONY_PSP, SONY_VITA, SORTIX, SUPERVISION, SYGWIN, SYLLABLE, SYM1, SYMBIAN, SYSTEM_V, SWLINUX, TELESTRAT, THREADX, TRU64, TV_OS, UC_OS_II, UCLINUX, ULTRIX, UNICOS, UNICOS_MP, UNIX, UNIX_SV, UNIXWARE, UTS, UWIN, VMS, VOS, VXWORKS, VISION_OS, WASI, WATCH_OS, WINDOWS, WINDOWS_CE, WINDOWS_DESKTOP, WINDOWS_GDK, WINDOWS_NT, WIND_U, XBOX, XBOX_360, XBOX_ONE, XBOX_SERIES, XENIX, Z, ZEPHYR, ZETA.


Definitions

#platform
#define XTE_PLATFORM_NAME /* boolean integer literal */
Detects the presence of an platform.

#major
#define XTE_PLATFORM_NAME_MAJOR /* integer literal */
Detects the major version of a platform.

#minor
#define XTE_PLATFORM_NAME_MINOR /* integer literal */
Detects the minor version of a platform.

#patch
#define XTE_PLATFORM_NAME_PATCH /* integer literal */
Detects the patch version of a platform.

#version
#define XTE_PLATFORM(NAME, OP, MAJOR, /* MINOR, PATCH */...) /* boolean expression */
OP must be <, <=, >, >=, ==, or !=. Allows up to two additional arguments for the minor and patch versions. Expands to an expression comparing a platform's version to the provided arguments.



Example

#if XTE_PLATFORM_LINUX
	yup
#else
	nop
#endif
Possible preprocessor output:
yup
[View in Compiler Explorer]