X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e871ad03970d65f7bb29d6eea13263bdfdf2299..da75a14e72a6455df1f580afd694070c4467449e:/include/wx/chkconf.h diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index 613c97068a..17016e4ba1 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -1,33 +1,41 @@ -/** -* Name: wx/chkconf.h -* Purpose: check the config settings for consistency -* Author: Vadim Zeitlin -* Modified by: -* Created: 09.08.00 -* RCS-ID: $Id$ -* Copyright: (c) 2000 Vadim Zeitlin -* Licence: wxWindows licence -*/ +/* + * Name: wx/chkconf.h + * Purpose: check the config settings for consistency + * Author: Vadim Zeitlin + * Modified by: + * Created: 09.08.00 + * RCS-ID: $Id$ + * Copyright: (c) 2000 Vadim Zeitlin + * Licence: wxWindows licence + */ /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ /* - Compiler-specific checking. + Platform-specific checking. */ -#if defined(__PALMOS__) +#if defined(__WXPALMOS__) # include "wx/palmos/chkconf.h" +#elif defined(__WXWINCE__) +# include "wx/msw/wince/chkconf.h" #elif defined(__WXMSW__) # include "wx/msw/chkconf.h" #elif defined(__WXMAC__) # include "wx/mac/chkconf.h" +#elif defined(__OS2__) +# include "wx/os2/chkconf.h" +#elif defined(__WXMGL__) +# include "wx/mgl/chkconf.h" +#elif defined(__WXMOTIF__) +# include "wx/motif/chkconf.h" #endif /* this global setting determines what should we do if the setting FOO - requires BAR and BAR is not set: we can either silently define BAR - (default, recommended) or give an error and abort (mainly useful for - developers only) + requires BAR and BAR is not set: we can either silently unset FOO as well + (do this if you're trying to build the smallest possible library) or give an + error and abort (default as leads to least surprizing behaviour) */ #define wxABORT_ON_CONFIG_ERROR @@ -40,10 +48,41 @@ # define wxUSE_GUI 1 #endif /* !defined(wxUSE_GUI) */ +/* + If we're compiling without support for threads/exceptions we have to + disable the corresponding features. + */ +#ifdef wxNO_THREADS +# undef wxUSE_THREADS +# define wxUSE_THREADS 0 +#endif /* wxNO_THREADS */ + +#ifdef wxNO_EXCEPTIONS +# undef wxUSE_EXCEPTIONS +# define wxUSE_EXCEPTIONS 0 +#endif /* wxNO_EXCEPTIONS */ + +/* we also must disable exceptions if compiler doesn't support them */ +#if defined(_MSC_VER) && !defined(_CPPUNWIND) +# undef wxUSE_EXCEPTIONS +# define wxUSE_EXCEPTIONS 0 +#endif /* VC++ without exceptions support */ + + /* tests for non GUI features */ +#ifndef wxUSE_CRASHREPORT + /* this one is special: as currently it is Windows-only, don't force it + to be defined on other platforms */ +# if defined(wxABORT_ON_CONFIG_ERROR) && defined(__WXMSW__) +# error "wxUSE_CRASHREPORT must be defined." +# else +# define wxUSE_CRASHREPORT 0 +# endif +#endif /* !defined(wxUSE_CRASHREPORT) */ + #ifndef wxUSE_DYNLIB_CLASS # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_DYNLIB_CLASS must be defined." @@ -105,6 +144,14 @@ # endif #endif /* !defined(wxUSE_MIMETYPE) */ +#ifndef wxUSE_ON_FATAL_EXCEPTION +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_ON_FATAL_EXCEPTION must be defined." +# else +# define wxUSE_ON_FATAL_EXCEPTION 0 +# endif +#endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */ + #ifndef wxUSE_PROTOCOL # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_PROTOCOL must be defined." @@ -155,6 +202,14 @@ # endif #endif /* !defined(wxUSE_REGEX) */ +#ifndef wxUSE_STDPATHS +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_STDPATHS must be defined." +# else +# define wxUSE_STDPATHS 1 +# endif +#endif /* !defined(wxUSE_STDPATHS) */ + #ifndef wxUSE_XML # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_XML must be defined." @@ -341,6 +396,14 @@ # endif #endif /* !defined(wxUSE_DATAOBJ) */ +#ifndef wxUSE_DATEPICKCTRL +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_DATEPICKCTRL must be defined." +# else +# define wxUSE_DATEPICKCTRL 0 +# endif +#endif /* !defined(wxUSE_DATEPICKCTRL) */ + #ifndef wxUSE_DISPLAY # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_DISPLAY must be defined." @@ -768,6 +831,26 @@ check consistency of the settings */ +#if wxUSE_ARCHIVE_STREAMS +# if !wxUSE_DATETIME +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxArchive requires wxUSE_DATETIME" +# else +# undef wxUSE_ARCHIVE_STREAMS +# define wxUSE_ARCHIVE_STREAMS 0 +# endif +# endif +#endif /* wxUSE_ARCHIVE_STREAMS */ + +#if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION" +# else +# undef wxUSE_CRASHREPORT +# define wxUSE_CRASHREPORT 0 +# endif +#endif /* wxUSE_CRASHREPORT */ + #if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP # if !wxUSE_PROTOCOL # ifdef wxABORT_ON_CONFIG_ERROR @@ -866,6 +949,17 @@ # endif #endif /* wxUSE_MIMETYPE */ +#if wxUSE_ODBC +# if !wxUSE_DATETIME +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxODBC requires wxUSE_DATETIME" +# else +# undef wxUSE_ODBC +# define wxUSE_ODBC 0 +# endif +# endif +#endif /* wxUSE_ODBC */ + #if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER" @@ -884,27 +978,6 @@ # endif #endif /* wxUSE_TEXTFILE */ -#if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UNICODE_MSLU requires wxUSE_UNICODE" -# else -# undef wxUSE_UNICODE -# define wxUSE_UNICODE 1 -# endif -#endif /* wxUSE_UNICODE_MSLU */ - -/* ODBC and Unicode are now compatible */ - -#if 0 /* wxUSE_ODBC && wxUSE_UNICODE */ -# ifdef wxABORT_ON_CONFIG_ERROR - /* (ODBC classes aren't Unicode-compatible yet) */ -# error "wxUSE_ODBC can't be used with wxUSE_UNICODE" -# else -# undef wxUSE_ODBC -# define wxUSE_ODBC 0 -# endif -#endif /* wxUSE_ODBC */ - #if wxUSE_XML && !wxUSE_WCHAR_T # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_XML requires wxUSE_WCHAR_T" @@ -912,7 +985,7 @@ # undef wxUSE_XML # define wxUSE_XML 0 # endif -#endif /* wxUSE_UNICODE_MSLU */ +#endif /* wxUSE_XML */ #if !wxUSE_DYNLIB_CLASS # if wxUSE_DYNAMIC_LOADER @@ -924,6 +997,25 @@ # endif #endif /* wxUSE_DYNLIB_CLASS */ +#if wxUSE_ZIPSTREAM +# if !wxUSE_ZLIB +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxZip requires wxZlib" +# else +# undef wxUSE_ZLIB +# define wxUSE_ZLIB 1 +# endif +# endif +# if !wxUSE_ARCHIVE_STREAMS +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxZip requires wxArchive" +# else +# undef wxUSE_ARCHIVE_STREAMS +# define wxUSE_ARCHIVE_STREAMS 1 +# endif +# endif +#endif /* wxUSE_ZIPSTREAM */ + /* the rest of the tests is for the GUI settings only */ #if wxUSE_GUI @@ -1011,6 +1103,18 @@ # endif #endif /* wxUSE_CHOICEBOOK */ +/* don't attempt to use native status bar on the platforms not having it */ +#ifndef wxUSE_NATIVE_STATUSBAR +# define wxUSE_NATIVE_STATUSBAR 0 +#elif wxUSE_NATIVE_STATUSBAR +# if defined(__WXUNIVERSAL__) || !( defined(__WXMSW__) || \ + defined(__WXMAC__) || \ + defined(__WXPALMOS__) ) +# undef wxUSE_NATIVE_STATUSBAR +# define wxUSE_NATIVE_STATUSBAR 0 +# endif +#endif + /* wxUniv-specific dependencies */ #if defined(__WXUNIVERSAL__) # if (wxUSE_COMBOBOX || wxUSE_MENUS) && !wxUSE_POPUPWIN @@ -1090,80 +1194,6 @@ # endif #endif /* wxGTK && !wxUniv */ -/* wxMSW-specific dependencies */ -#ifdef __WXMSW__ -# ifndef wxUSE_UNICODE_MSLU -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UNICODE_MSLU must be defined." -# else -# define wxUSE_UNICODE_MSLU 0 -# endif -# endif /* wxUSE_UNICODE_MSLU */ -# ifndef wxUSE_UXTHEME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UXTHEME must be defined." -# else -# define wxUSE_UXTHEME 0 -# endif -# endif /* wxUSE_UXTHEME */ -# ifndef wxUSE_UXTHEME_AUTO -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UXTHEME_AUTO must be defined." -# else -# define wxUSE_UXTHEME_AUTO 0 -# endif -# endif /* wxUSE_UXTHEME_AUTO */ -# ifndef wxUSE_MS_HTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MS_HTML_HELP must be defined." -# else -# define wxUSE_MS_HTML_HELP 0 -# endif -# endif /* !defined(wxUSE_MS_HTML_HELP) */ -# ifndef wxUSE_DIALUP_MANAGER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DIALUP_MANAGER must be defined." -# else -# define wxUSE_DIALUP_MANAGER 0 -# endif -# endif /* !defined(wxUSE_DIALUP_MANAGER) */ - -# if !wxUSE_DYNAMIC_LOADER -# if wxUSE_MS_HTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER." -# else -# define wxUSE_DYNAMIC_LOADER 1 -# endif -# endif -# if wxUSE_DIALUP_MANAGER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER." -# else -# define wxUSE_DYNAMIC_LOADER 1 -# endif -# endif -# endif /* wxUSE_DYNAMIC_LOADER */ -#endif /* wxMSW */ - -/* wxMAC-specific dependencies */ -#ifdef __WXMAC__ -# if wxUSE_UNICODE -# if !TARGET_CARBON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UNICODE is only supported for Carbon Targets." -# else -# define wxUSE_UNICODE 0 -# endif -# endif -# endif -#endif /* wxMAC */ -/* wxMotif-specific dependencies */ -#if defined(__WXMOTIF__) && wxUSE_NOTEBOOK && !wxUSE_TAB_DIALOG -# undef wxUSE_TAB_DIALOG -# define wxUSE_TAB_DIALOG 1 -#endif - /* wxMGL-specific dependencies */ #ifdef __WXMGL__ # if !wxUSE_PALETTE @@ -1230,6 +1260,17 @@ # endif #endif /* wxUSE_CALENDARCTRL */ +#if wxUSE_DATEPICKCTRL +# if !wxUSE_DATETIME +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxDatePickerCtrl requires wxUSE_DATETIME" +# else +# undef wxUSE_DATETIME +# define wxUSE_DATETIME 1 +# endif +# endif +#endif /* wxUSE_DATEPICKCTRL */ + #if wxUSE_CHECKLISTBOX # if !wxUSE_LISTBOX # ifdef wxABORT_ON_CONFIG_ERROR @@ -1441,7 +1482,7 @@ # if !wxUSE_DOC_VIEW_ARCHITECTURE # ifdef wxABORT_ON_CONFIG_ERROR -# error "MDI requires wxUSE_DOC_VIEW_ARCHITECTURE" +# error "wxUSE_MDI_ARCHITECTURE requires wxUSE_DOC_VIEW_ARCHITECTURE" # else # undef wxUSE_DOC_VIEW_ARCHITECTURE # define wxUSE_DOC_VIEW_ARCHITECTURE 1 @@ -1452,7 +1493,7 @@ #if !wxUSE_FILEDLG # if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP # ifdef wxABORT_ON_CONFIG_ERROR -# error "wxFileDialog must be compiled as well" +# error "wxUSE_FILEDLG is required by wxUSE_DOC_VIEW_ARCHITECTURE and wxUSE_WXHTML_HELP!" # else # undef wxUSE_FILEDLG # define wxUSE_FILEDLG 1 @@ -1460,9 +1501,21 @@ # endif #endif /* wxUSE_FILEDLG */ +#if !wxUSE_GAUGE || !wxUSE_BUTTON +# if wxUSE_PROGRESSDLG && !defined(__WXPALMOS__) +# ifdef wxABORT_ON_CONFIG_ERROR +# error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON" +# else +# undef wxUSE_GAUGE +# undef wxUSE_BUTTON +# define wxUSE_GAUGE 1 +# define wxUSE_BUTTON 1 +# endif +# endif +#endif /* !wxUSE_GAUGE */ + #if !wxUSE_BUTTON -# if wxUSE_PROGRESSDLG || \ - wxUSE_FONTDLG || \ +# if wxUSE_FONTDLG || \ wxUSE_FILEDLG || \ wxUSE_CHOICEDLG || \ wxUSE_NUMBERDLG || \ @@ -1477,7 +1530,7 @@ # define wxUSE_BUTTON 1 # endif # endif -#endif /* wxUSE_PROGRESSDLG */ +#endif /* !wxUSE_BUTTON */ #if !wxUSE_TOOLBAR # if wxUSE_TOOLBAR_NATIVE @@ -1521,13 +1574,19 @@ #endif #if wxUSE_RADIOBOX -# if !wxUSE_RADIOBTN || !wxUSE_STATBOX +# if !wxUSE_RADIOBTN # ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN and wxUSE_STATBOX" +# error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN" # else # undef wxUSE_RADIOBTN -# undef wxUSE_STATBOX # define wxUSE_RADIOBTN 1 +# endif +# endif +# if !wxUSE_STATBOX && !defined(__WXPALMOS__) +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_RADIOBOX requires wxUSE_STATBOX" +# else +# undef wxUSE_STATBOX # define wxUSE_STATBOX 1 # endif # endif @@ -1557,17 +1616,6 @@ # endif #endif /* wxUSE_LOG_DIALOG */ -/* I wonder if we shouldn't just remove all occurrences of - wxUSE_DYNAMIC_CLASSES from the sources? */ -#if !defined(wxUSE_DYNAMIC_CLASSES) || !wxUSE_DYNAMIC_CLASSES -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DYNAMIC_CLASSES must be defined as 1" -# else -# undef wxUSE_DYNAMIC_CLASSES -# define wxUSE_DYNAMIC_CLASSES 1 -# endif -#endif /* wxUSE_DYNAMIC_CLASSES */ - #if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ # ifdef wxABORT_ON_CONFIG_ERROR # error "wxClipboard requires wxDataObject" @@ -1595,5 +1643,13 @@ # endif #endif /* wxUSE_XRC */ -#endif /* wxUSE_GUI */ +#if wxUSE_SOCKETS && !wxUSE_STOPWATCH +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_SOCKETS requires wxUSE_STOPWATCH" +# else +# undef wxUSE_SOCKETS +# define wxUSE_SOCKETS 0 +# endif +#endif /* wxUSE_SOCKETS */ +#endif /* wxUSE_GUI */