Here is the list of preprocessor symbols used in the wxWidgets source grouped by category (and sorted by alphabetical order inside each category).
GUI system
Operating systems
Hardware architectures (CPU)
Hardware type
Compilers
Miscellaneous
__WINDOWS__ | any Windows, yom may also use __WXMSW__ |
__WIN16__ | Win16 API (not supported since wxWidgets 2.6) |
__WIN32__ | Win32 API |
__WIN95__ | Windows 95 or NT 4.0 and above system (not NT 3.5x) |
__WXBASE__ | Only wxBase, no GUI features |
__WXWINCE__ | Windows CE |
__WXGTK__ | GTK+ |
__WXGTK12__ | GTK+ 1.2 or higher |
__WXGTK20__ | GTK+ 2.0 or higher |
__WXMOTIF__ | Motif |
__WXMOTIF20__ | Motif 2.0 or higher |
__WXMAC__ | Mac OS whether Classic (Mac OS 8/9 TARGET_CARBON == 0) or Carbon (including Mac OS X TARGET_CARBON == 1) |
__WXMGL__ | SciTech Soft MGL (__WXUNIVERSAL__ will be also defined) |
__WXMSW__ | Any Windows |
__WXOS2__ | Identical to __WXPM__ |
__WXPM__ | OS/2 native Presentation Manager |
__WXSTUBS__ | Stubbed version ('template' wxWin implementation) |
__WXXT__ | Xt; mutually exclusive with WX_MOTIF, not implemented in wxWidgets 2.x |
__WXX11__ | wxX11 (__WXUNIVERSAL__ will be also defined) |
__WXWINE__ | WINE (i.e. WIN32 on Unix) |
__WXUNIVERSAL__ | wxUniversal port, always defined in addition to one of the symbols above so this should be tested first. |
__X__ | any X11-based GUI toolkit except GTK+ |
In fact, they should better all start with __WX instead of __ only, so please start any new defines with __WX.
__APPLE__ | any Mac OS version |
__AIX__ | AIX |
__BSD__ | Any *BSD system |
__CYGWIN__ | Cygwin: Unix on Win32 |
__DARWIN__ | Mac OS X using the BSD Unix C library (as opposed to using the Metrowerks MSL C/C++ library) |
__DATA_GENERAL__ | DG-UX |
__DOS_GENERAL__ | DOS (used with wxMGL only) |
__FREEBSD__ | FreeBSD |
__HPUX__ | HP-UX (Unix) |
__GNU__ | GNU Hurd |
__LINUX__ | Linux |
__MACH__ | Mach-O Architecture (Mac OS X only builds) |
__OSF__ | OSF/1 |
__SGI__ | IRIX |
__SOLARIS__ | Solaris |
__SUN__ | Any Sun |
__SUNOS__ | Sun OS |
__SVR4__ | SystemV R4 |
__SYSV__ | SystemV generic |
__ULTRIX__ | Ultrix |
__UNIX__ | any Unix |
__UNIX_LIKE__ | Unix, BeOS or VMS |
__VMS__ | VMS |
__WINDOWS__ | any Windows |
Note that not all of these symbols are always defined, it depends on the compiler used.
__ALPHA__ | DEC Alpha architecture |
__INTEL__ | Intel i386 or compatible |
__POWERPC__ | Motorola Power PC |
Combination of these symbols with GUI symbols describes real hardware (like __PDA__ && __WXWINCE__ == PocketPC devices).
__SMARTPHONE__ | Mobile devices with dialog capability through phone buttons and small display |
__PDA__ | Personal digital assistant usually with touch screen and middle sized screen |
__HANDHELD__ | Small enough but powerful computer |
__BORLANDC__ | Borland C++. The value of the macro corresponds to the compiler version: 500 is 5.0. |
__DJGPP__ | DJGPP |
__DIGITALMARS__ | Digital Mars |
__GNUG__ | Gnu C++ on any platform, see also wxCHECK_GCC_VERSION |
__GNUWIN32__ | Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION |
__MINGW32__ | MinGW |
__MWERKS__ | CodeWarrior MetroWerks compiler |
__SUNCC__ | Sun CC |
__SYMANTECC__ | Symantec C++ |
__VISAGECPP__ | IBM Visual Age (OS/2) |
__VISUALC__ | Microsoft Visual C++. The value of this macro corresponds to the compiler version: 1020 for 4.2 (the first supported version), 1100 for 5.0, 1200 for 6.0 and so on |
__XLC__ | AIX compiler |
__WATCOMC__ | Watcom C++. The value of this macro corresponds to the compiler version, 1100 is 11.0 and 1200 is OpenWatcom. |
_WIN32_WCE | Windows CE version |
__WXWINDOWS__ | always defined in wxWidgets applications, see also wxCHECK_VERSION |
__WXDEBUG__ | defined in debug mode, undefined in release mode |
wxUSE_XXX | if defined as 1, feature XXX is active (the symbols of this form are always defined, use #if and not #ifdef to test for them) |
wxUSE_GUI | this particular feature test macro is defined to 1 when compiling or using the library with the GUI features activated, if it is defined as 0, only wxBase is available. |
wxUSE_BASE | only used by wxWidgets internally (defined as 1 when building wxBase code, either as a standalone library or as part of the monolithic wxWidgets library, defined as 0 when building GUI library only) |