Always define SIZEOF_WCHAR_T if it's not defined under Windows.

The assumption that SIZEOF_EVERYTHING_ELSE is defined when SIZEOF_INT is is
wrong. While wxWidgets configure does define all SIZEOF_XXX at once,
SIZEOF_INT could also be defined in some third party headers (e.g. Python.h)
and we still need to define the other ones.

In particular, doing this fixes the problem with SIZEOF_WCHAR_T not being
defined during wxPython build.

Closes #12013.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-05-21 12:52:12 +00:00
parent ebfee17940
commit f2b504977d

View File

@@ -820,21 +820,30 @@ typedef wxUint16 wxWord;
#define SIZEOF_VOID_P 4
#define SIZEOF_SIZE_T 4
#elif defined(__WINDOWS__)
/* Win64 uses LLP64 model and so ints and longs have the same size as in */
/* Win32 */
#if defined(__WIN32__)
typedef int wxInt32;
typedef unsigned int wxUint32;
/* Assume that if SIZEOF_INT is defined that all the other ones except
SIZEOF_SIZE_T, are too. See next #if below. */
/*
Win64 uses LLP64 model and so ints and longs have the same size as
in Win32.
*/
#ifndef SIZEOF_INT
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_WCHAR_T 2
#endif
#ifndef SIZEOF_LONG
#define SIZEOF_LONG 4
#endif
#ifndef SIZEOF_WCHAR_T
/* Windows uses UTF-16 */
#define SIZEOF_WCHAR_T 2
#endif
#ifndef SIZEOF_SIZE_T
/*
under Win64 sizeof(size_t) == 8 and so it is neither unsigned
Under Win64 sizeof(size_t) == 8 and so it is neither unsigned
int nor unsigned long!
*/
#ifdef __WIN64__
@@ -847,25 +856,14 @@ typedef wxUint16 wxWord;
#define wxSIZE_T_IS_UINT
#endif
#undef wxSIZE_T_IS_ULONG
#endif
#ifndef SIZEOF_VOID_P
#ifdef __WIN64__
#define SIZEOF_VOID_P 8
#else /* Win32 */
#define SIZEOF_VOID_P 4
#endif /* Win64/32 */
#endif /* !defined(SIZEOF_INT) */
/*
If Python.h was included first, it defines all of the SIZEOF's above
except for SIZEOF_SIZE_T, so we need to do it here to avoid
triggering the #error in the ssize_t typedefs below...
*/
#ifndef SIZEOF_SIZE_T
#ifdef __WIN64__
#define SIZEOF_SIZE_T 8
#else /* Win32 */
#define SIZEOF_SIZE_T 4
#endif
#endif
#else
#error "Unsupported Windows version"