-
Notifications
You must be signed in to change notification settings - Fork 27
/
libode-config.h.cmake
133 lines (110 loc) · 4.33 KB
/
libode-config.h.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* This file was autogenerated by CMake */
#ifndef _ODE_CONFIG_H_
#define _ODE_CONFIG_H_
/******************************************************************
* CONFIGURATON SETTINGS - you can change these, and then rebuild
* ODE to modify the behavior of the library.
*
* dTRIMESH_ENABLED - enable/disable trimesh support
* dTRIMESH_OPCODE - use the OPCODE trimesh engine
* dTRIMESH_GIMPACT - use the GIMPACT trimesh engine
* Only one trimesh engine should be enabled.
*
* dTRIMESH_16BIT_INDICES (todo: opcode only)
* Setup the trimesh engine to use 16 bit
* triangle indices. The default is to use
* 32 bit indices. Use the dTriIndex type to
* detect the correct index size.
*
* dTRIMESH_OPCODE_USE_NEWOLD_TRIMESH_TRIMESH_COLLIDER
* Use old implementation of trimesh-trimesh collider
* (for backward compatibility only)
*
* dOU_ENABLED
* dATOMICS_ENABLED
* dTLS_ENABLED
* Use generic features of OU library, atomic API
* and TLS API respectively.
* Generic features and atomic API are always enabled,
* unless threading interface support is disabled.
* Using TLS for global variables allows calling ODE
* collision detection functions from multiple threads.
*
* dBUILTIN_THREADING_IMPL_ENABLED
* Include built-in multithreaded threading
* implementation (still must be created and assigned
* to be used).
*
******************************************************************/
#cmakedefine dTRIMESH_ENABLED 1
#cmakedefine dTRIMESH_OPCODE 1
#cmakedefine dTRIMESH_GIMPACT 1
#cmakedefine01 dTRIMESH_16BIT_INDICES
#cmakedefine01 dTRIMESH_OPCODE_USE_OLD_TRIMESH_TRIMESH_COLLIDER
#cmakedefine dOU_ENABLED 1
#cmakedefine dATOMICS_ENABLED 1
#cmakedefine dTLS_ENABLED 1
#cmakedefine dTHREADING_INTF_DISABLED 1
#cmakedefine dBUILTIN_THREADING_IMPL_ENABLED 1
/******************************************************************
* SYSTEM SETTINGS - you shouldn't need to change these. If you
* run into an issue with these settings, please report it to
* the ODE bug tracker at:
* http://sf.net/tracker/?group_id=24884&atid=382799
******************************************************************/
/* Try to identify the platform */
#if defined(_XENON)
#define ODE_PLATFORM_XBOX360
#elif defined(SN_TARGET_PSP_HW)
#define ODE_PLATFORM_PSP
#elif defined(SN_TARGET_PS3)
#define ODE_PLATFORM_PS3
#elif defined(_MSC_VER) || defined(__CYGWIN32__) || defined(__MINGW32__)
#define ODE_PLATFORM_WINDOWS
#elif defined(__linux__)
#define ODE_PLATFORM_LINUX
#elif defined(__APPLE__) && defined(__MACH__)
#define ODE_PLATFORM_OSX
#else
#error "Need some help identifying the platform!"
#endif
/* Additional platform defines used in the code */
#if defined(ODE_PLATFORM_WINDOWS) && !defined(WIN32)
#define WIN32
#endif
#if defined(__CYGWIN32__) || defined(__MINGW32__)
#define CYGWIN
#endif
#if defined(ODE_PLATFORM_OSX)
#define macintosh
#endif
#if !defined(ODE_PLATFORM_OSX) && !defined(ODE_PLATFORM_PS3)
#include <malloc.h>
#endif
#if !defined(ODE_PLATFORM_WINDOWS)
#include <alloca.h>
#endif
#ifdef dSINGLE
#define dEpsilon FLT_EPSILON
#else
#define dEpsilon DBL_EPSILON
#endif
/* An integer type that can be safely cast to a pointer. This definition
* should be safe even on 64-bit systems */
typedef size_t intP;
/* The efficient alignment. most platforms align data structures to some
* number of bytes, but this is not always the most efficient alignment.
* for example, many x86 compilers align to 4 bytes, but on a pentium it is
* important to align doubles to 8 byte boundaries (for speed), and the 4
* floats in a SIMD register to 16 byte boundaries. many other platforms have
* similar behavior. setting a larger alignment can waste a (very) small
* amount of memory. NOTE: this number must be a power of two. */
#define EFFICIENT_ALIGNMENT 16
/* Basic OU functionality is required if either atomic API or TLS support
* is enabled. */
#if dATOMICS_ENABLED || dTLS_ENABLED
#undef dOU_ENABLED
#define dOU_ENABLED 1
#endif
#include "typedefs.h"
#endif