|
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 | + |
| 27 | +/** |
| 28 | + * @brief Enable C++20 coroutine integration with Lua coroutines. |
| 29 | + * |
| 30 | + * Requires C++20 and Lua 5.2+ (lua_yieldk). Not supported on Lua 5.1, LuaJIT, or Luau. |
| 31 | + * Define LUABRIDGE_DISABLE_CXX20_COROUTINES to force-disable even when C++20 is available. |
| 32 | + */ |
| 33 | +#if !defined(LUABRIDGE_HAS_CXX20_COROUTINES) |
| 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) |
| 35 | +#define LUABRIDGE_HAS_CXX20_COROUTINES 1 |
| 36 | +#else |
| 37 | +#define LUABRIDGE_HAS_CXX20_COROUTINES 0 |
| 38 | +#endif |
| 39 | +#endif |
| 40 | + |
15 | 41 | #if !defined(LUABRIDGE_HAS_EXCEPTIONS) |
16 | 42 | #if defined(_MSC_VER) |
17 | 43 | #if _CPPUNWIND || _HAS_EXCEPTIONS |
|
48 | 74 | #define LUABRIDGE_NO_SANITIZE(x) |
49 | 75 | #endif |
50 | 76 |
|
51 | | -#if defined(LUAU_FASTMATH_BEGIN) |
52 | | -#define LUABRIDGE_ON_LUAU 1 |
53 | | -#elif defined(LUAJIT_VERSION) |
54 | | -#define LUABRIDGE_ON_LUAJIT 1 |
55 | | -#elif defined(RAVI_OPTION_STRING2) |
56 | | -#define LUABRIDGE_ON_RAVI 1 |
57 | | -#elif defined(LUA_VERSION_NUM) |
58 | | -#define LUABRIDGE_ON_LUA 1 |
59 | | -#else |
60 | | -#error "Lua headers must be included prior to LuaBridge ones" |
61 | | -#endif |
62 | | - |
63 | 77 | #if defined(__OBJC__) |
64 | 78 | #define LUABRIDGE_ON_OBJECTIVE_C 1 |
65 | 79 | #endif |
|
0 commit comments