2
0

ConfigurationString.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2023 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. JPH_NAMESPACE_BEGIN
  6. /// Construct a string that lists the most important configuration settings
  7. inline const char *GetConfigurationString()
  8. {
  9. return JPH_IF_SINGLE_PRECISION_ELSE("Single", "Double") " precision "
  10. #if defined(JPH_CPU_X86)
  11. "x86 "
  12. #elif defined(JPH_CPU_ARM)
  13. "ARM "
  14. #elif defined(JPH_PLATFORM_WASM)
  15. "WASM "
  16. #endif
  17. #if JPH_CPU_ADDRESS_BITS == 64
  18. "64-bit "
  19. #elif JPH_CPU_ADDRESS_BITS == 32
  20. "32-bit "
  21. #endif
  22. "with instructions: "
  23. #ifdef JPH_USE_NEON
  24. "NEON "
  25. #endif
  26. #ifdef JPH_USE_SSE
  27. "SSE2 "
  28. #endif
  29. #ifdef JPH_USE_SSE4_1
  30. "SSE4.1 "
  31. #endif
  32. #ifdef JPH_USE_SSE4_2
  33. "SSE4.2 "
  34. #endif
  35. #ifdef JPH_USE_AVX
  36. "AVX "
  37. #endif
  38. #ifdef JPH_USE_AVX2
  39. "AVX2 "
  40. #endif
  41. #ifdef JPH_USE_AVX512
  42. "AVX512 "
  43. #endif
  44. #ifdef JPH_USE_F16C
  45. "F16C "
  46. #endif
  47. #ifdef JPH_USE_LZCNT
  48. "LZCNT "
  49. #endif
  50. #ifdef JPH_USE_TZCNT
  51. "TZCNT "
  52. #endif
  53. #ifdef JPH_USE_FMADD
  54. "FMADD "
  55. #endif
  56. #ifdef JPH_CROSS_PLATFORM_DETERMINISTIC
  57. "(Cross Platform Deterministic) "
  58. #endif
  59. #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
  60. "(FP Exceptions) "
  61. #endif
  62. #ifdef _DEBUG
  63. "(Debug) "
  64. #endif
  65. ;
  66. }
  67. JPH_NAMESPACE_END