19// Includes all system headers required to use the openNURBS toolkit.
24#if !defined(OPENNURBS_SYSTEM_INC_)
25#define OPENNURBS_SYSTEM_INC_
27#if defined(TL_PURIFY_BUILD) || defined(RHINO_PURIFY_BUILD)
28#if !defined(ON_PURIFY_BUILD)
29#define ON_PURIFY_BUILD
37#define ON_COMPILER_MSC
40#define ON_COMPILER_MSC1300
47#define ON_COMPILER_MSC1400
55#if defined(ON_COMPILING_OPENNURBS)
56#pragma warning(disable:4100)
59#if !defined(_CRT_SECURE_NO_DEPRECATE)
60#define _CRT_SECURE_NO_DEPRECATE
74#if defined(__GNUG_) || defined(__GNUG__) || defined(__GNUC_) || defined(__GNUC__) || defined(_GNU_SOURCE) || defined(__GNU_SOURCE)
76#if !defined(ON_COMPILER_GNU)
77#define ON_COMPILER_GNU
79#if !defined(_GNU_SOURCE)
85#if defined(_GNU_SOURCE) && defined(__APPLE__)
87#if !defined(ON_COMPILER_XCODE)
88#define ON_COMPILER_XCODE
92#if defined(__BORLANDC__)
94#define ON_COMPILER_BORLAND
102#if !defined(ON_NO_WINDOWS)
107// Begin Windows system includes -
109#if defined(_WIN32) || defined(WIN32) || defined(_WIN64) || defined(WIN64)
111#if defined(_M_X64) && defined(WIN32) && defined(WIN64)
115#if defined(_INC_WINDOWS)
137#if !defined(_WINDOWS_)
139#define WIN32_LEAN_AND_MEAN
143#if defined(_M_X64) && defined(WIN32) && defined(WIN64)
156#if !defined(ON_OS_WINDOWS)
160#if defined(ON_OS_WINDOWS) && !defined(NOGDI)
162#define ON_OS_WINDOWS_GDI
172#define ON_MSC_CDECL __cdecl
200#if defined(ON_COMPILER_IRIX)
204#if !defined(ON_COMPILER_BORLAND)
208#if defined(ON_OS_WINDOWS)
219#if defined(ON_COMPILER_GNU)
220#include <sys/types.h>
223#if defined(ON_COMPILER_XCODE)
224#include <uuid/uuid.h>
228#if defined (cplusplus) || defined(_cplusplus) || defined(__cplusplus)
231#if !defined(ON_CPLUSPLUS)
239#if !defined(ON_MSC_CDECL)
243#if !defined(ON_OS_WINDOWS)
259#if !defined(_WCHAR_T_DEFINED)
267#if !defined(_WCHAR_T)
272#define _WCHAR_T_DEFINED
287#if defined(_M_X64) || defined(_WIN64) || defined(__LP64__)
289#define ON_SIZEOF_POINTER 8
290#define ON_64BIT_POINTER
293#define ON_SIZEOF_POINTER 4
294#define ON_32BIT_POINTER
297#if defined(ON_PURIFY_BUILD)
300#pragma message(" --- OpenNURBS Purify build.")
301#if defined(ON_32BIT_POINTER) && defined(ON_COMPILING_OPENNURBS)
306#include "../PurifyAPI/pure.h"
328#if defined(ON_COMPILER_MSC)
338#elif defined(ON_COMPILER_GNU)
350#error Verify that long long is a 64 bit integer with your compiler!
365#if 8 == ON_SIZEOF_POINTER
367#if defined(ON_COMPILER_GNU)
375#elif 4 == ON_SIZEOF_POINTER
381#error Update OpenNURBS to work with new pointer size.
402#if defined(ON_OS_WINDOWS) && defined(ON_COMPILER_MSC)
404#if defined(_M_X64) || defined(_M_IX86)
405#if !defined(ON_LITTLE_ENDIAN)
406#define ON_LITTLE_ENDIAN
415#if defined(ON_LITTLE_ENDIAN) && defined(ON_BIG_ENDIAN)
416#error At most one of ON_LITTLE_ENDIAN and ON_BIG_ENDIAN can be defined.
423int on_vsnprintf(
char *buffer,
size_t count,
const char *format, va_list argptr );
425int on_vsnwprintf(
wchar_t *buffer,
size_t count,
const wchar_t *format, va_list argptr );
short ON__INT16
Definition opennurbs_system.h:317
long long ON__INT64
Definition opennurbs_system.h:353
char ON__INT8
Definition opennurbs_system.h:311
unsigned char ON__UINT8
Definition opennurbs_system.h:314
unsigned long long ON__UINT64
Definition opennurbs_system.h:356
int ON__INT32
Definition opennurbs_system.h:323
unsigned short ON__UINT16
Definition opennurbs_system.h:320
int ON_BOOL32
Definition opennurbs_system.h:362
int on_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
Definition opennurbs_defines.cpp:813
int on_vsnwprintf(wchar_t *buffer, size_t count, const wchar_t *format, va_list argptr)
Definition opennurbs_defines.cpp:828
unsigned int ON__UINT_PTR
Definition opennurbs_system.h:378
unsigned int ON__UINT32
Definition opennurbs_system.h:326
int ON__INT_PTR
Definition opennurbs_system.h:377