]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/chkconf.h
2 * Name: wx/msw/chkconf.h
3 * Purpose: Compiler-specific configuration checking
8 * Copyright: (c) Julian Smart
9 * Licence: wxWindows licence
12 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
14 #ifndef _WX_MSW_CHKCONF_H_
15 #define _WX_MSW_CHKCONF_H_
17 /* ensure that MSW-specific settings are defined */
19 # ifdef wxABORT_ON_CONFIG_ERROR
20 # error "wxUSE_ACTIVEX must be defined."
22 # define wxUSE_ACTIVEX 0
24 #endif /* !defined(wxUSE_ACTIVEX) */
26 #ifndef wxUSE_CRASHREPORT
27 # ifdef wxABORT_ON_CONFIG_ERROR
28 # error "wxUSE_CRASHREPORT must be defined."
30 # define wxUSE_CRASHREPORT 0
32 #endif /* !defined(wxUSE_CRASHREPORT) */
34 #ifndef wxUSE_DC_CACHEING
35 # ifdef wxABORT_ON_CONFIG_ERROR
36 # error "wxUSE_DC_CACHEING must be defined"
38 # define wxUSE_DC_CACHEING 1
40 #endif /* wxUSE_DC_CACHEING */
42 #ifndef wxUSE_DIALUP_MANAGER
43 # ifdef wxABORT_ON_CONFIG_ERROR
44 # error "wxUSE_DIALUP_MANAGER must be defined."
46 # define wxUSE_DIALUP_MANAGER 0
48 #endif /* !defined(wxUSE_DIALUP_MANAGER) */
50 #ifndef wxUSE_MS_HTML_HELP
51 # ifdef wxABORT_ON_CONFIG_ERROR
52 # error "wxUSE_MS_HTML_HELP must be defined."
54 # define wxUSE_MS_HTML_HELP 0
56 #endif /* !defined(wxUSE_MS_HTML_HELP) */
59 # ifdef wxABORT_ON_CONFIG_ERROR
60 # error "wxUSE_OLE must be defined."
64 #endif /* !defined(wxUSE_OLE) */
66 #ifndef wxUSE_OLE_AUTOMATION
67 # ifdef wxABORT_ON_CONFIG_ERROR
68 # error "wxUSE_OLE_AUTOMATION must be defined."
70 # define wxUSE_OLE_AUTOMATION 0
72 #endif /* !defined(wxUSE_OLE_AUTOMATION) */
74 #ifndef wxUSE_UNICODE_MSLU
75 # ifdef wxABORT_ON_CONFIG_ERROR
76 # error "wxUSE_UNICODE_MSLU must be defined."
78 # define wxUSE_UNICODE_MSLU 0
80 #endif /* wxUSE_UNICODE_MSLU */
83 # ifdef wxABORT_ON_CONFIG_ERROR
84 # error "wxUSE_UXTHEME must be defined."
86 # define wxUSE_UXTHEME 0
88 #endif /* wxUSE_UXTHEME */
90 #ifndef wxUSE_UXTHEME_AUTO
91 # ifdef wxABORT_ON_CONFIG_ERROR
92 # error "wxUSE_UXTHEME_AUTO must be defined."
94 # define wxUSE_UXTHEME_AUTO 0
96 #endif /* wxUSE_UXTHEME_AUTO */
99 * We don't want to give an error if wxUSE_UNICODE_MSLU is enabled but
100 * wxUSE_UNICODE is not as this would make it impossible to simply set the
101 * former in wx/setup.h as then the library wouldn't compile in non-Unicode
102 * configurations, so instead simply unset it silently when it doesn't make
105 #if wxUSE_UNICODE_MSLU && !wxUSE_UNICODE
106 # undef wxUSE_UNICODE_MSLU
107 # define wxUSE_UNICODE_MSLU 0
112 * disable the settings which don't work for some compilers
115 #ifndef wxUSE_NORLANDER_HEADERS
116 # if ( wxCHECK_WATCOM_VERSION(1,0) || defined(__WINE__) ) || \
117 ((defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))))
118 # define wxUSE_NORLANDER_HEADERS 1
120 # define wxUSE_NORLANDER_HEADERS 0
125 * All of the settings below require SEH support (__try/__catch) and can't work
128 #if !defined(_MSC_VER) && \
129 (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550)
130 # undef wxUSE_ON_FATAL_EXCEPTION
131 # define wxUSE_ON_FATAL_EXCEPTION 0
133 # undef wxUSE_CRASHREPORT
134 # define wxUSE_CRASHREPORT 0
136 # undef wxUSE_STACKWALKER
137 # define wxUSE_STACKWALKER 0
138 #endif /* compiler doesn't support SEH */
140 /* wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior */
141 #if defined(__MWERKS__)
142 # undef wxUSE_DEBUG_NEW_ALWAYS
143 # define wxUSE_DEBUG_NEW_ALWAYS 0
146 #if defined(__GNUWIN32__)
147 /* These don't work as expected for mingw32 and cygwin32 */
148 # undef wxUSE_MEMORY_TRACING
149 # define wxUSE_MEMORY_TRACING 0
151 # undef wxUSE_GLOBAL_MEMORY_OPERATORS
152 # define wxUSE_GLOBAL_MEMORY_OPERATORS 0
154 # undef wxUSE_DEBUG_NEW_ALWAYS
155 # define wxUSE_DEBUG_NEW_ALWAYS 0
157 /* some Cygwin versions don't have wcslen */
158 # if defined(__CYGWIN__) || defined(__CYGWIN32__)
159 # if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
160 # undef wxUSE_WCHAR_T
161 # define wxUSE_WCHAR_T 0
165 #endif /* __GNUWIN32__ */
167 /* wxUSE_MFC is not defined when using configure as it doesn't make sense for
168 gcc or mingw32 anyhow */
171 #endif /* !defined(wxUSE_MFC) */
173 /* MFC duplicates these operators */
175 # undef wxUSE_GLOBAL_MEMORY_OPERATORS
176 # define wxUSE_GLOBAL_MEMORY_OPERATORS 0
178 # undef wxUSE_DEBUG_NEW_ALWAYS
179 # define wxUSE_DEBUG_NEW_ALWAYS 0
180 #endif /* wxUSE_MFC */
182 #if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
183 /* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
184 # undef wxUSE_DRAG_AND_DROP
185 # define wxUSE_DRAG_AND_DROP 0
188 #if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
189 # undef wxUSE_CHECKLISTBOX
190 # define wxUSE_CHECKLISTBOX 0
195 # ifdef wxABORT_ON_CONFIG_ERROR
196 # error "wxSpinCtrl requires wxSpinButton on MSW"
198 # undef wxUSE_SPINBTN
199 # define wxUSE_SPINBTN 1
205 Win64-specific checks.
208 # if wxUSE_STACKWALKER
209 /* this is not currently supported under Win64, volunteers needed to
211 # undef wxUSE_STACKWALKER
212 # define wxUSE_STACKWALKER 0
214 # undef wxUSE_CRASHREPORT
215 # define wxUSE_CRASHREPORT 0
217 #endif /* __WIN64__ */
221 Compiler-specific checks.
223 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
224 /* BC++ 4.0 can't compile JPEG library */
225 # undef wxUSE_LIBJPEG
226 # define wxUSE_LIBJPEG 0
229 /* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
230 #if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
231 # undef wxUSE_DEBUG_NEW_ALWAYS
232 # define wxUSE_DEBUG_NEW_ALWAYS 0
235 /* DMC++ doesn't have definitions for date picker control, so use generic control
238 # if wxUSE_DATEPICKCTRL
239 # undef wxUSE_DATEPICKCTRL_GENERIC
240 # undef wxUSE_DATEPICKCTRL
242 # define wxUSE_DATEPICKCTRL 0
243 # define wxUSE_DATEPICKCTRL_GENERIC 1
249 un/redefine the options which we can't compile (after checking that they're
254 # undef wxUSE_ACTIVEX
255 # define wxUSE_ACTIVEX 0
256 # endif /* wxUSE_ACTIVEX */
258 # if wxUSE_UNICODE_MSLU
259 # undef wxUSE_UNICODE_MSLU
260 # define wxUSE_UNICODE_MSLU 0
261 # endif /* wxUSE_UNICODE_MSLU */
262 #endif /* __WINE__ */
265 /* check settings consistency for MSW-specific ones */
266 #if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION
267 # ifdef wxABORT_ON_CONFIG_ERROR
268 # error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION"
270 # undef wxUSE_CRASHREPORT
271 # define wxUSE_CRASHREPORT 0
273 #endif /* wxUSE_CRASHREPORT */
277 # ifdef wxABORT_ON_CONFIG_ERROR
278 # error "wxActiveXContainer requires wxVariant"
280 # undef wxUSE_ACTIVEX
281 # define wxUSE_ACTIVEX 0
285 # if wxUSE_OLE_AUTOMATION
286 # ifdef wxABORT_ON_CONFIG_ERROR
287 # error "wxAutomationObject requires wxVariant"
289 # undef wxUSE_OLE_AUTOMATION
290 # define wxUSE_OLE_AUTOMATION 0
293 #endif /* !wxUSE_VARIANT */
295 #if !wxUSE_DYNAMIC_LOADER
296 # if wxUSE_MS_HTML_HELP
297 # ifdef wxABORT_ON_CONFIG_ERROR
298 # error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER."
300 # undef wxUSE_MS_HTML_HELP
301 # define wxUSE_MS_HTML_HELP 0
304 # if wxUSE_DIALUP_MANAGER
305 # ifdef wxABORT_ON_CONFIG_ERROR
306 # error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER."
308 # undef wxUSE_DIALUP_MANAGER
309 # define wxUSE_DIALUP_MANAGER 0
312 #endif /* !wxUSE_DYNAMIC_LOADER */
314 #if !wxUSE_DYNLIB_CLASS
316 # ifdef wxABORT_ON_CONFIG_ERROR
317 # error "wxUSE_UXTHEME requires wxUSE_DYNLIB_CLASS"
319 # undef wxUSE_UXTHEME
320 # define wxUSE_UXTHEME 0
324 # ifdef wxABORT_ON_CONFIG_ERROR
325 # error "wxUSE_MEDIACTRL requires wxUSE_DYNLIB_CLASS"
327 # undef wxUSE_MEDIACTRL
328 # define wxUSE_MEDIACTRL 0
332 # ifdef wxABORT_ON_CONFIG_ERROR
333 # error "wxUSE_INKEDIT requires wxUSE_DYNLIB_CLASS"
335 # undef wxUSE_INKEDIT
336 # define wxUSE_INKEDIT 0
339 #endif /* !wxUSE_DYNLIB_CLASS */
343 # ifdef wxABORT_ON_CONFIG_ERROR
344 # error "wxActiveXContainer requires wxUSE_OLE"
346 # undef wxUSE_ACTIVEX
347 # define wxUSE_ACTIVEX 0
352 # ifdef wxABORT_ON_CONFIG_ERROR
353 # error "wxUSE_DATAOBJ requires wxUSE_OLE"
355 # undef wxUSE_DATAOBJ
356 # define wxUSE_DATAOBJ 0
360 # if wxUSE_OLE_AUTOMATION
361 # ifdef wxABORT_ON_CONFIG_ERROR
362 # error "wxAutomationObject requires wxUSE_OLE"
364 # undef wxUSE_OLE_AUTOMATION
365 # define wxUSE_OLE_AUTOMATION 0
368 #endif /* !wxUSE_OLE */
372 # ifdef wxABORT_ON_CONFIG_ERROR
373 # error "wxMediaCtl requires wxActiveXContainer"
375 # undef wxUSE_MEDIACTRL
376 # define wxUSE_MEDIACTRL 0
379 #endif /* !wxUSE_ACTIVEX */
381 #if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
382 # undef wxUSE_POSTSCRIPT
383 # define wxUSE_POSTSCRIPT 1
386 #endif /* _WX_MSW_CHKCONF_H_ */