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) |