PageRenderTime 4ms CodeModel.GetById 3ms app.highlight 11ms RepoModel.GetById 2ms app.codeStats 0ms

/client/wxWidgets/wx/chkconf.h

https://bitbucket.org/proglove/tbmmorpg
C++ Header | 1687 lines | 1438 code | 185 blank | 64 comment | 148 complexity | c527d5624abd8d7913f8db301ecbaeef MD5 | raw file
   1/*
   2 * Name:        wx/chkconf.h
   3 * Purpose:     check the config settings for consistency
   4 * Author:      Vadim Zeitlin
   5 * Modified by:
   6 * Created:     09.08.00
   7 * RCS-ID:      $Id: chkconf.h,v 1.106 2005/06/06 00:05:56 VZ Exp $
   8 * Copyright:   (c) 2000 Vadim Zeitlin <vadim@wxwidgets.org>
   9 * Licence:     wxWindows licence
  10 */
  11
  12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
  13
  14/*
  15   Compiler-specific checking.
  16 */
  17
  18#if defined(__WXPALMOS__)
  19#  include "wx/palmos/chkconf.h"
  20#elif defined(__WXWINCE__)
  21#  include "wx/msw/wince/chkconf.h"
  22#elif defined(__WXMSW__)
  23#  include "wx/msw/chkconf.h"
  24#elif defined(__WXMAC__)
  25#  include "wx/mac/chkconf.h"
  26#elif defined(__WXMOTIF__)
  27#  include "wx/motif/chkconf.h"
  28#endif
  29
  30/*
  31   this global setting determines what should we do if the setting FOO
  32   requires BAR and BAR is not set: we can either silently define BAR
  33   (default, recommended) or give an error and abort (mainly useful for
  34   developers only)
  35 */
  36#define wxABORT_ON_CONFIG_ERROR
  37
  38/*
  39   global features
  40 */
  41
  42/* GUI build by default */
  43#if !defined(wxUSE_GUI)
  44#   define wxUSE_GUI 1
  45#endif /* !defined(wxUSE_GUI) */
  46
  47/*
  48    If we're compiling without support for threads/exceptions we have to
  49    disable the corresponding features.
  50 */
  51#ifdef wxNO_THREADS
  52#   undef wxUSE_THREADS
  53#   define wxUSE_THREADS 0
  54#endif /* wxNO_THREADS */
  55
  56#ifdef wxNO_EXCEPTIONS
  57#   undef wxUSE_EXCEPTIONS
  58#   define wxUSE_EXCEPTIONS 0
  59#endif /* wxNO_EXCEPTIONS */
  60
  61/* we also must disable exceptions if compiler doesn't support them */
  62#if defined(_MSC_VER) && !defined(_CPPUNWIND)
  63#   undef wxUSE_EXCEPTIONS
  64#   define wxUSE_EXCEPTIONS 0
  65#endif /* VC++ without exceptions support */
  66
  67
  68/*
  69   tests for non GUI features
  70 */
  71
  72#ifndef wxUSE_CRASHREPORT
  73    /* this one is special: as currently it is Windows-only, don't force it
  74       to be defined on other platforms */
  75#   if defined(wxABORT_ON_CONFIG_ERROR) && defined(__WXMSW__)
  76#       error "wxUSE_CRASHREPORT must be defined."
  77#   else
  78#       define wxUSE_CRASHREPORT 0
  79#   endif
  80#endif /* !defined(wxUSE_CRASHREPORT) */
  81
  82#ifndef wxUSE_DYNLIB_CLASS
  83#   ifdef wxABORT_ON_CONFIG_ERROR
  84#       error "wxUSE_DYNLIB_CLASS must be defined."
  85#   else
  86#       define wxUSE_DYNLIB_CLASS 0
  87#   endif
  88#endif /* !defined(wxUSE_DYNLIB_CLASS) */
  89
  90#ifndef wxUSE_EXCEPTIONS
  91#   ifdef wxABORT_ON_CONFIG_ERROR
  92#       error "wxUSE_EXCEPTIONS must be defined."
  93#   else
  94#       define wxUSE_EXCEPTIONS 0
  95#   endif
  96#endif /* !defined(wxUSE_EXCEPTIONS) */
  97
  98#ifndef wxUSE_FILESYSTEM
  99#   ifdef wxABORT_ON_CONFIG_ERROR
 100#       error "wxUSE_FILESYSTEM must be defined."
 101#   else
 102#       define wxUSE_FILESYSTEM 0
 103#   endif
 104#endif /* !defined(wxUSE_FILESYSTEM) */
 105
 106/* don't give an error about this one yet, it's not fully implemented */
 107#ifndef wxUSE_FSVOLUME
 108#   define wxUSE_FSVOLUME 0
 109#endif /* !defined(wxUSE_FSVOLUME) */
 110
 111#ifndef wxUSE_DYNAMIC_LOADER
 112#   ifdef wxABORT_ON_CONFIG_ERROR
 113#       error "wxUSE_DYNAMIC_LOADER must be defined."
 114#   else
 115#       define wxUSE_DYNAMIC_LOADER 0
 116#   endif
 117#endif /* !defined(wxUSE_DYNAMIC_LOADER) */
 118
 119#ifndef wxUSE_LOG
 120#   ifdef wxABORT_ON_CONFIG_ERROR
 121#       error "wxUSE_LOG must be defined."
 122#   else
 123#       define wxUSE_LOG 0
 124#   endif
 125#endif /* !defined(wxUSE_LOG) */
 126
 127#ifndef wxUSE_LONGLONG
 128#   ifdef wxABORT_ON_CONFIG_ERROR
 129#       error "wxUSE_LONGLONG must be defined."
 130#   else
 131#       define wxUSE_LONGLONG 0
 132#   endif
 133#endif /* !defined(wxUSE_LONGLONG) */
 134
 135#ifndef wxUSE_MIMETYPE
 136#   ifdef wxABORT_ON_CONFIG_ERROR
 137#       error "wxUSE_MIMETYPE must be defined."
 138#   else
 139#       define wxUSE_MIMETYPE 0
 140#   endif
 141#endif /* !defined(wxUSE_MIMETYPE) */
 142
 143#ifndef wxUSE_ON_FATAL_EXCEPTION
 144#   ifdef wxABORT_ON_CONFIG_ERROR
 145#       error "wxUSE_ON_FATAL_EXCEPTION must be defined."
 146#   else
 147#       define wxUSE_ON_FATAL_EXCEPTION 0
 148#   endif
 149#endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */
 150
 151#ifndef wxUSE_PROTOCOL
 152#   ifdef wxABORT_ON_CONFIG_ERROR
 153#       error "wxUSE_PROTOCOL must be defined."
 154#   else
 155#       define wxUSE_PROTOCOL 0
 156#   endif
 157#endif /* !defined(wxUSE_PROTOCOL) */
 158
 159/* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */
 160#if !wxUSE_PROTOCOL
 161#   undef wxUSE_PROTOCOL_HTTP
 162#   undef wxUSE_PROTOCOL_FTP
 163#   undef wxUSE_PROTOCOL_FILE
 164#   define wxUSE_PROTOCOL_HTTP 0
 165#   define wxUSE_PROTOCOL_FTP 0
 166#   define wxUSE_PROTOCOL_FILE 0
 167#endif /* wxUSE_PROTOCOL */
 168
 169#ifndef wxUSE_PROTOCOL_HTTP
 170#   ifdef wxABORT_ON_CONFIG_ERROR
 171#       error "wxUSE_PROTOCOL_HTTP must be defined."
 172#   else
 173#       define wxUSE_PROTOCOL_HTTP 0
 174#   endif
 175#endif /* !defined(wxUSE_PROTOCOL_HTTP) */
 176
 177#ifndef wxUSE_PROTOCOL_FTP
 178#   ifdef wxABORT_ON_CONFIG_ERROR
 179#       error "wxUSE_PROTOCOL_FTP must be defined."
 180#   else
 181#       define wxUSE_PROTOCOL_FTP 0
 182#   endif
 183#endif /* !defined(wxUSE_PROTOCOL_FTP) */
 184
 185#ifndef wxUSE_PROTOCOL_FILE
 186#   ifdef wxABORT_ON_CONFIG_ERROR
 187#       error "wxUSE_PROTOCOL_FILE must be defined."
 188#   else
 189#       define wxUSE_PROTOCOL_FILE 0
 190#   endif
 191#endif /* !defined(wxUSE_PROTOCOL_FILE) */
 192
 193#ifndef wxUSE_REGEX
 194#   ifdef wxABORT_ON_CONFIG_ERROR
 195#       error "wxUSE_REGEX must be defined."
 196#   else
 197#       define wxUSE_REGEX 0
 198#   endif
 199#endif /* !defined(wxUSE_REGEX) */
 200
 201#ifndef wxUSE_STDPATHS
 202#   ifdef wxABORT_ON_CONFIG_ERROR
 203#       error "wxUSE_STDPATHS must be defined."
 204#   else
 205#       define wxUSE_STDPATHS 1
 206#   endif
 207#endif /* !defined(wxUSE_STDPATHS) */
 208
 209#ifndef wxUSE_XML
 210#   ifdef wxABORT_ON_CONFIG_ERROR
 211#       error "wxUSE_XML must be defined."
 212#   else
 213#       define wxUSE_XML 0
 214#   endif
 215#endif /* !defined(wxUSE_XML) */
 216
 217#ifndef wxUSE_SOCKETS
 218#   ifdef wxABORT_ON_CONFIG_ERROR
 219#       error "wxUSE_SOCKETS must be defined."
 220#   else
 221#       define wxUSE_SOCKETS 0
 222#   endif
 223#endif /* !defined(wxUSE_SOCKETS) */
 224
 225#ifndef wxUSE_STREAMS
 226#   ifdef wxABORT_ON_CONFIG_ERROR
 227#       error "wxUSE_STREAMS must be defined."
 228#   else
 229#       define wxUSE_STREAMS 0
 230#   endif
 231#endif /* !defined(wxUSE_STREAMS) */
 232
 233#ifndef wxUSE_STOPWATCH
 234#   ifdef wxABORT_ON_CONFIG_ERROR
 235#       error "wxUSE_STOPWATCH must be defined."
 236#   else
 237#       define wxUSE_STOPWATCH 0
 238#   endif
 239#endif /* !defined(wxUSE_STOPWATCH) */
 240
 241#ifndef wxUSE_TEXTBUFFER
 242#   ifdef wxABORT_ON_CONFIG_ERROR
 243#       error "wxUSE_TEXTBUFFER must be defined."
 244#   else
 245#       define wxUSE_TEXTBUFFER 0
 246#   endif
 247#endif /* !defined(wxUSE_TEXTBUFFER) */
 248
 249#ifndef wxUSE_TEXTFILE
 250#   ifdef wxABORT_ON_CONFIG_ERROR
 251#       error "wxUSE_TEXTFILE must be defined."
 252#   else
 253#       define wxUSE_TEXTFILE 0
 254#   endif
 255#endif /* !defined(wxUSE_TEXTFILE) */
 256
 257#ifndef wxUSE_UNICODE
 258#   ifdef wxABORT_ON_CONFIG_ERROR
 259#       error "wxUSE_UNICODE must be defined."
 260#   else
 261#       define wxUSE_UNICODE 0
 262#   endif
 263#endif /* !defined(wxUSE_UNICODE) */
 264
 265#ifndef wxUSE_URL
 266#   ifdef wxABORT_ON_CONFIG_ERROR
 267#       error "wxUSE_URL must be defined."
 268#   else
 269#       define wxUSE_URL 0
 270#   endif
 271#endif /* !defined(wxUSE_URL) */
 272
 273/*
 274   all these tests are for GUI only
 275 */
 276#if wxUSE_GUI
 277
 278/*
 279   all of the settings tested below must be defined or we'd get an error from
 280   preprocessor about invalid integer expression
 281 */
 282
 283#ifndef wxUSE_ACCEL
 284#   ifdef wxABORT_ON_CONFIG_ERROR
 285#       error "wxUSE_ACCEL must be defined."
 286#   else
 287#       define wxUSE_ACCEL 0
 288#   endif
 289#endif /* !defined(wxUSE_ACCEL) */
 290
 291#ifndef wxUSE_BMPBUTTON
 292#   ifdef wxABORT_ON_CONFIG_ERROR
 293#       error "wxUSE_BMPBUTTON must be defined."
 294#   else
 295#       define wxUSE_BMPBUTTON 0
 296#   endif
 297#endif /* !defined(wxUSE_BMPBUTTON) */
 298
 299#ifndef wxUSE_BUTTON
 300#   ifdef wxABORT_ON_CONFIG_ERROR
 301#       error "wxUSE_BUTTON must be defined."
 302#   else
 303#       define wxUSE_BUTTON 0
 304#   endif
 305#endif /* !defined(wxUSE_BUTTON) */
 306
 307#ifndef wxUSE_CALENDARCTRL
 308#   ifdef wxABORT_ON_CONFIG_ERROR
 309#       error "wxUSE_CALENDARCTRL must be defined."
 310#   else
 311#       define wxUSE_CALENDARCTRL 0
 312#   endif
 313#endif /* !defined(wxUSE_CALENDARCTRL) */
 314
 315#ifndef wxUSE_CARET
 316#   ifdef wxABORT_ON_CONFIG_ERROR
 317#       error "wxUSE_CARET must be defined."
 318#   else
 319#       define wxUSE_CARET 0
 320#   endif
 321#endif /* !defined(wxUSE_CARET) */
 322
 323#ifndef wxUSE_CHECKBOX
 324#   ifdef wxABORT_ON_CONFIG_ERROR
 325#       error "wxUSE_CHECKBOX must be defined."
 326#   else
 327#       define wxUSE_CHECKBOX 0
 328#   endif
 329#endif /* !defined(wxUSE_CHECKBOX) */
 330
 331#ifndef wxUSE_CHECKLISTBOX
 332#   ifdef wxABORT_ON_CONFIG_ERROR
 333#       error "wxUSE_CHECKLISTBOX must be defined."
 334#   else
 335#       define wxUSE_CHECKLISTBOX 0
 336#   endif
 337#endif /* !defined(wxUSE_CHECKLISTBOX) */
 338
 339#ifndef wxUSE_CHOICE
 340#   ifdef wxABORT_ON_CONFIG_ERROR
 341#       error "wxUSE_CHOICE must be defined."
 342#   else
 343#       define wxUSE_CHOICE 0
 344#   endif
 345#endif /* !defined(wxUSE_CHOICE) */
 346
 347#ifndef wxUSE_CHOICEBOOK
 348#   ifdef wxABORT_ON_CONFIG_ERROR
 349#       error "wxUSE_CHOICEBOOK must be defined."
 350#   else
 351#       define wxUSE_CHOICEBOOK 0
 352#   endif
 353#endif /* !defined(wxUSE_CHOICEBOOK) */
 354
 355#ifndef wxUSE_CHOICEDLG
 356#   ifdef wxABORT_ON_CONFIG_ERROR
 357#       error "wxUSE_CHOICEDLG must be defined."
 358#   else
 359#       define wxUSE_CHOICEDLG 0
 360#   endif
 361#endif /* !defined(wxUSE_CHOICEDLG) */
 362
 363#ifndef wxUSE_CLIPBOARD
 364#   ifdef wxABORT_ON_CONFIG_ERROR
 365#       error "wxUSE_CLIPBOARD must be defined."
 366#   else
 367#       define wxUSE_CLIPBOARD 0
 368#   endif
 369#endif /* !defined(wxUSE_CLIPBOARD) */
 370
 371#ifndef wxUSE_COLOURDLG
 372#   ifdef wxABORT_ON_CONFIG_ERROR
 373#       error "wxUSE_COLOURDLG must be defined."
 374#   else
 375#       define wxUSE_COLOURDLG 0
 376#   endif
 377#endif /* !defined(wxUSE_COLOURDLG) */
 378
 379#ifndef wxUSE_COMBOBOX
 380#   ifdef wxABORT_ON_CONFIG_ERROR
 381#       error "wxUSE_COMBOBOX must be defined."
 382#   else
 383#       define wxUSE_COMBOBOX 0
 384#   endif
 385#endif /* !defined(wxUSE_COMBOBOX) */
 386
 387#ifndef wxUSE_DATAOBJ
 388#   ifdef wxABORT_ON_CONFIG_ERROR
 389#       error "wxUSE_DATAOBJ must be defined."
 390#   else
 391#       define wxUSE_DATAOBJ 0
 392#   endif
 393#endif /* !defined(wxUSE_DATAOBJ) */
 394
 395#ifndef wxUSE_DATEPICKCTRL
 396#   ifdef wxABORT_ON_CONFIG_ERROR
 397#       error "wxUSE_DATEPICKCTRL must be defined."
 398#   else
 399#       define wxUSE_DATEPICKCTRL 0
 400#   endif
 401#endif /* !defined(wxUSE_DATEPICKCTRL) */
 402
 403#ifndef wxUSE_DISPLAY
 404#   ifdef wxABORT_ON_CONFIG_ERROR
 405#       error "wxUSE_DISPLAY must be defined."
 406#   else
 407#       define wxUSE_DISPLAY 0
 408#   endif
 409#endif /* !defined(wxUSE_DISPLAY) */
 410
 411#ifndef wxUSE_DOC_VIEW_ARCHITECTURE
 412#   ifdef wxABORT_ON_CONFIG_ERROR
 413#       error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined."
 414#   else
 415#       define wxUSE_DOC_VIEW_ARCHITECTURE 0
 416#   endif
 417#endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */
 418
 419#ifndef wxUSE_FILEDLG
 420#   ifdef wxABORT_ON_CONFIG_ERROR
 421#       error "wxUSE_FILEDLG must be defined."
 422#   else
 423#       define wxUSE_FILEDLG 0
 424#   endif
 425#endif /* !defined(wxUSE_FILEDLG) */
 426
 427#ifndef wxUSE_FONTDLG
 428#   ifdef wxABORT_ON_CONFIG_ERROR
 429#       error "wxUSE_FONTDLG must be defined."
 430#   else
 431#       define wxUSE_FONTDLG 0
 432#   endif
 433#endif /* !defined(wxUSE_FONTDLG) */
 434
 435#ifndef wxUSE_FONTMAP
 436#   ifdef wxABORT_ON_CONFIG_ERROR
 437#       error "wxUSE_FONTMAP must be defined."
 438#   else
 439#       define wxUSE_FONTMAP 0
 440#   endif
 441#endif /* !defined(wxUSE_FONTMAP) */
 442
 443#ifndef wxUSE_GAUGE
 444#   ifdef wxABORT_ON_CONFIG_ERROR
 445#       error "wxUSE_GAUGE must be defined."
 446#   else
 447#       define wxUSE_GAUGE 0
 448#   endif
 449#endif /* !defined(wxUSE_GAUGE) */
 450
 451#ifndef wxUSE_GRID
 452#   ifdef wxABORT_ON_CONFIG_ERROR
 453#       error "wxUSE_GRID must be defined."
 454#   else
 455#       define wxUSE_GRID 0
 456#   endif
 457#endif /* !defined(wxUSE_GRID) */
 458
 459#ifndef wxUSE_HELP
 460#   ifdef wxABORT_ON_CONFIG_ERROR
 461#       error "wxUSE_HELP must be defined."
 462#   else
 463#       define wxUSE_HELP 0
 464#   endif
 465#endif /* !defined(wxUSE_HELP) */
 466
 467#ifndef wxUSE_HTML
 468#   ifdef wxABORT_ON_CONFIG_ERROR
 469#       error "wxUSE_HTML must be defined."
 470#   else
 471#       define wxUSE_HTML 0
 472#   endif
 473#endif /* !defined(wxUSE_HTML) */
 474
 475#ifndef wxUSE_XRC
 476#   ifdef wxABORT_ON_CONFIG_ERROR
 477#       error "wxUSE_XRC must be defined."
 478#   else
 479#       define wxUSE_XRC 0
 480#   endif
 481#endif /* !defined(wxUSE_XRC) */
 482
 483#ifndef wxUSE_LIBMSPACK
 484#   ifndef __UNIX__
 485        /* set to 0 on platforms that don't have libmspack */
 486#       define wxUSE_LIBMSPACK 0
 487#   else
 488#       ifdef wxABORT_ON_CONFIG_ERROR
 489#           error "wxUSE_LIBMSPACK must be defined."
 490#       else
 491#           define wxUSE_LIBMSPACK 0
 492#       endif
 493#   endif
 494#endif /* !defined(wxUSE_LIBMSPACK) */
 495
 496#ifndef wxUSE_ICO_CUR
 497#   ifdef wxABORT_ON_CONFIG_ERROR
 498#       error "wxUSE_ICO_CUR must be defined."
 499#   else
 500#       define wxUSE_ICO_CUR 0
 501#   endif
 502#endif /* !defined(wxUSE_ICO_CUR) */
 503
 504#ifndef wxUSE_IFF
 505#   ifdef wxABORT_ON_CONFIG_ERROR
 506#       error "wxUSE_IFF must be defined."
 507#   else
 508#       define wxUSE_IFF 0
 509#   endif
 510#endif /* !defined(wxUSE_IFF) */
 511
 512#ifndef wxUSE_IMAGLIST
 513#   ifdef wxABORT_ON_CONFIG_ERROR
 514#       error "wxUSE_IMAGLIST must be defined."
 515#   else
 516#       define wxUSE_IMAGLIST 0
 517#   endif
 518#endif /* !defined(wxUSE_IMAGLIST) */
 519
 520#ifndef wxUSE_JOYSTICK
 521#   ifdef wxABORT_ON_CONFIG_ERROR
 522#       error "wxUSE_JOYSTICK must be defined."
 523#   else
 524#       define wxUSE_JOYSTICK 0
 525#   endif
 526#endif /* !defined(wxUSE_JOYSTICK) */
 527
 528#ifndef wxUSE_LISTBOOK
 529#   ifdef wxABORT_ON_CONFIG_ERROR
 530#       error "wxUSE_LISTBOOK must be defined."
 531#   else
 532#       define wxUSE_LISTBOOK 0
 533#   endif
 534#endif /* !defined(wxUSE_LISTBOOK) */
 535
 536#ifndef wxUSE_LISTBOX
 537#   ifdef wxABORT_ON_CONFIG_ERROR
 538#       error "wxUSE_LISTBOX must be defined."
 539#   else
 540#       define wxUSE_LISTBOX 0
 541#   endif
 542#endif /* !defined(wxUSE_LISTBOX) */
 543
 544#ifndef wxUSE_LISTCTRL
 545#   ifdef wxABORT_ON_CONFIG_ERROR
 546#       error "wxUSE_LISTCTRL must be defined."
 547#   else
 548#       define wxUSE_LISTCTRL 0
 549#   endif
 550#endif /* !defined(wxUSE_LISTCTRL) */
 551
 552#ifndef wxUSE_LOGGUI
 553#   ifdef wxABORT_ON_CONFIG_ERROR
 554#       error "wxUSE_LOGGUI must be defined."
 555#   else
 556#       define wxUSE_LOGGUI 0
 557#   endif
 558#endif /* !defined(wxUSE_LOGGUI) */
 559
 560#ifndef wxUSE_LOGWINDOW
 561#   ifdef wxABORT_ON_CONFIG_ERROR
 562#       error "wxUSE_LOGWINDOW must be defined."
 563#   else
 564#       define wxUSE_LOGWINDOW 0
 565#   endif
 566#endif /* !defined(wxUSE_LOGWINDOW) */
 567
 568#ifndef wxUSE_LOG_DIALOG
 569#   ifdef wxABORT_ON_CONFIG_ERROR
 570#       error "wxUSE_LOG_DIALOG must be defined."
 571#   else
 572#       define wxUSE_LOG_DIALOG 0
 573#   endif
 574#endif /* !defined(wxUSE_LOG_DIALOG) */
 575
 576#ifndef wxUSE_MDI
 577#   ifdef wxABORT_ON_CONFIG_ERROR
 578#       error "wxUSE_MDI must be defined."
 579#   else
 580#       define wxUSE_MDI 0
 581#   endif
 582#endif /* !defined(wxUSE_MDI) */
 583
 584#ifndef wxUSE_MDI_ARCHITECTURE
 585#   ifdef wxABORT_ON_CONFIG_ERROR
 586#       error "wxUSE_MDI_ARCHITECTURE must be defined."
 587#   else
 588#       define wxUSE_MDI_ARCHITECTURE 0
 589#   endif
 590#endif /* !defined(wxUSE_MDI_ARCHITECTURE) */
 591
 592#ifndef wxUSE_MENUS
 593#   ifdef wxABORT_ON_CONFIG_ERROR
 594#       error "wxUSE_MENUS must be defined."
 595#   else
 596#       define wxUSE_MENUS 0
 597#   endif
 598#endif /* !defined(wxUSE_MENUS) */
 599
 600#ifndef wxUSE_MSGDLG
 601#   ifdef wxABORT_ON_CONFIG_ERROR
 602#       error "wxUSE_MSGDLG must be defined."
 603#   else
 604#       define wxUSE_MSGDLG 0
 605#   endif
 606#endif /* !defined(wxUSE_MSGDLG) */
 607
 608#ifndef wxUSE_NOTEBOOK
 609#   ifdef wxABORT_ON_CONFIG_ERROR
 610#       error "wxUSE_NOTEBOOK must be defined."
 611#   else
 612#       define wxUSE_NOTEBOOK 0
 613#   endif
 614#endif /* !defined(wxUSE_NOTEBOOK) */
 615
 616#ifndef wxUSE_PALETTE
 617#   ifdef wxABORT_ON_CONFIG_ERROR
 618#       error "wxUSE_PALETTE must be defined."
 619#   else
 620#       define wxUSE_PALETTE 0
 621#   endif
 622#endif /* !defined(wxUSE_PALETTE) */
 623
 624#ifndef wxUSE_POPUPWIN
 625#   ifdef wxABORT_ON_CONFIG_ERROR
 626#       error "wxUSE_POPUPWIN must be defined."
 627#   else
 628#       define wxUSE_POPUPWIN 0
 629#   endif
 630#endif /* !defined(wxUSE_POPUPWIN) */
 631
 632#ifndef wxUSE_PRINTING_ARCHITECTURE
 633#   ifdef wxABORT_ON_CONFIG_ERROR
 634#       error "wxUSE_PRINTING_ARCHITECTURE must be defined."
 635#   else
 636#       define wxUSE_PRINTING_ARCHITECTURE 0
 637#   endif
 638#endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */
 639
 640#ifndef wxUSE_RADIOBOX
 641#   ifdef wxABORT_ON_CONFIG_ERROR
 642#       error "wxUSE_RADIOBOX must be defined."
 643#   else
 644#       define wxUSE_RADIOBOX 0
 645#   endif
 646#endif /* !defined(wxUSE_RADIOBOX) */
 647
 648#ifndef wxUSE_RADIOBTN
 649#   ifdef wxABORT_ON_CONFIG_ERROR
 650#       error "wxUSE_RADIOBTN must be defined."
 651#   else
 652#       define wxUSE_RADIOBTN 0
 653#   endif
 654#endif /* !defined(wxUSE_RADIOBTN) */
 655
 656#ifndef wxUSE_SASH
 657#   ifdef wxABORT_ON_CONFIG_ERROR
 658#       error "wxUSE_SASH must be defined."
 659#   else
 660#       define wxUSE_SASH 0
 661#   endif
 662#endif /* !defined(wxUSE_SASH) */
 663
 664#ifndef wxUSE_SCROLLBAR
 665#   ifdef wxABORT_ON_CONFIG_ERROR
 666#       error "wxUSE_SCROLLBAR must be defined."
 667#   else
 668#       define wxUSE_SCROLLBAR 0
 669#   endif
 670#endif /* !defined(wxUSE_SCROLLBAR) */
 671
 672#ifndef wxUSE_SLIDER
 673#   ifdef wxABORT_ON_CONFIG_ERROR
 674#       error "wxUSE_SLIDER must be defined."
 675#   else
 676#       define wxUSE_SLIDER 0
 677#   endif
 678#endif /* !defined(wxUSE_SLIDER) */
 679
 680#ifndef wxUSE_SOUND
 681#   ifdef wxABORT_ON_CONFIG_ERROR
 682#       error "wxUSE_SOUND must be defined."
 683#   else
 684#       define wxUSE_SOUND 0
 685#   endif
 686#endif /* !defined(wxUSE_SOUND) */
 687
 688#ifndef wxUSE_SPINBTN
 689#   ifdef wxABORT_ON_CONFIG_ERROR
 690#       error "wxUSE_SPINBTN must be defined."
 691#   else
 692#       define wxUSE_SPINBTN 0
 693#   endif
 694#endif /* !defined(wxUSE_SPINBTN) */
 695
 696#ifndef wxUSE_SPINCTRL
 697#   ifdef wxABORT_ON_CONFIG_ERROR
 698#       error "wxUSE_SPINCTRL must be defined."
 699#   else
 700#       define wxUSE_SPINCTRL 0
 701#   endif
 702#endif /* !defined(wxUSE_SPINCTRL) */
 703
 704#ifndef wxUSE_SPLASH
 705#   ifdef wxABORT_ON_CONFIG_ERROR
 706#       error "wxUSE_SPLASH must be defined."
 707#   else
 708#       define wxUSE_SPLASH 0
 709#   endif
 710#endif /* !defined(wxUSE_SPLASH) */
 711
 712#ifndef wxUSE_SPLITTER
 713#   ifdef wxABORT_ON_CONFIG_ERROR
 714#       error "wxUSE_SPLITTER must be defined."
 715#   else
 716#       define wxUSE_SPLITTER 0
 717#   endif
 718#endif /* !defined(wxUSE_SPLITTER) */
 719
 720#ifndef wxUSE_STATBMP
 721#   ifdef wxABORT_ON_CONFIG_ERROR
 722#       error "wxUSE_STATBMP must be defined."
 723#   else
 724#       define wxUSE_STATBMP 0
 725#   endif
 726#endif /* !defined(wxUSE_STATBMP) */
 727
 728#ifndef wxUSE_STATBOX
 729#   ifdef wxABORT_ON_CONFIG_ERROR
 730#       error "wxUSE_STATBOX must be defined."
 731#   else
 732#       define wxUSE_STATBOX 0
 733#   endif
 734#endif /* !defined(wxUSE_STATBOX) */
 735
 736#ifndef wxUSE_STATLINE
 737#   ifdef wxABORT_ON_CONFIG_ERROR
 738#       error "wxUSE_STATLINE must be defined."
 739#   else
 740#       define wxUSE_STATLINE 0
 741#   endif
 742#endif /* !defined(wxUSE_STATLINE) */
 743
 744#ifndef wxUSE_STATTEXT
 745#   ifdef wxABORT_ON_CONFIG_ERROR
 746#       error "wxUSE_STATTEXT must be defined."
 747#   else
 748#       define wxUSE_STATTEXT 0
 749#   endif
 750#endif /* !defined(wxUSE_STATTEXT) */
 751
 752#ifndef wxUSE_STATUSBAR
 753#   ifdef wxABORT_ON_CONFIG_ERROR
 754#       error "wxUSE_STATUSBAR must be defined."
 755#   else
 756#       define wxUSE_STATUSBAR 0
 757#   endif
 758#endif /* !defined(wxUSE_STATUSBAR) */
 759
 760#ifndef wxUSE_TAB_DIALOG
 761#   ifdef wxABORT_ON_CONFIG_ERROR
 762#       error "wxUSE_TAB_DIALOG must be defined."
 763#   else
 764#       define wxUSE_TAB_DIALOG 0
 765#   endif
 766#endif /* !defined(wxUSE_TAB_DIALOG) */
 767
 768#ifndef wxUSE_TEXTCTRL
 769#   ifdef wxABORT_ON_CONFIG_ERROR
 770#       error "wxUSE_TEXTCTRL must be defined."
 771#   else
 772#       define wxUSE_TEXTCTRL 0
 773#   endif
 774#endif /* !defined(wxUSE_TEXTCTRL) */
 775
 776#ifndef wxUSE_TIPWINDOW
 777#   ifdef wxABORT_ON_CONFIG_ERROR
 778#       error "wxUSE_TIPWINDOW must be defined."
 779#   else
 780#       define wxUSE_TIPWINDOW 0
 781#   endif
 782#endif /* !defined(wxUSE_TIPWINDOW) */
 783
 784#ifndef wxUSE_TOOLBAR
 785#   ifdef wxABORT_ON_CONFIG_ERROR
 786#       error "wxUSE_TOOLBAR must be defined."
 787#   else
 788#       define wxUSE_TOOLBAR 0
 789#   endif
 790#endif /* !defined(wxUSE_TOOLBAR) */
 791
 792#ifndef wxUSE_TOOLTIPS
 793#   ifdef wxABORT_ON_CONFIG_ERROR
 794#       error "wxUSE_TOOLTIPS must be defined."
 795#   else
 796#       define wxUSE_TOOLTIPS 0
 797#   endif
 798#endif /* !defined(wxUSE_TOOLTIPS) */
 799
 800#ifndef wxUSE_TREECTRL
 801#   ifdef wxABORT_ON_CONFIG_ERROR
 802#       error "wxUSE_TREECTRL must be defined."
 803#   else
 804#       define wxUSE_TREECTRL 0
 805#   endif
 806#endif /* !defined(wxUSE_TREECTRL) */
 807
 808#ifndef wxUSE_VALIDATORS
 809#   ifdef wxABORT_ON_CONFIG_ERROR
 810#       error "wxUSE_VALIDATORS must be defined."
 811#   else
 812#       define wxUSE_VALIDATORS 0
 813#   endif
 814#endif /* !defined(wxUSE_VALIDATORS) */
 815
 816#ifndef wxUSE_WXHTML_HELP
 817#   ifdef wxABORT_ON_CONFIG_ERROR
 818#       error "wxUSE_WXHTML_HELP must be defined."
 819#   else
 820#       define wxUSE_WXHTML_HELP 0
 821#   endif
 822#endif /* !defined(wxUSE_WXHTML_HELP) */
 823
 824#endif /* wxUSE_GUI */
 825
 826/*
 827   check consistency of the settings
 828 */
 829
 830#if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION
 831#   ifdef wxABORT_ON_CONFIG_ERROR
 832#       error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION"
 833#   else
 834#       undef wxUSE_CRASHREPORT
 835#       define wxUSE_CRASHREPORT 0
 836#   endif
 837#endif /* wxUSE_CRASHREPORT */
 838
 839#if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP
 840#   if !wxUSE_PROTOCOL
 841#        ifdef wxABORT_ON_CONFIG_ERROR
 842#            error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL"
 843#        else
 844#            undef wxUSE_PROTOCOL
 845#            define wxUSE_PROTOCOL 1
 846#        endif
 847#   endif
 848#endif /* wxUSE_PROTOCOL_XXX */
 849
 850#if wxUSE_URL
 851#   if !wxUSE_PROTOCOL
 852#        ifdef wxABORT_ON_CONFIG_ERROR
 853#            error "wxUSE_URL requires wxUSE_PROTOCOL"
 854#        else
 855#            undef wxUSE_PROTOCOL
 856#            define wxUSE_PROTOCOL 1
 857#        endif
 858#   endif
 859#endif /* wxUSE_URL */
 860
 861#if wxUSE_PROTOCOL
 862#   if !wxUSE_SOCKETS
 863#       if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP
 864#           ifdef wxABORT_ON_CONFIG_ERROR
 865#               error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS"
 866#           else
 867#               undef wxUSE_SOCKETS
 868#               define wxUSE_SOCKETS 1
 869#           endif
 870#       endif
 871#   endif
 872
 873#   if !wxUSE_STREAMS
 874#       ifdef wxABORT_ON_CONFIG_ERROR
 875#           error "wxUSE_PROTOCOL requires wxUSE_STREAMS"
 876#       else
 877#           undef wxUSE_STREAMS
 878#           define wxUSE_STREAMS 1
 879#       endif
 880#   endif
 881#endif /* wxUSE_PROTOCOL */
 882
 883/* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */
 884#if wxUSE_HTML
 885#   if !wxUSE_FILESYSTEM
 886#       ifdef wxABORT_ON_CONFIG_ERROR
 887#           error "wxHTML requires wxFileSystem"
 888#       else
 889#           undef wxUSE_FILESYSTEM
 890#           define wxUSE_FILESYSTEM 1
 891#       endif
 892#   endif
 893#endif /* wxUSE_HTML */
 894
 895#if wxUSE_FILESYSTEM
 896#   if !wxUSE_STREAMS
 897#       ifdef wxABORT_ON_CONFIG_ERROR
 898#           error "wxUSE_FILESYSTEM requires wxUSE_STREAMS"
 899#       else
 900#           undef wxUSE_STREAMS
 901#           define wxUSE_STREAMS 1
 902#       endif
 903#   endif
 904#endif /* wxUSE_FILESYSTEM */
 905
 906#if wxUSE_FS_INET
 907#   if !wxUSE_PROTOCOL
 908#       ifdef wxABORT_ON_CONFIG_ERROR
 909#           error "wxUSE_FS_INET requires wxUSE_PROTOCOL"
 910#       else
 911#           undef wxUSE_PROTOCOL
 912#           define wxUSE_PROTOCOL 1
 913#       endif
 914#   endif
 915#endif /* wxUSE_FS_INET */
 916
 917#if wxUSE_STOPWATCH || wxUSE_DATETIME
 918#    if !wxUSE_LONGLONG
 919#        ifdef wxABORT_ON_CONFIG_ERROR
 920#            error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG"
 921#        else
 922#            undef wxUSE_LONGLONG
 923#            define wxUSE_LONGLONG 1
 924#        endif
 925#    endif
 926#endif /* wxUSE_STOPWATCH */
 927
 928#if wxUSE_MIMETYPE && !wxUSE_TEXTFILE
 929#   ifdef wxABORT_ON_CONFIG_ERROR
 930#       error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE"
 931#   else
 932#       undef wxUSE_TEXTFILE
 933#       define wxUSE_TEXTFILE 1
 934#   endif
 935#endif /* wxUSE_MIMETYPE */
 936
 937#if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER
 938#   ifdef wxABORT_ON_CONFIG_ERROR
 939#       error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER"
 940#   else
 941#       undef wxUSE_TEXTBUFFER
 942#       define wxUSE_TEXTBUFFER 1
 943#   endif
 944#endif /* wxUSE_TEXTFILE */
 945
 946#if wxUSE_TEXTFILE && !wxUSE_FILE
 947#   ifdef wxABORT_ON_CONFIG_ERROR
 948#       error "wxUSE_TEXTFILE requires wxUSE_FILE"
 949#   else
 950#       undef wxUSE_FILE
 951#       define wxUSE_FILE 1
 952#   endif
 953#endif /* wxUSE_TEXTFILE */
 954
 955#if wxUSE_XML && !wxUSE_WCHAR_T
 956#   ifdef wxABORT_ON_CONFIG_ERROR
 957#       error "wxUSE_XML requires wxUSE_WCHAR_T"
 958#   else
 959#       undef wxUSE_XML
 960#       define wxUSE_XML 0
 961#   endif
 962#endif /* wxUSE_XML */
 963
 964#if !wxUSE_DYNLIB_CLASS
 965#   if wxUSE_DYNAMIC_LOADER
 966#       ifdef wxABORT_ON_CONFIG_ERROR
 967#           error "wxUSE_DYNAMIC_LOADER requires wxUSE_DYNLIB_CLASS."
 968#       else
 969#           define wxUSE_DYNLIB_CLASS 1
 970#       endif
 971#   endif
 972#endif  /* wxUSE_DYNLIB_CLASS */
 973
 974#if wxUSE_ZIPSTREAM
 975#   if !wxUSE_ZLIB
 976#       ifdef wxABORT_ON_CONFIG_ERROR
 977#           error "wxZip requires wxZlib"
 978#       else
 979#           undef wxUSE_ZLIB
 980#           define wxUSE_ZLIB 1
 981#       endif
 982#   endif
 983#   if !wxUSE_ARCHIVE_STREAMS
 984#       ifdef wxABORT_ON_CONFIG_ERROR
 985#           error "wxZip requires wxArchive"
 986#       else
 987#           undef wxUSE_ARCHIVE_STREAMS
 988#           define wxUSE_ARCHIVE_STREAMS 1
 989#       endif
 990#   endif
 991#endif /* wxUSE_ZIPSTREAM */
 992
 993/* the rest of the tests is for the GUI settings only */
 994#if wxUSE_GUI
 995
 996#if wxUSE_BUTTON || \
 997    wxUSE_CALENDARCTRL || \
 998    wxUSE_CARET || \
 999    wxUSE_COMBOBOX || \
1000    wxUSE_BMPBUTTON || \
1001    wxUSE_CHECKBOX || \
1002    wxUSE_CHECKLISTBOX || \
1003    wxUSE_CHOICE || \
1004    wxUSE_GAUGE || \
1005    wxUSE_GRID || \
1006    wxUSE_LISTBOX || \
1007    wxUSE_LISTCTRL || \
1008    wxUSE_NOTEBOOK || \
1009    wxUSE_RADIOBOX || \
1010    wxUSE_RADIOBTN || \
1011    wxUSE_SCROLLBAR || \
1012    wxUSE_SLIDER || \
1013    wxUSE_SPINBTN || \
1014    wxUSE_SPINCTRL || \
1015    wxUSE_STATBMP || \
1016    wxUSE_STATBOX || \
1017    wxUSE_STATLINE || \
1018    wxUSE_STATTEXT || \
1019    wxUSE_STATUSBAR || \
1020    wxUSE_TEXTCTRL || \
1021    wxUSE_TOOLBAR || \
1022    wxUSE_TREECTRL
1023#    if !wxUSE_CONTROLS
1024#        ifdef wxABORT_ON_CONFIG_ERROR
1025#            error "wxUSE_CONTROLS unset but some controls used"
1026#        else
1027#            undef wxUSE_CONTROLS
1028#            define wxUSE_CONTROLS 1
1029#        endif
1030#    endif
1031#endif /* controls */
1032
1033#if wxUSE_BMPBUTTON
1034#    if !wxUSE_BUTTON
1035#        ifdef wxABORT_ON_CONFIG_ERROR
1036#            error "wxUSE_BMPBUTTON requires wxUSE_BUTTON"
1037#        else
1038#            undef wxUSE_BUTTON
1039#            define wxUSE_BUTTON 1
1040#        endif
1041#    endif
1042#endif /* wxUSE_BMPBUTTON */
1043
1044#if wxUSE_NOTEBOOK || wxUSE_LISTBOOK || wxUSE_CHOICEBOOK
1045#   if defined(wxUSE_BOOKCTRL) && !wxUSE_BOOKCTRL
1046#       ifdef wxABORT_ON_CONFIG_ERROR
1047#           error "wxUSE_BOOKCTRL must be set."
1048#       else
1049#           undef wxUSE_BOOKCTRL
1050#       endif
1051#   endif
1052
1053#   ifndef wxUSE_BOOKCTRL
1054#       define wxUSE_BOOKCTRL 1
1055#   endif
1056#endif /* wxUSE_NOTEBOOK */
1057
1058#if wxUSE_LISTBOOK
1059#   if !wxUSE_LISTCTRL
1060#       ifdef wxABORT_ON_CONFIG_ERROR
1061#           error "wxListbook requires wxListCtrl"
1062#       else
1063#           undef wxUSE_LISTCTRL
1064#           define wxUSE_LISTCTRL 1
1065#       endif
1066#   endif
1067#endif /* wxUSE_LISTBOOK */
1068
1069#if wxUSE_CHOICEBOOK
1070#   if !wxUSE_CHOICE
1071#       ifdef wxABORT_ON_CONFIG_ERROR
1072#           error "wxChoicebook requires wxChoice"
1073#       else
1074#           undef wxUSE_CHOICE
1075#           define wxUSE_CHOICE 1
1076#       endif
1077#   endif
1078#endif /* wxUSE_CHOICEBOOK */
1079
1080/* don't attempt to use native status bar on the platforms not having it */
1081#ifndef wxUSE_NATIVE_STATUSBAR
1082#   define wxUSE_NATIVE_STATUSBAR 0
1083#elif wxUSE_NATIVE_STATUSBAR
1084#   if defined(__WXUNIVERSAL__) || !( defined(__WXMSW__) || \
1085                                      defined(__WXMAC__) || \
1086                                      defined(__WXPALMOS__) )
1087#       undef wxUSE_NATIVE_STATUSBAR
1088#       define wxUSE_NATIVE_STATUSBAR 0
1089#   endif
1090#endif
1091
1092/* wxUniv-specific dependencies */
1093#if defined(__WXUNIVERSAL__)
1094#   if (wxUSE_COMBOBOX || wxUSE_MENUS) && !wxUSE_POPUPWIN
1095#       ifdef wxABORT_ON_CONFIG_ERROR
1096#           error "wxUSE_POPUPWIN must be defined to use comboboxes/menus"
1097#       else
1098#           undef wxUSE_POPUPWIN
1099#           define wxUSE_POPUPWIN 1
1100#       endif
1101#   endif
1102
1103#   if wxUSE_COMBOBOX
1104#      if !wxUSE_LISTBOX
1105#           ifdef wxABORT_ON_CONFIG_ERROR
1106#               error "wxComboBox requires wxListBox in wxUniversal"
1107#           else
1108#               undef wxUSE_LISTBOX
1109#               define wxUSE_LISTBOX 1
1110#           endif
1111#      endif
1112#   endif /* wxUSE_COMBOBOX */
1113
1114#   if wxUSE_RADIOBTN
1115#      if !wxUSE_CHECKBOX
1116#           ifdef wxABORT_ON_CONFIG_ERROR
1117#               error "wxUSE_RADIOBTN requires wxUSE_CHECKBOX in wxUniversal"
1118#           else
1119#               undef wxUSE_CHECKBOX
1120#               define wxUSE_CHECKBOX 1
1121#           endif
1122#      endif
1123#   endif /* wxUSE_RADIOBTN */
1124
1125#   if wxUSE_TEXTCTRL
1126#       if !wxUSE_CARET
1127#           ifdef wxABORT_ON_CONFIG_ERROR
1128#               error "wxTextCtrl requires wxCaret in wxUniversal"
1129#           else
1130#               undef wxUSE_CARET
1131#               define wxUSE_CARET 1
1132#           endif
1133#       endif /* wxUSE_CARET */
1134
1135#       if !wxUSE_SCROLLBAR
1136#           ifdef wxABORT_ON_CONFIG_ERROR
1137#               error "wxTextCtrl requires wxScrollBar in wxUniversal"
1138#           else
1139#               undef wxUSE_SCROLLBAR
1140#               define wxUSE_SCROLLBAR 1
1141#           endif
1142#       endif /* wxUSE_SCROLLBAR */
1143#   endif /* wxUSE_TEXTCTRL */
1144#endif /* __WXUNIVERSAL__ */
1145
1146/* wxGTK-specific dependencies */
1147#ifdef __WXGTK__
1148#   ifndef __WXUNIVERSAL__
1149#       if wxUSE_MDI_ARCHITECTURE && !wxUSE_MENUS
1150#           ifdef wxABORT_ON_CONFIG_ERROR
1151#               error "MDI requires wxUSE_MENUS in wxGTK"
1152#           else
1153#               undef wxUSE_MENUS
1154#               define wxUSE_MENUS 1
1155#           endif
1156#       endif
1157#   endif /* !__WXUNIVERSAL__ */
1158
1159#   if wxUSE_JOYSTICK
1160#       if !wxUSE_THREADS
1161#           ifdef wxABORT_ON_CONFIG_ERROR
1162#               error "wxJoystick requires threads in wxGTK"
1163#           else
1164#               undef wxUSE_JOYSTICK
1165#               define wxUSE_JOYSTICK 0
1166#           endif
1167#       endif
1168#   endif
1169#endif /* wxGTK && !wxUniv */
1170
1171/* wxMSW-specific dependencies */
1172#ifdef __WXMSW__
1173#   ifndef wxUSE_UNICODE_MSLU
1174#       ifdef wxABORT_ON_CONFIG_ERROR
1175#           error "wxUSE_UNICODE_MSLU must be defined."
1176#       else
1177#           define wxUSE_UNICODE_MSLU 0
1178#       endif
1179#   endif  /* wxUSE_UNICODE_MSLU */
1180#   ifndef wxUSE_UXTHEME
1181#       ifdef wxABORT_ON_CONFIG_ERROR
1182#           error "wxUSE_UXTHEME must be defined."
1183#       else
1184#           define wxUSE_UXTHEME 0
1185#       endif
1186#   endif  /* wxUSE_UXTHEME */
1187#   ifndef wxUSE_UXTHEME_AUTO
1188#       ifdef wxABORT_ON_CONFIG_ERROR
1189#           error "wxUSE_UXTHEME_AUTO must be defined."
1190#       else
1191#           define wxUSE_UXTHEME_AUTO 0
1192#       endif
1193#   endif  /* wxUSE_UXTHEME_AUTO */
1194#   ifndef wxUSE_MS_HTML_HELP
1195#       ifdef wxABORT_ON_CONFIG_ERROR
1196#           error "wxUSE_MS_HTML_HELP must be defined."
1197#       else
1198#           define wxUSE_MS_HTML_HELP 0
1199#       endif
1200#   endif /* !defined(wxUSE_MS_HTML_HELP) */
1201#   ifndef wxUSE_DIALUP_MANAGER
1202#       ifdef wxABORT_ON_CONFIG_ERROR
1203#           error "wxUSE_DIALUP_MANAGER must be defined."
1204#       else
1205#           define wxUSE_DIALUP_MANAGER 0
1206#       endif
1207#   endif /* !defined(wxUSE_DIALUP_MANAGER) */
1208
1209#   if !wxUSE_DYNAMIC_LOADER
1210#       if wxUSE_MS_HTML_HELP
1211#           ifdef wxABORT_ON_CONFIG_ERROR
1212#               error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER."
1213#           else
1214#               define wxUSE_DYNAMIC_LOADER 1
1215#           endif
1216#       endif
1217#       if wxUSE_DIALUP_MANAGER
1218#           ifdef wxABORT_ON_CONFIG_ERROR
1219#               error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER."
1220#           else
1221#               define wxUSE_DYNAMIC_LOADER 1
1222#           endif
1223#       endif
1224#   endif  /* wxUSE_DYNAMIC_LOADER */
1225
1226#endif /* wxMSW */
1227
1228/* wxMGL-specific dependencies */
1229#ifdef __WXMGL__
1230#   if !wxUSE_PALETTE
1231#       error "wxMGL requires wxUSE_PALETTE=1"
1232#   endif
1233#endif /* wxMGL */
1234
1235/* Hopefully we can emulate these dialogs in due course */
1236#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
1237#   ifdef wxUSE_COLOURDLG
1238#       undef wxUSE_COLOURDLG
1239#       define wxUSE_COLOURDLG 0
1240#   endif
1241#endif /* __SMARTPHONE__ && __WXWINCE__ */
1242
1243
1244/* generic controls dependencies */
1245#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
1246#   if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG
1247        /* all common controls are needed by these dialogs */
1248#       if !defined(wxUSE_CHOICE) || \
1249           !defined(wxUSE_TEXTCTRL) || \
1250           !defined(wxUSE_BUTTON) || \
1251           !defined(wxUSE_CHECKBOX) || \
1252           !defined(wxUSE_STATTEXT)
1253#           ifdef wxABORT_ON_CONFIG_ERROR
1254#               error "These common controls are needed by common dialogs"
1255#           else
1256#               undef wxUSE_CHOICE
1257#               define wxUSE_CHOICE 1
1258#               undef wxUSE_TEXTCTRL
1259#               define wxUSE_TEXTCTRL 1
1260#               undef wxUSE_BUTTON
1261#               define wxUSE_BUTTON 1
1262#               undef wxUSE_CHECKBOX
1263#               define wxUSE_CHECKBOX 1
1264#               undef wxUSE_STATTEXT
1265#               define wxUSE_STATTEXT 1
1266#           endif
1267#       endif
1268#   endif
1269#endif /* !wxMSW || wxUniv */
1270
1271/* common dependencies */
1272#if wxUSE_CALENDARCTRL
1273#   if !(wxUSE_SPINBTN && wxUSE_COMBOBOX)
1274#       ifdef wxABORT_ON_CONFIG_ERROR
1275#           error "wxCalendarCtrl requires wxSpinButton and wxComboBox"
1276#       else
1277#           undef wxUSE_SPINBTN
1278#           undef wxUSE_COMBOBOX
1279#           define wxUSE_SPINBTN 1
1280#           define wxUSE_COMBOBOX 1
1281#       endif
1282#   endif
1283
1284#   if !wxUSE_DATETIME
1285#       ifdef wxABORT_ON_CONFIG_ERROR
1286#           error "wxCalendarCtrl requires wxUSE_DATETIME"
1287#       else
1288#           undef wxUSE_DATETIME
1289#           define wxUSE_DATETIME 1
1290#       endif
1291#   endif
1292#endif /* wxUSE_CALENDARCTRL */
1293
1294#if wxUSE_DATEPICKCTRL
1295#   if !wxUSE_DATETIME
1296#       ifdef wxABORT_ON_CONFIG_ERROR
1297#           error "wxDatePickerCtrl requires wxUSE_DATETIME"
1298#       else
1299#           undef wxUSE_DATETIME
1300#           define wxUSE_DATETIME 1
1301#       endif
1302#   endif
1303#endif /* wxUSE_DATEPICKCTRL */
1304
1305#if wxUSE_CHECKLISTBOX
1306#   if !wxUSE_LISTBOX
1307#        ifdef wxABORT_ON_CONFIG_ERROR
1308#            error "wxCheckListBox requires wxListBox"
1309#        else
1310#            undef wxUSE_LISTBOX
1311#            define wxUSE_LISTBOX 1
1312#        endif
1313#   endif
1314#endif /* wxUSE_CHECKLISTBOX */
1315
1316#if wxUSE_CHOICEDLG
1317#   if !wxUSE_LISTBOX
1318#        ifdef wxABORT_ON_CONFIG_ERROR
1319#            error "Choice dialogs requires wxListBox"
1320#        else
1321#            undef wxUSE_LISTBOX
1322#            define wxUSE_LISTBOX 1
1323#        endif
1324#   endif
1325#endif /* wxUSE_CHOICEDLG */
1326
1327#if wxUSE_HELP
1328#   if !wxUSE_BMPBUTTON
1329#       ifdef wxABORT_ON_CONFIG_ERROR
1330#           error "wxUSE_HELP requires wxUSE_BMPBUTTON"
1331#       else
1332#           undef wxUSE_BMPBUTTON
1333#           define wxUSE_BMPBUTTON 1
1334#       endif
1335#   endif
1336
1337#   if !wxUSE_CHOICEDLG
1338#       ifdef wxABORT_ON_CONFIG_ERROR
1339#           error "wxUSE_HELP requires wxUSE_CHOICEDLG"
1340#       else
1341#           undef wxUSE_CHOICEDLG
1342#           define wxUSE_CHOICEDLG 1
1343#       endif
1344#   endif
1345#endif /* wxUSE_HELP */
1346
1347#if wxUSE_WXHTML_HELP
1348#   if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK || !wxUSE_SPINCTRL
1349#       ifdef wxABORT_ON_CONFIG_ERROR
1350#           error "Built in help controller can't be compiled"
1351#       else
1352#           undef wxUSE_HELP
1353#           define wxUSE_HELP 1
1354#           undef wxUSE_HTML
1355#           define wxUSE_HTML 1
1356#           undef wxUSE_COMBOBOX
1357#           define wxUSE_COMBOBOX 1
1358#           undef wxUSE_NOTEBOOK
1359#           define wxUSE_NOTEBOOK 1
1360#           undef wxUSE_SPINCTRL
1361#           define wxUSE_SPINCTRL 1
1362#       endif
1363#   endif
1364#endif /* wxUSE_WXHTML_HELP */
1365
1366#if !wxUSE_IMAGE
1367/*
1368   The default wxUSE_IMAGE setting is 1, so if it's set to 0 we assume the
1369   user explicitly wants this and disable all other features that require
1370   wxUSE_IMAGE.
1371 */
1372#   if wxUSE_DRAGIMAGE
1373#        ifdef wxABORT_ON_CONFIG_ERROR
1374#            error "wxUSE_DRAGIMAGE requires wxUSE_IMAGE"
1375#        else
1376#            undef wxUSE_DRAGIMAGE
1377#            define wxUSE_DRAGIMAGE 0
1378#        endif
1379#   endif
1380
1381#   if wxUSE_LIBPNG
1382#        ifdef wxABORT_ON_CONFIG_ERROR
1383#            error "wxUSE_LIBPNG requires wxUSE_IMAGE"
1384#        else
1385#            undef wxUSE_LIBPNG
1386#            define wxUSE_LIBPNG 0
1387#        endif
1388#   endif
1389
1390#   if wxUSE_LIBJPEG
1391#        ifdef wxABORT_ON_CONFIG_ERROR
1392#            error "wxUSE_LIBJPEG requires wxUSE_IMAGE"
1393#        else
1394#            undef wxUSE_LIBJPEG
1395#            define wxUSE_LIBJPEG 0
1396#        endif
1397#   endif
1398
1399#   if wxUSE_LIBTIFF
1400#        ifdef wxABORT_ON_CONFIG_ERROR
1401#            error "wxUSE_LIBTIFF requires wxUSE_IMAGE"
1402#        else
1403#            undef wxUSE_LIBTIFF
1404#            define wxUSE_LIBTIFF 0
1405#        endif
1406#   endif
1407
1408#   if wxUSE_GIF
1409#        ifdef wxABORT_ON_CONFIG_ERROR
1410#            error "wxUSE_GIF requires wxUSE_IMAGE"
1411#        else
1412#            undef wxUSE_GIF
1413#            define wxUSE_GIF 0
1414#        endif
1415#   endif
1416
1417#   if wxUSE_PNM
1418#        ifdef wxABORT_ON_CONFIG_ERROR
1419#            error "wxUSE_PNM requires wxUSE_IMAGE"
1420#        else
1421#            undef wxUSE_PNM
1422#            define wxUSE_PNM 0
1423#        endif
1424#   endif
1425
1426#   if wxUSE_PCX
1427#        ifdef wxABORT_ON_CONFIG_ERROR
1428#            error "wxUSE_PCX requires wxUSE_IMAGE"
1429#        else
1430#            undef wxUSE_PCX
1431#            define wxUSE_PCX 0
1432#        endif
1433#   endif
1434
1435#   if wxUSE_IFF
1436#        ifdef wxABORT_ON_CONFIG_ERROR
1437#            error "wxUSE_IFF requires wxUSE_IMAGE"
1438#        else
1439#            undef wxUSE_IFF
1440#            define wxUSE_IFF 0
1441#        endif
1442#   endif
1443
1444#   if wxUSE_TOOLBAR
1445#        ifdef wxABORT_ON_CONFIG_ERROR
1446#            error "wxUSE_TOOLBAR requires wxUSE_IMAGE"
1447#        else
1448#            undef wxUSE_TOOLBAR
1449#            define wxUSE_TOOLBAR 0
1450#        endif
1451#   endif
1452
1453#   if wxUSE_XPM
1454#        ifdef wxABORT_ON_CONFIG_ERROR
1455#            error "wxUSE_XPM requires wxUSE_IMAGE"
1456#        else
1457#            undef wxUSE_XPM
1458#            define wxUSE_XPM 0
1459#        endif
1460#   endif
1461
1462#endif /* !wxUSE_IMAGE */
1463
1464#if wxUSE_DOC_VIEW_ARCHITECTURE
1465#   if !wxUSE_MENUS
1466#        ifdef wxABORT_ON_CONFIG_ERROR
1467#            error "DocView requires wxUSE_MENUS"
1468#        else
1469#            undef wxUSE_MENUS
1470#            define wxUSE_MENUS 1
1471#        endif
1472#   endif
1473
1474#   if !wxUSE_CHOICEDLG
1475#        ifdef wxABORT_ON_CONFIG_ERROR
1476#            error "DocView requires wxUSE_CHOICEDLG"
1477#        else
1478#            undef wxUSE_CHOICEDLG
1479#            define wxUSE_CHOICEDLG 1
1480#        endif
1481#   endif
1482
1483#   if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM
1484#        ifdef wxABORT_ON_CONFIG_ERROR
1485#            error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM"
1486#        else
1487#            undef wxUSE_STREAMS
1488#            define wxUSE_STREAMS 1
1489#        endif
1490#   endif
1491#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */
1492
1493#if wxUSE_PRINTING_ARCHITECTURE
1494#   if !wxUSE_COMBOBOX
1495#       ifdef wxABORT_ON_CONFIG_ERROR
1496#           error "Print dialog requires wxUSE_COMBOBOX"
1497#       else
1498#           undef wxUSE_COMBOBOX
1499#           define wxUSE_COMBOBOX 1
1500#       endif
1501#   endif
1502#endif /* wxUSE_PRINTING_ARCHITECTURE */
1503
1504#if wxUSE_MDI_ARCHITECTURE
1505#   if !wxUSE_MDI
1506#        ifdef wxABORT_ON_CONFIG_ERROR
1507#            error "MDI requires wxUSE_MDI"
1508#        else
1509#            undef wxUSE_MDI
1510#            define wxUSE_MDI 1
1511#        endif
1512#   endif
1513
1514#   if !wxUSE_DOC_VIEW_ARCHITECTURE
1515#        ifdef wxABORT_ON_CONFIG_ERROR
1516#            error "MDI requires wxUSE_DOC_VIEW_ARCHITECTURE"
1517#        else
1518#            undef wxUSE_DOC_VIEW_ARCHITECTURE
1519#            define wxUSE_DOC_VIEW_ARCHITECTURE 1
1520#        endif
1521#   endif
1522#endif /* wxUSE_MDI_ARCHITECTURE */
1523
1524#if !wxUSE_FILEDLG
1525#   if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP
1526#       ifdef wxABORT_ON_CONFIG_ERROR
1527#           error "wxFileDialog must be compiled as well"
1528#       else
1529#           undef wxUSE_FILEDLG
1530#           define wxUSE_FILEDLG 1
1531#       endif
1532#   endif
1533#endif /* wxUSE_FILEDLG */
1534
1535#if !wxUSE_GAUGE || !wxUSE_BUTTON
1536#   if wxUSE_PROGRESSDLG && !defined(__WXPALMOS__)
1537#       ifdef wxABORT_ON_CONFIG_ERROR
1538#           error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON"
1539#       else
1540#           undef wxUSE_GAUGE
1541#           undef wxUSE_BUTTON
1542#           define wxUSE_GAUGE 1
1543#           define wxUSE_BUTTON 1
1544#       endif
1545#   endif
1546#endif /* !wxUSE_GAUGE */
1547
1548#if !wxUSE_BUTTON
1549#   if wxUSE_FONTDLG || \
1550       wxUSE_FILEDLG || \
1551       wxUSE_CHOICEDLG || \
1552       wxUSE_NUMBERDLG || \
1553       wxUSE_TEXTDLG || \
1554       wxUSE_DIRDLG || \
1555       wxUSE_STARTUP_TIPS || \
1556       wxUSE_WIZARDDLG
1557#       ifdef wxABORT_ON_CONFIG_ERROR
1558#           error "Common and generic dialogs require wxUSE_BUTTON"
1559#       else
1560#           undef wxUSE_BUTTON
1561#           define wxUSE_BUTTON 1
1562#       endif
1563#   endif
1564#endif /* !wxUSE_BUTTON */
1565
1566#if !wxUSE_TOOLBAR
1567#   if wxUSE_TOOLBAR_NATIVE
1568#        ifdef wxABORT_ON_CONFIG_ERROR
1569#            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1"
1570#        else
1571#            undef wxUSE_TOOLBAR_NATIVE
1572#            define wxUSE_TOOLBAR_NATIVE 0
1573#        endif
1574#   endif
1575
1576#   if wxUSE_TOOLBAR_SIMPLE
1577#        ifdef wxABORT_ON_CONFIG_ERROR
1578#            error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_SIMPLE is set to 1"
1579#        else
1580#            undef wxUSE_TOOLBAR_SIMPLE
1581#            define wxUSE_TOOLBAR_SIMPLE 0
1582#        endif
1583#   endif
1584#endif
1585
1586#if !wxUSE_IMAGLIST
1587#   if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL
1588#       ifdef wxABORT_ON_CONFIG_ERROR
1589#           error "wxImageList must be compiled as well"
1590#       else
1591#           undef wxUSE_IMAGLIST
1592#           define wxUSE_IMAGLIST 1
1593#       endif
1594#   endif
1595#endif /* !wxUSE_IMAGLIST */
1596
1597#if !wxUSE_MSGDLG
1598#   ifdef wxABORT_ON_CONFIG_ERROR
1599        /* FIXME: should compile without it, of course, but doesn't */
1600#       error "wxMessageBox is always needed"
1601#   else
1602#       undef wxUSE_MSGDLG
1603#       define wxUSE_MSGDLG 1
1604#   endif
1605#endif
1606
1607#if wxUSE_RADIOBOX
1608#   if !wxUSE_RADIOBTN
1609#        ifdef wxABORT_ON_CONFIG_ERROR
1610#            error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN"
1611#        else
1612#            undef wxUSE_RADIOBTN
1613#            define wxUSE_RADIOBTN 1
1614#        endif
1615#   endif
1616#   if !wxUSE_STATBOX && !defined(__WXPALMOS__)
1617#        ifdef wxABORT_ON_CONFIG_ERROR
1618#            error "wxUSE_RADIOBOX requires wxUSE_STATBOX"
1619#        else
1620#            undef wxUSE_STATBOX
1621#            define wxUSE_STATBOX 1
1622#        endif
1623#   endif
1624#endif /* wxUSE_RADIOBOX */
1625
1626#if wxUSE_LOGWINDOW
1627#    if !wxUSE_TEXTCTRL
1628#        ifdef wxABORT_ON_CONFIG_ERROR
1629#            error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL"
1630#        else
1631#            undef wxUSE_TEXTCTRL
1632#            define wxUSE_TEXTCTRL 1
1633#        endif
1634#    endif
1635#endif /* wxUSE_LOGWINDOW */
1636
1637#if wxUSE_LOG_DIALOG
1638#    if !wxUSE_LISTCTRL || !wxUSE_BUTTON
1639#        ifdef wxABORT_ON_CONFIG_ERROR
1640#            error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL and wxUSE_BUTTON"
1641#        else
1642#            undef wxUSE_LISTCTRL
1643#            define wxUSE_LISTCTRL 1
1644#            undef wxUSE_BUTTON
1645#            define wxUSE_BUTTON 1
1646#        endif
1647#    endif
1648#endif /* wxUSE_LOG_DIALOG */
1649
1650#if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ
1651#   ifdef wxABORT_ON_CONFIG_ERROR
1652#       error "wxClipboard requires wxDataObject"
1653#   else
1654#       undef wxUSE_DATAOBJ
1655#       define wxUSE_DATAOBJ 1
1656#   endif
1657#endif /* wxUSE_CLIPBOARD */
1658
1659#if wxUSE_WX_RESOURCES && !wxUSE_PROLOGIO
1660#   ifdef wxABORT_ON_CONFIG_ERROR
1661#       error "wxr resources require PrologIO"
1662#   else
1663#       undef wxUSE_PROLOGIO
1664#       define wxUSE_PROLOGIO 1
1665#   endif
1666#endif /* wxUSE_WX_RESOURCES */
1667
1668#if wxUSE_XRC && !wxUSE_XML
1669#   ifdef wxABORT_ON_CONFIG_ERROR
1670#       error "wxUSE_XRC requires wxUSE_XML"
1671#   else
1672#       undef wxUSE_XRC
1673#       define wxUSE_XRC 0
1674#   endif
1675#endif /* wxUSE_XRC */
1676
1677#if wxUSE_SOCKETS && !wxUSE_STOPWATCH
1678#   ifdef wxABORT_ON_CONFIG_ERROR
1679#       error "wxUSE_SOCKETS requires wxUSE_STOPWATCH"
1680#   else
1681#       undef wxUSE_SOCKETS
1682#       define wxUSE_SOCKETS 0
1683#   endif
1684#endif /* wxUSE_SOCKETS */
1685
1686#endif /* wxUSE_GUI */
1687