]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/msw/chkconf.h
Add wxABI_VERSION wrappers
[wxWidgets.git] / include / wx / msw / chkconf.h
... / ...
CommitLineData
1/*
2 * Name: wx/msw/chkconf.h
3 * Purpose: Compiler-specific configuration checking
4 * Author: Julian Smart
5 * Modified by:
6 * Created: 01/02/97
7 * RCS-ID: $Id$
8 * Copyright: (c) Julian Smart
9 * Licence: wxWindows licence
10 */
11
12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13
14#ifndef _WX_MSW_CHKCONF_H_
15#define _WX_MSW_CHKCONF_H_
16
17/*
18 * disable the settings which don't work for some compilers
19 */
20
21/*
22 * If using PostScript-in-MSW in Univ, must enable PostScript
23 */
24#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
25# undef wxUSE_POSTSCRIPT
26# define wxUSE_POSTSCRIPT 1
27#endif
28
29#ifndef wxUSE_NORLANDER_HEADERS
30# if (defined(__WATCOMC__) && (__WATCOMC__ >= 1200)) || defined(__WINE__) || ((defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))))
31# define wxUSE_NORLANDER_HEADERS 1
32# else
33# define wxUSE_NORLANDER_HEADERS 0
34# endif
35#endif
36
37/*
38 * We don't want to give an error if wxUSE_UNICODE_MSLU is enabled but
39 * wxUSE_UNICODE is not as this would make it impossible to simply set the
40 * former in wx/setup.h as then the library wouldn't compile in non-Unicode
41 * configurations, so instead simply unset it silently when it doesn't make
42 * sense.
43 */
44#if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE
45# undef wxUSE_UNICODE_MSLU
46# define wxUSE_UNICODE_MSLU 0
47#endif
48
49/*
50 * All of the settings below require SEH support (__try/__catch) and can't work
51 * without it.
52 */
53#if !defined(_MSC_VER) && \
54 (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550)
55# undef wxUSE_ON_FATAL_EXCEPTION
56# define wxUSE_ON_FATAL_EXCEPTION 0
57
58# undef wxUSE_CRASHREPORT
59# define wxUSE_CRASHREPORT 0
60
61# undef wxUSE_STACKWALKER
62# define wxUSE_STACKWALKER 0
63#endif // compiler doesn't support SEH
64
65/* wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior */
66#if defined(__MWERKS__)
67# undef wxUSE_DEBUG_NEW_ALWAYS
68# define wxUSE_DEBUG_NEW_ALWAYS 0
69#endif
70
71#if defined(__GNUWIN32__)
72 /* These don't work as expected for mingw32 and cygwin32 */
73# undef wxUSE_MEMORY_TRACING
74# define wxUSE_MEMORY_TRACING 0
75
76# undef wxUSE_GLOBAL_MEMORY_OPERATORS
77# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
78
79# undef wxUSE_DEBUG_NEW_ALWAYS
80# define wxUSE_DEBUG_NEW_ALWAYS 0
81
82/* some Cygwin versions don't have wcslen */
83# if defined(__CYGWIN__) || defined(__CYGWIN32__)
84# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
85# undef wxUSE_WCHAR_T
86# define wxUSE_WCHAR_T 0
87# endif
88#endif
89
90#endif /* __GNUWIN32__ */
91
92/* MFC duplicates these operators */
93#if wxUSE_MFC
94# undef wxUSE_GLOBAL_MEMORY_OPERATORS
95# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
96
97# undef wxUSE_DEBUG_NEW_ALWAYS
98# define wxUSE_DEBUG_NEW_ALWAYS 0
99#endif /* wxUSE_MFC */
100
101#if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
102 /* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
103# undef wxUSE_DRAG_AND_DROP
104# define wxUSE_DRAG_AND_DROP 0
105#endif
106
107#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
108# undef wxUSE_CHECKLISTBOX
109# define wxUSE_CHECKLISTBOX 0
110#endif
111
112#if wxUSE_SPINCTRL
113# if !wxUSE_SPINBTN
114# ifdef wxABORT_ON_CONFIG_ERROR
115# error "wxSpinCtrl requires wxSpinButton on MSW"
116# else
117# undef wxUSE_SPINBTN
118# define wxUSE_SPINBTN 1
119# endif
120# endif
121#endif
122
123#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
124 /* BC++ 4.0 can't compile JPEG library */
125# undef wxUSE_LIBJPEG
126# define wxUSE_LIBJPEG 0
127#endif
128
129/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
130#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
131# undef wxUSE_DEBUG_NEW_ALWAYS
132# define wxUSE_DEBUG_NEW_ALWAYS 0
133#endif
134
135/* Early Watcom version don't have good enough wide char support */
136#if defined(__WXMSW__) && (defined(__WATCOMC__) && __WATCOMC__ < 1200)
137# undef wxUSE_WCHAR_T
138# define wxUSE_WCHAR_T 0
139#endif
140
141/* DMC++ doesn't have definitions for date picker control, so use generic control
142 */
143#ifdef __DMC__
144# if wxUSE_DATEPICKCTRL
145# undef wxUSE_DATEPICKCTRL_GENERIC
146# undef wxUSE_DATEPICKCTRL
147# endif
148# define wxUSE_DATEPICKCTRL 0
149# define wxUSE_DATEPICKCTRL_GENERIC 1
150#endif
151
152#endif /* _WX_MSW_CHKCONF_H_ */
153