Here is the list of preprocessor symbols used in the wxWindows source grouped by category (and sorted by alphabetical order inside each category).
| __WINDOWS__ | any Windows, yom may also use __WXMSW__ |
| __WIN16__ | Win16 API (not supported since wxWindows 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 wxWindows 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 |
| __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 wxWindows 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 wxWindows internally (defined as 1 when building wxBase code, either as a standalone library or as part of the monolithic wxWindows library, defined as 0 when building GUI library only) |