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:
@@ -820,21 +820,30 @@ typedef wxUint16 wxWord;
|
|||||||
#define SIZEOF_VOID_P 4
|
#define SIZEOF_VOID_P 4
|
||||||
#define SIZEOF_SIZE_T 4
|
#define SIZEOF_SIZE_T 4
|
||||||
#elif defined(__WINDOWS__)
|
#elif defined(__WINDOWS__)
|
||||||
/* Win64 uses LLP64 model and so ints and longs have the same size as in */
|
|
||||||
/* Win32 */
|
|
||||||
#if defined(__WIN32__)
|
#if defined(__WIN32__)
|
||||||
typedef int wxInt32;
|
typedef int wxInt32;
|
||||||
typedef unsigned int wxUint32;
|
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
|
#ifndef SIZEOF_INT
|
||||||
#define SIZEOF_INT 4
|
#define SIZEOF_INT 4
|
||||||
#define SIZEOF_LONG 4
|
#endif
|
||||||
#define SIZEOF_WCHAR_T 2
|
|
||||||
|
|
||||||
|
#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!
|
int nor unsigned long!
|
||||||
*/
|
*/
|
||||||
#ifdef __WIN64__
|
#ifdef __WIN64__
|
||||||
@@ -847,25 +856,14 @@ typedef wxUint16 wxWord;
|
|||||||
#define wxSIZE_T_IS_UINT
|
#define wxSIZE_T_IS_UINT
|
||||||
#endif
|
#endif
|
||||||
#undef wxSIZE_T_IS_ULONG
|
#undef wxSIZE_T_IS_ULONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SIZEOF_VOID_P
|
||||||
#ifdef __WIN64__
|
#ifdef __WIN64__
|
||||||
#define SIZEOF_VOID_P 8
|
#define SIZEOF_VOID_P 8
|
||||||
#else /* Win32 */
|
#else /* Win32 */
|
||||||
#define SIZEOF_VOID_P 4
|
#define SIZEOF_VOID_P 4
|
||||||
#endif /* Win64/32 */
|
#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
|
#endif
|
||||||
#else
|
#else
|
||||||
#error "Unsupported Windows version"
|
#error "Unsupported Windows version"
|
||||||
|
Reference in New Issue
Block a user