|
12 | 12 | #error LuaBridge 3 requires a compliant C++17 compiler, or C++17 has not been enabled ! |
13 | 13 | #endif |
14 | 14 |
|
| 15 | +#if defined(LUAU_FASTMATH_BEGIN) |
| 16 | +#define LUABRIDGE_ON_LUAU 1 |
| 17 | +#elif defined(LUAJIT_VERSION) |
| 18 | +#define LUABRIDGE_ON_LUAJIT 1 |
| 19 | +#elif defined(RAVI_OPTION_STRING2) |
| 20 | +#define LUABRIDGE_ON_RAVI 1 |
| 21 | +#elif defined(LUA_VERSION_NUM) |
| 22 | +#define LUABRIDGE_ON_LUA 1 |
| 23 | +#else |
| 24 | +#error "Lua headers must be included prior to LuaBridge ones" |
| 25 | +#endif |
| 26 | + |
15 | 27 | /** |
16 | 28 | * @brief Enable C++20 coroutine integration with Lua coroutines. |
17 | 29 | * |
18 | 30 | * Requires C++20 and Lua 5.2+ (lua_yieldk). Not supported on Lua 5.1, LuaJIT, or Luau. |
19 | 31 | * Define LUABRIDGE_DISABLE_CXX20_COROUTINES to force-disable even when C++20 is available. |
20 | 32 | */ |
21 | 33 | #if !defined(LUABRIDGE_HAS_CXX20_COROUTINES) |
22 | | -#if !defined(LUABRIDGE_DISABLE_CXX20_COROUTINES) && (__cplusplus >= 202002L || (defined(_MSC_VER) && _HAS_CXX20)) |
| 34 | +#if !defined(LUABRIDGE_DISABLE_CXX20_COROUTINES) && (__cplusplus >= 202002L || (defined(_MSC_VER) && _HAS_CXX20)) && !(LUABRIDGE_ON_LUAU || LUABRIDGE_ON_LUAJIT || LUABRIDGE_ON_RAVI || LUA_VERSION_NUM < 502) |
23 | 35 | #define LUABRIDGE_HAS_CXX20_COROUTINES 1 |
24 | 36 | #else |
25 | 37 | #define LUABRIDGE_HAS_CXX20_COROUTINES 0 |
|
62 | 74 | #define LUABRIDGE_NO_SANITIZE(x) |
63 | 75 | #endif |
64 | 76 |
|
65 | | -#if defined(LUAU_FASTMATH_BEGIN) |
66 | | -#define LUABRIDGE_ON_LUAU 1 |
67 | | -#elif defined(LUAJIT_VERSION) |
68 | | -#define LUABRIDGE_ON_LUAJIT 1 |
69 | | -#elif defined(RAVI_OPTION_STRING2) |
70 | | -#define LUABRIDGE_ON_RAVI 1 |
71 | | -#elif defined(LUA_VERSION_NUM) |
72 | | -#define LUABRIDGE_ON_LUA 1 |
73 | | -#else |
74 | | -#error "Lua headers must be included prior to LuaBridge ones" |
75 | | -#endif |
76 | | - |
77 | 77 | #if defined(__OBJC__) |
78 | 78 | #define LUABRIDGE_ON_OBJECTIVE_C 1 |
79 | 79 | #endif |
|
0 commit comments