]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/chkconf.h
added wxGetWinVersion()
[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
17/*
18 * disable the settings which don't work for some compilers
19 */
20
12bdd77c
JS
21/*
22 * If using PostScript-in-MSW in Univ, must enable PostScript
23 */
12bdd77c 24#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT
5e7f00a1
VZ
25# undef wxUSE_POSTSCRIPT
26# define wxUSE_POSTSCRIPT 1
12bdd77c
JS
27#endif
28
01ebf752 29#ifndef wxUSE_NORLANDER_HEADERS
5e7f00a1
VZ
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
01ebf752
JS
35#endif
36
820a7a1b
VZ
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
b3dfbbc9 49/*
3e3a3e17
VZ
50 * All of the settings below require SEH support (__try/__catch) and can't work
51 * without it.
b3dfbbc9 52 */
3e3a3e17
VZ
53#if !defined(_MSC_VER) && \
54 (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550)
820a7a1b
VZ
55# undef wxUSE_ON_FATAL_EXCEPTION
56# define wxUSE_ON_FATAL_EXCEPTION 0
3e3a3e17 57
820a7a1b
VZ
58# undef wxUSE_CRASHREPORT
59# define wxUSE_CRASHREPORT 0
3e3a3e17 60
820a7a1b
VZ
61# undef wxUSE_STACKWALKER
62# define wxUSE_STACKWALKER 0
3e3a3e17 63#endif // compiler doesn't support SEH
b3dfbbc9 64
5e7f00a1 65/* wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior */
01ebf752 66#if defined(__MWERKS__)
820a7a1b
VZ
67# undef wxUSE_DEBUG_NEW_ALWAYS
68# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
69#endif
70
71#if defined(__GNUWIN32__)
5e7f00a1
VZ
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
01ebf752 81
5e7f00a1
VZ
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
01ebf752 88#endif
5e7f00a1
VZ
89
90#endif /* __GNUWIN32__ */
01ebf752
JS
91
92/* MFC duplicates these operators */
93#if wxUSE_MFC
5e7f00a1
VZ
94# undef wxUSE_GLOBAL_MEMORY_OPERATORS
95# define wxUSE_GLOBAL_MEMORY_OPERATORS 0
01ebf752 96
5e7f00a1
VZ
97# undef wxUSE_DEBUG_NEW_ALWAYS
98# define wxUSE_DEBUG_NEW_ALWAYS 0
99#endif /* wxUSE_MFC */
01ebf752
JS
100
101#if (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
820a7a1b
VZ
102 /* GnuWin32 doesn't have appropriate headers for e.g. IUnknown. */
103# undef wxUSE_DRAG_AND_DROP
104# define wxUSE_DRAG_AND_DROP 0
01ebf752
JS
105#endif
106
d7bc7fec 107#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__)
820a7a1b
VZ
108# undef wxUSE_CHECKLISTBOX
109# define wxUSE_CHECKLISTBOX 0
01ebf752
JS
110#endif
111
0e871ad0
WS
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
01ebf752 123#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
5e7f00a1
VZ
124 /* BC++ 4.0 can't compile JPEG library */
125# undef wxUSE_LIBJPEG
126# define wxUSE_LIBJPEG 0
01ebf752
JS
127#endif
128
129/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */
130#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
5e7f00a1
VZ
131# undef wxUSE_DEBUG_NEW_ALWAYS
132# define wxUSE_DEBUG_NEW_ALWAYS 0
01ebf752
JS
133#endif
134
5e7f00a1 135/* Early Watcom version don't have good enough wide char support */
01ebf752 136#if defined(__WXMSW__) && (defined(__WATCOMC__) && __WATCOMC__ < 1200)
5e7f00a1
VZ
137# undef wxUSE_WCHAR_T
138# define wxUSE_WCHAR_T 0
8175d025
WS
139#endif
140
90a752c2
JS
141/* DMC++ doesn't have definitions for date picker control, so use generic control
142 */
90a752c2 143#ifdef __DMC__
820a7a1b
VZ
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
90a752c2
JS
150#endif
151
5e7f00a1 152#endif /* _WX_MSW_CHKCONF_H_ */
01ebf752 153