Pillow/src/libImaging/ImPlatform.h

86 lines
1.6 KiB
C
Raw Normal View History

/*
2010-07-31 06:52:47 +04:00
* The Python Imaging Library
* $Id$
*
* platform declarations for the imaging core library
*
* Copyright (c) Fredrik Lundh 1995-2003.
*/
#include "Python.h"
/* Workaround issue #2479 */
2021-01-03 06:17:51 +03:00
#if PY_VERSION_HEX < 0x03070000 && defined(PySlice_GetIndicesEx) && \
!defined(PYPY_VERSION)
#undef PySlice_GetIndicesEx
#endif
2010-07-31 06:52:47 +04:00
/* Check that we have an ANSI compliant compiler */
#ifndef HAVE_PROTOTYPES
#error Sorry, this library requires support for ANSI prototypes.
#endif
#ifndef STDC_HEADERS
#error Sorry, this library requires ANSI header files.
#endif
#if defined(PIL_NO_INLINE)
2016-06-17 13:03:21 +03:00
#define inline
#else
#if defined(_MSC_VER) && !defined(__GNUC__)
2010-07-31 06:52:47 +04:00
#define inline __inline
2014-05-09 22:14:46 +04:00
#endif
2010-07-31 06:52:47 +04:00
#endif
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#else
/* For System that are not Windows, we'll need to define these. */
2010-07-31 06:52:47 +04:00
#if SIZEOF_SHORT == 2
2020-05-01 15:08:57 +03:00
#define INT16 short
2010-07-31 06:52:47 +04:00
#elif SIZEOF_INT == 2
2020-05-01 15:08:57 +03:00
#define INT16 int
2010-07-31 06:52:47 +04:00
#else
2020-05-01 15:08:57 +03:00
#define INT16 short /* most things works just fine anyway... */
2010-07-31 06:52:47 +04:00
#endif
#if SIZEOF_SHORT == 4
2020-05-01 15:08:57 +03:00
#define INT32 short
2010-07-31 06:52:47 +04:00
#elif SIZEOF_INT == 4
2020-05-01 15:08:57 +03:00
#define INT32 int
2010-07-31 06:52:47 +04:00
#elif SIZEOF_LONG == 4
2020-05-01 15:08:57 +03:00
#define INT32 long
2010-07-31 06:52:47 +04:00
#else
#error Cannot find required 32-bit integer type
#endif
#if SIZEOF_LONG == 8
2020-05-01 15:08:57 +03:00
#define INT64 long
2010-07-31 06:52:47 +04:00
#elif SIZEOF_LONG_LONG == 8
2020-05-01 15:08:57 +03:00
#define INT64 long
2010-07-31 06:52:47 +04:00
#endif
2021-01-03 06:17:51 +03:00
#define INT8 signed char
2020-05-01 15:08:57 +03:00
#define UINT8 unsigned char
2010-07-31 06:52:47 +04:00
2020-05-01 15:08:57 +03:00
#define UINT16 unsigned INT16
#define UINT32 unsigned INT32
#endif
/* assume IEEE; tweak if necessary (patches are welcome) */
2020-05-01 15:08:57 +03:00
#define FLOAT16 UINT16
#define FLOAT32 float
#define FLOAT64 double
2014-07-06 02:06:17 +04:00
#ifdef _MSC_VER
2021-01-03 06:17:51 +03:00
typedef signed __int64 int64_t;
2014-07-06 02:06:17 +04:00
#endif
#ifdef __GNUC__
2021-01-03 06:17:51 +03:00
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif