Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ConfigurationString.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2023 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
8
10inline const char *GetConfigurationString()
11{
12 return JPH_IF_SINGLE_PRECISION_ELSE("Single", "Double") " precision "
13#if defined(JPH_CPU_X86)
14 "x86 "
15#elif defined(JPH_CPU_ARM)
16 "ARM "
17#elif defined(JPH_CPU_RISCV)
18 "RISC-V "
19#elif defined(JPH_CPU_PPC)
20 "PowerPC "
21 #ifdef JPH_CPU_BIG_ENDIAN
22 "(Big Endian) "
23 #else
24 "(Little Endian) "
25 #endif
26#elif defined(JPH_CPU_LOONGARCH)
27 "LoongArch "
28#elif defined(JPH_CPU_E2K)
29 "E2K "
30#elif defined(JPH_CPU_WASM)
31 "WASM "
32#else
33 #error Unknown CPU architecture
34#endif
35#if JPH_CPU_ARCH_BITS == 64
36 "64-bit "
37#elif JPH_CPU_ARCH_BITS == 32
38 "32-bit "
39#endif
40 "with instructions: "
41#ifdef JPH_USE_RVV
42 "RVV "
43#endif
44#ifdef JPH_USE_NEON
45 "NEON "
46#endif
47#ifdef JPH_USE_SSE
48 "SSE2 "
49#endif
50#ifdef JPH_USE_SSE4_1
51 "SSE4.1 "
52#endif
53#ifdef JPH_USE_SSE4_2
54 "SSE4.2 "
55#endif
56#ifdef JPH_USE_AVX
57 "AVX "
58#endif
59#ifdef JPH_USE_AVX2
60 "AVX2 "
61#endif
62#ifdef JPH_USE_AVX512
63 "AVX512 "
64#endif
65#ifdef JPH_USE_F16C
66 "F16C "
67#endif
68#ifdef JPH_USE_LZCNT
69 "LZCNT "
70#endif
71#ifdef JPH_USE_TZCNT
72 "TZCNT "
73#endif
74#ifdef JPH_USE_FMADD
75 "FMADD "
76#endif
77#ifdef JPH_CROSS_PLATFORM_DETERMINISTIC
78 "(Cross Platform Deterministic) "
79#endif
80#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
81 "(FP Exceptions) "
82#endif
83#ifdef JPH_DEBUG_RENDERER
84 "(Debug Renderer) "
85#endif
86#ifdef JPH_PROFILE_ENABLED
87 "(Profile) "
88#endif
89#ifdef JPH_EXTERNAL_PROFILE
90 "(External Profile) "
91#endif
92#if JPH_OBJECT_LAYER_BITS == 16
93 "(16-bit ObjectLayer) "
94#elif JPH_OBJECT_LAYER_BITS == 32
95 "(32-bit ObjectLayer) "
96#elif JPH_OBJECT_LAYER_BITS == 64
97 "(64-bit ObjectLayer) "
98#else
99 #error Invalid value for JPH_OBJECT_LAYER_BITS. Must be 16, 32 or 64.
100#endif
101#ifdef JPH_ENABLE_ASSERTS
102 "(Assertions) "
103#endif
104#ifdef JPH_OBJECT_STREAM
105 "(ObjectStream) "
106#endif
107#ifdef JPH_DEBUG
108 "(Debug) "
109#endif
110#if defined(__cpp_rtti) && __cpp_rtti
111 "(C++ RTTI) "
112#endif
113#if defined(__cpp_exceptions) && __cpp_exceptions
114 "(C++ Exceptions) "
115#endif
116#ifdef JPH_SHARED_LIBRARY
117 "(Shared Library) "
118#endif
119 ;
120}
121
JPH_NAMESPACE_BEGIN const char * GetConfigurationString()
Construct a string that lists the most important configuration settings.
Definition ConfigurationString.h:10
#define JPH_NAMESPACE_END
Definition Core.h:487
#define JPH_IF_SINGLE_PRECISION_ELSE(s, d)
Definition Core.h:651
#define JPH_NAMESPACE_BEGIN
Definition Core.h:481