]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/chkconf.h
more warning fixes about empty if statement in helper classes in release build
[wxWidgets.git] / include / wx / msw / chkconf.h
CommitLineData
01ebf752
JS
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
65571936 9 * Licence: wxWindows licence
01ebf752
JS
10 */
11
34cbe514
RN
12/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
13
01ebf752
JS
14#ifndef _WX_MSW_CHKCONF_H_
15#define _WX_MSW_CHKCONF_H_
16
74987083
VZ
17/* ensure that MSW-specific settings are defined */
18#ifndef wxUSE_DC_CACHEING
19# ifdef wxABORT_ON_CONFIG_ERROR
20# error "wxUSE_DC_CACHEING must be defined"
21# else
22# define wxUSE_DC_CACHEING 1
23# endif
24#endif /* wxUSE_DC_CACHEING */
25
26
01ebf752
JS
27/*
28 * disable the settings which don't work for some compilers
29 */
30
12bdd77c
JS
31/*
32 * If using PostScript-in-MSW in Univ, must enable PostScript
33 */
12bdd77c 34#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
5e7f00a1
VZ
35# undef wxUSE_POSTSCRIPT
36# define wxUSE_POSTSCRIPT 1
12bdd77c
JS
37#endif
38
01ebf752 39#ifndef wxUSE_NORLANDER_HEADERS
6d3d756a
WS
40# if ( wxCHECK_WATCOM_VERSION(1,0) || defined(__WINE__) ) || \
41 ((defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))))
5e7f00a1
VZ
42# define wxUSE_NORLANDER_HEADERS 1
43# else
44# define wxUSE_NORLANDER_HEADERS 0
45# endif
01ebf752
JS
46#endif
47
820a7a1b
VZ
48/*
49 * We don't want to give an error if wxUSE_UNICODE_MSLU is enabled but
50 * wxUSE_UNICODE is not as this would make it impossible to simply set the
51 * former in wx/setup.h as then the library wouldn't compile in non-Unicode
52 * configurations, so instead simply unset it silently when it doesn't make
53 * sense.
54 */
55#if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE
56# undef wxUSE_UNICODE_MSLU
57# define wxUSE_UNICODE_MSLU 0
58#endif
59
b3dfbbc9 60/*
3e3a3e17
VZ
61 * All of the settings below require SEH support (__try/__catch) and can't work
62 * without it.
b3dfbbc9 63 */
3e3a3e17
VZ
64#if !defined(_MSC_VER) && \
65 (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550)
820a7a1b
VZ
66# undef wxUSE_ON_FATAL_EXCEPTION
67# define wxUSE_ON_FATAL_EXCEPTION 0
3e3a3e17 68
820a7a1b
VZ
69# undef wxUSE_CRASHREPORT
70# define wxUSE_CRASHREPORT 0
3e3a3e17 71
820a7a1b
VZ
72# undef wxUSE_STACKWALKER
73# define wxUSE_STACKWALKER 0
3b2b40b4 74#endif /* compiler doesn't support SEH */
b3dfbbc9 75
5e7f00a1 76/* wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior */
01ebf752 77#if defined(__MWERKS__)
820a7a1b
VZ
78# undef wxUSE_DEBUG_NEW_ALWAYS
79# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
80#endif
81
82#if defined(__GNUWIN32__)
5e7f00a1
VZ
83 /* These don't work as expected for mingw32 and cygwin32 */
84# undef wxUSE_MEMORY_TRACING
85# define wxUSE_MEMORY_TRACING 0
86
87# undef wxUSE_GLOBAL_MEMORY_OPERATORS
88# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
89
90# undef wxUSE_DEBUG_NEW_ALWAYS
91# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752 92
5e7f00a1
VZ
93/* some Cygwin versions don't have wcslen */
94# if defined(__CYGWIN__) || defined(__CYGWIN32__)
95# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
96# undef wxUSE_WCHAR_T
97# define wxUSE_WCHAR_T 0
98# endif
01ebf752 99#endif
5e7f00a1
VZ
100
101#endif /* __GNUWIN32__ */
01ebf752 102
16f10340
VZ
103/* wxUSE_MFC is not defined when using configure as it doesn't make sense for
104 gcc or mingw32 anyhow */
105#ifndef wxUSE_MFC
106 #define wxUSE_MFC 0
107#endif /* !defined(wxUSE_MFC) */
108
01ebf752
JS
109/* MFC duplicates these operators */
110#if wxUSE_MFC
5e7f00a1
VZ
111# undef wxUSE_GLOBAL_MEMORY_OPERATORS
112# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
01ebf752 113
5e7f00a1
VZ
114# undef wxUSE_DEBUG_NEW_ALWAYS
115# define wxUSE_DEBUG_NEW_ALWAYS 0
116#endif /* wxUSE_MFC */
01ebf752
JS
117
118#if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
820a7a1b
VZ
119 /* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
120# undef wxUSE_DRAG_AND_DROP
121# define wxUSE_DRAG_AND_DROP 0
01ebf752
JS
122#endif
123
d7bc7fec 124#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
820a7a1b
VZ
125# undef wxUSE_CHECKLISTBOX
126# define wxUSE_CHECKLISTBOX 0
01ebf752
JS
127#endif
128
0e871ad0
WS
129#if wxUSE_SPINCTRL
130# if !wxUSE_SPINBTN
131# ifdef wxABORT_ON_CONFIG_ERROR
132# error "wxSpinCtrl requires wxSpinButton on MSW"
133# else
134# undef wxUSE_SPINBTN
135# define wxUSE_SPINBTN 1
136# endif
137# endif
138#endif
139
da98e157
VZ
140/*
141 Win64-specific checks.
142 */
143#ifdef __WIN64__
144# if wxUSE_STACKWALKER
145 /* this is not currently supported under Win64, volunteers needed to
146 make it work */
147# undef wxUSE_STACKWALKER
148# define wxUSE_STACKWALKER 0
149
150# undef wxUSE_CRASHREPORT
151# define wxUSE_CRASHREPORT 0
152# endif
153#endif /* __WIN64__ */
154
155
156/*
157 Compiler-specific checks.
158 */
01ebf752 159#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
5e7f00a1
VZ
160 /* BC++ 4.0 can't compile JPEG library */
161# undef wxUSE_LIBJPEG
162# define wxUSE_LIBJPEG 0
01ebf752
JS
163#endif
164
165/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
166#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
5e7f00a1
VZ
167# undef wxUSE_DEBUG_NEW_ALWAYS
168# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
169#endif
170
90a752c2
JS
171/* DMC++ doesn't have definitions for date picker control, so use generic control
172 */
90a752c2 173#ifdef __DMC__
820a7a1b
VZ
174# if wxUSE_DATEPICKCTRL
175# undef wxUSE_DATEPICKCTRL_GENERIC
176# undef wxUSE_DATEPICKCTRL
177# endif
178# define wxUSE_DATEPICKCTRL 0
179# define wxUSE_DATEPICKCTRL_GENERIC 1
90a752c2
JS
180#endif
181
b55c3716
VZ
182#ifndef wxUSE_UNICODE_MSLU
183# ifdef wxABORT_ON_CONFIG_ERROR
184# error "wxUSE_UNICODE_MSLU must be defined."
185# else
186# define wxUSE_UNICODE_MSLU 0
187# endif
188#endif /* wxUSE_UNICODE_MSLU */
189
190#ifndef wxUSE_UXTHEME
191# ifdef wxABORT_ON_CONFIG_ERROR
192# error "wxUSE_UXTHEME must be defined."
193# else
194# define wxUSE_UXTHEME 0
195# endif
196#endif /* wxUSE_UXTHEME */
197
198#ifndef wxUSE_UXTHEME_AUTO
199# ifdef wxABORT_ON_CONFIG_ERROR
200# error "wxUSE_UXTHEME_AUTO must be defined."
201# else
202# define wxUSE_UXTHEME_AUTO 0
203# endif
204#endif /* wxUSE_UXTHEME_AUTO */
205
206#ifndef wxUSE_MS_HTML_HELP
207# ifdef wxABORT_ON_CONFIG_ERROR
208# error "wxUSE_MS_HTML_HELP must be defined."
209# else
210# define wxUSE_MS_HTML_HELP 0
211# endif
212#endif /* !defined(wxUSE_MS_HTML_HELP) */
213
214#ifndef wxUSE_DIALUP_MANAGER
215# ifdef wxABORT_ON_CONFIG_ERROR
216# error "wxUSE_DIALUP_MANAGER must be defined."
217# else
218# define wxUSE_DIALUP_MANAGER 0
219# endif
220#endif /* !defined(wxUSE_DIALUP_MANAGER) */
221
222#if !wxUSE_DYNAMIC_LOADER
223# if wxUSE_MS_HTML_HELP
224# ifdef wxABORT_ON_CONFIG_ERROR
225# error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER."
226# else
63de3718 227# undef wxUSE_MS_HTML_HELP
285ba64d 228# define wxUSE_MS_HTML_HELP 0
b55c3716
VZ
229# endif
230# endif
231# if wxUSE_DIALUP_MANAGER
232# ifdef wxABORT_ON_CONFIG_ERROR
233# error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER."
234# else
6fbc7b59 235# undef wxUSE_DIALUP_MANAGER
285ba64d 236# define wxUSE_DIALUP_MANAGER 0
b55c3716
VZ
237# endif
238# endif
239#endif /* wxUSE_DYNAMIC_LOADER */
240
64c288fa
JS
241#if !wxUSE_DYNLIB_CLASS
242# if wxUSE_UXTHEME
243# ifdef wxABORT_ON_CONFIG_ERROR
244# error "wxUSE_UXTHEME requires wxUSE_DYNLIB_CLASS"
245# else
246# undef wxUSE_UXTHEME
247# define wxUSE_UXTHEME 0
248# endif
249# endif
250# if wxUSE_MEDIACTRL
251# ifdef wxABORT_ON_CONFIG_ERROR
252# error "wxUSE_MEDIACTRL requires wxUSE_DYNLIB_CLASS"
253# else
254# undef wxUSE_MEDIACTRL
255# define wxUSE_MEDIACTRL 0
256# endif
257# endif
8ef51d67
JS
258# if wxUSE_INKEDIT
259# ifdef wxABORT_ON_CONFIG_ERROR
260# error "wxUSE_INKEDIT requires wxUSE_DYNLIB_CLASS"
261# else
262# undef wxUSE_INKEDIT
263# define wxUSE_INKEDIT 0
264# endif
265# endif
64c288fa
JS
266#endif /* wxUSE_DYNLIB_CLASS */
267
42ef5bda
VZ
268#if !wxUSE_OLE
269# if wxUSE_DATAOBJ
270# ifdef wxABORT_ON_CONFIG_ERROR
271# error "wxUSE_DATAOBJ requires wxUSE_OLE"
272# else
273# undef wxUSE_DATAOBJ
274# define wxUSE_DATAOBJ 0
275# endif
276# endif
277#endif /* wxUSE_OLE */
278
5e7f00a1 279#endif /* _WX_MSW_CHKCONF_H_ */