]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/chkconf.h
added wxprec.h
[wxWidgets.git] / include / wx / chkconf.h
index b3620c8eb81281a0b3792203e396d15cc665b2f0..c8b30802807c003c16d11ac98a0b4e4da6d2d51f 100644 (file)
@@ -6,19 +6,47 @@
  * Created:     09.08.00
  * RCS-ID:      $Id$
  * Copyright:   (c) 2000 Vadim Zeitlin <vadim@wxwindows.org>
- * Licence:     wxWindows license
+ * Licence:     wxWindows licence
  */
 
 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
 
 /*
-   this global setting determintes what should we do if the setting FOO
+   Compiler-specific checking.
+ */
+
+#if defined(__WXMSW__)
+#  include "wx/msw/chkconf.h"
+#elif defined(__WXMAC__)
+#  include "wx/mac/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
-   developpers only)
+   developers only)
  */
 #define wxABORT_ON_CONFIG_ERROR
 
+/*
+   global features
+ */
+
+/* GUI build by default */
+#if !defined(wxUSE_GUI)
+#   define wxUSE_GUI 1
+#endif /* !defined(wxUSE_GUI) */
+
+/* wxBase doesn't need compatibility settings as it's a new port */
+#if !wxUSE_GUI
+#   undef WXWIN_COMPATIBILITY
+#   undef WXWIN_COMPATIBILITY_2
+#   undef WXWIN_COMPATIBILITY_2_2
+#   define WXWIN_COMPATIBILITY 0
+#   define WXWIN_COMPATIBILITY_2 0
+#   define WXWIN_COMPATIBILITY_2_2 0
+#endif /* !wxUSE_GUI */
 
 /*
    tests for non GUI features
 #   endif
 #endif /* !defined(wxUSE_DYNLIB_CLASS) */
 
+#ifndef wxUSE_FILESYSTEM
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_FILESYSTEM must be defined."
+#   else
+#       define wxUSE_FILESYSTEM 0
+#   endif
+#endif /* !defined(wxUSE_FILESYSTEM) */
+
+/* don't give an error about this one yet, it's not fully implemented */
+#ifndef wxUSE_FSVOLUME
+#   define wxUSE_FSVOLUME 0
+#endif /* !defined(wxUSE_FSVOLUME) */
+
 #ifndef wxUSE_DYNAMIC_LOADER
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_DYNAMIC_LOADER must be defined."
 #   endif
 #endif /* !defined(wxUSE_MSGDLG) */
 
-#ifndef wxUSE_NEW_GRID
-#   ifdef wxABORT_ON_CONFIG_ERROR
-#       error "wxUSE_NEW_GRID must be defined."
-#   else
-#       define wxUSE_NEW_GRID 0
-#   endif
-#endif /* !defined(wxUSE_NEW_GRID) */
-
 #ifndef wxUSE_NOTEBOOK
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_NOTEBOOK must be defined."
 #   endif
 #endif /* !defined(wxUSE_TREECTRL) */
 
+#ifndef wxUSE_DISPLAY
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_DISPLAY must be defined."
+#   else
+#       define wxUSE_DISPLAY 0
+#   endif
+#endif /* !defined(wxUSE_TREECTRL) */
+
 #ifndef wxUSE_WXHTML_HELP
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_WXHTML_HELP must be defined."
 #   endif
 #endif /* wxUSE_PROTOCOL */
 
-/* non GUI settings */
-#if wxUSE_STOPWATCH
+/* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */
+#if wxUSE_HTML
+#   if !wxUSE_FILESYSTEM
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "wxHTML requires wxFileSystem"
+#       else
+#           undef wxUSE_FILESYSTEM
+#           define wxUSE_FILESYSTEM 1
+#       endif
+#   endif
+#endif /* wxUSE_HTML */
+
+#if wxUSE_FILESYSTEM
+#   if !wxUSE_STREAMS
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "wxUSE_FILESYSTEM requires wxUSE_STREAMS"
+#       else
+#           undef wxUSE_STREAMS
+#           define wxUSE_STREAMS 1
+#       endif
+#   endif
+#endif /* wxUSE_FILESYSTEM */
+
+#if wxUSE_FS_INET
+#   if !wxUSE_PROTOCOL
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "wxUSE_FS_INET requires wxUSE_PROTOCOL"
+#       else
+#           undef wxUSE_PROTOCOL
+#           define wxUSE_PROTOCOL 1
+#       endif
+#   endif
+#endif /* wxUSE_FS_INET */
+
+#if wxUSE_STOPWATCH || wxUSE_DATETIME
 #    if !wxUSE_LONGLONG
 #        ifdef wxABORT_ON_CONFIG_ERROR
-#            error "wxUSE_STOPWATCH requires wxUSE_LONGLONG"
+#            error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG"
 #        else
 #            undef wxUSE_LONGLONG
 #            define wxUSE_LONGLONG 1
 #   endif
 #endif /* wxUSE_UNICODE_MSLU */
 
+#if 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 */
+
 /* the rest of the tests is for the GUI settings only */
 #if wxUSE_GUI
 
     wxUSE_CHOICE || \
     wxUSE_GAUGE || \
     wxUSE_GRID || \
-    wxUSE_NEW_GRID || \
     wxUSE_LISTBOX || \
     wxUSE_LISTCTRL || \
     wxUSE_NOTEBOOK || \
 #   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
-#if defined(__WXMOTIF__) && wxUSE_TOGGLEBTN
-#  undef wxUSE_TOGGLEBTN
-#  define wxUSE_TOGGLEBTN 0
-#endif
+
+/* wxMGL-specific dependencies */
+#ifdef __WXMGL__
+#   if !wxUSE_PALETTE
+#       error "wxMGL requires wxUSE_PALETTE=1"
+#   endif
+#endif /* wxMGL */
 
 /* generic controls dependencies */
 #if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
 #           define wxUSE_COMBOBOX 1
 #       endif
 #   endif
+
+#   if !wxUSE_DATETIME
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "wxCalendarCtrl requires wxUSE_DATETIME"
+#       else
+#           undef wxUSE_DATETIME
+#           define wxUSE_DATETIME 1
+#       endif
+#   endif
 #endif /* wxUSE_CALENDARCTRL */
 
 #if wxUSE_CHECKLISTBOX
 #endif /* wxUSE_RADIOBTN */
 
 #if wxUSE_WXHTML_HELP
-#   if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX
+#   if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK
 #       ifdef wxABORT_ON_CONFIG_ERROR
 #           error "Built in help controller can't be compiled"
 #       else
 #           define wxUSE_HTML 1
 #           undef wxUSE_COMBOBOX
 #           define wxUSE_COMBOBOX 1
+#           undef wxUSE_NOTEBOOK
+#           define wxUSE_NOTEBOOK 1
 #       endif
 #   endif
 #endif /* wxUSE_WXHTML_HELP */
 
+#if wxUSE_DOC_VIEW_ARCHITECTURE
+#   if !wxUSE_MENUS
+#        ifdef wxABORT_ON_CONFIG_ERROR
+#            error "DocView requires wxUSE_MENUS"
+#        else
+#            undef wxUSE_MENUS
+#            define wxUSE_MENUS 1
+#        endif
+#   endif
+
+#   if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM
+#        ifdef wxABORT_ON_CONFIG_ERROR
+#            error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM"
+#        else
+#            undef wxUSE_STREAMS
+#            define wxUSE_STREAMS 1
+#        endif
+#   endif
+#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
+
 #if wxUSE_PRINTING_ARCHITECTURE
 #   if !wxUSE_COMBOBOX
 #       ifdef wxABORT_ON_CONFIG_ERROR
 #           define wxUSE_COMBOBOX 1
 #       endif
 #   endif
+
+#   if !wxUSE_DOC_VIEW_ARCHITECTURE
+#       ifdef wxABORT_ON_CONFIG_ERROR
+#           error "Print architecture requires wxUSE_DOC_VIEW_ARCHITECTURE"
+#       else
+#           undef wxUSE_DOC_VIEW_ARCHITECTURE
+#           define wxUSE_DOC_VIEW_ARCHITECTURE 1
+#       endif
+#   endif
 #endif /* wxUSE_PRINTING_ARCHITECTURE */
 
-#if wxUSE_DOC_VIEW_ARCHITECTURE
-#   if !wxUSE_MENUS
+#if wxUSE_MDI_ARCHITECTURE
+#   if !wxUSE_DOC_VIEW_ARCHITECTURE
 #        ifdef wxABORT_ON_CONFIG_ERROR
-#            error "DocView requires wxUSE_MENUS"
+#            error "MDI requires wxUSE_DOC_VIEW_ARCHITECTURE"
 #        else
-#            undef wxUSE_MENUS
-#            define wxUSE_MENUS 1
+#            undef wxUSE_DOC_VIEW_ARCHITECTURE
+#            define wxUSE_DOC_VIEW_ARCHITECTURE 1
 #        endif
 #   endif
-#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
+#endif /* wxUSE_MDI_ARCHITECTURE */
 
 #if !wxUSE_FILEDLG
 #   if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
 #   endif
 #endif /* wxUSE_FILEDLG */
 
+#if !wxUSE_TOOLBAR
+#   if wxUSE_TOOLBAR_NATIVE
+#        ifdef wxABORT_ON_CONFIG_ERROR
+#            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1"
+#        else
+#            undef wxUSE_TOOLBAR_NATIVE
+#            define wxUSE_TOOLBAR_NATIVE 0
+#        endif
+#   endif
+
+#   if wxUSE_TOOLBAR_SIMPLE
+#        ifdef wxABORT_ON_CONFIG_ERROR
+#            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_SIMPLE is set to 1"
+#        else
+#            undef wxUSE_TOOLBAR_SIMPLE
+#            define wxUSE_TOOLBAR_SIMPLE 0
+#        endif
+#   endif
+#endif
+
 #if !wxUSE_IMAGLIST
 #   if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
 #       ifdef wxABORT_ON_CONFIG_ERROR
 #   endif
 #endif /* wxUSE_CLIPBOARD */
 
+#if wxUSE_WX_RESOURCES && !wxUSE_PROLOGIO
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxr resources require PrologIO"
+#   else
+#       undef wxUSE_PROLOGIO
+#       define wxUSE_PROLOGIO 1
+#   endif
+#endif /* wxUSE_WX_RESOURCES */
+
 #endif /* wxUSE_GUI */