diff options
| -rw-r--r-- | CMakeLists.txt | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 15fbae5..5aa3263 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -4,33 +4,42 @@ project(yue CXX) | |||
| 4 | set(LUA_LIBDIR ${LUA_INCDIR}/../lib ${LUA_INCDIR}/../../lib) | 4 | set(LUA_LIBDIR ${LUA_INCDIR}/../lib ${LUA_INCDIR}/../../lib) |
| 5 | set(LUA_INCLUDE_DIR "${LUA_INCDIR}") | 5 | set(LUA_INCLUDE_DIR "${LUA_INCDIR}") |
| 6 | 6 | ||
| 7 | # Get Lua executable name to detect LuaJIT | ||
| 7 | get_filename_component(LUA_EXEC_NAME ${LUA} NAME) | 8 | get_filename_component(LUA_EXEC_NAME ${LUA} NAME) |
| 8 | if (LUA_EXEC_NAME STREQUAL "luajit") | 9 | |
| 10 | # Detect Lua version by executing the binary and checking _VERSION | ||
| 11 | execute_process( | ||
| 12 | COMMAND ${LUA} -e "print(_VERSION)" | ||
| 13 | OUTPUT_VARIABLE LUA_VERSION_STRING | ||
| 14 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
| 15 | ERROR_QUIET | ||
| 16 | ) | ||
| 17 | |||
| 18 | message(STATUS "Lua version string: ${LUA_VERSION_STRING}") | ||
| 19 | message(STATUS "Lua executable: ${LUA_EXEC_NAME}") | ||
| 20 | |||
| 21 | # Parse Lua version from _VERSION output or detect LuaJIT by executable name | ||
| 22 | if (LUA_EXEC_NAME MATCHES "luajit") | ||
| 9 | find_library(LUA_LIBRARIES | 23 | find_library(LUA_LIBRARIES |
| 10 | NAMES luajit libluajit | 24 | NAMES luajit libluajit |
| 11 | PATHS ${LUA_LIBDIR} | 25 | PATHS ${LUA_LIBDIR} |
| 12 | NO_DEFAULT_PATH) | 26 | NO_DEFAULT_PATH) |
| 13 | elseif (LUA_EXEC_NAME MATCHES "lua5\.5" OR LUA_EXEC_NAME MATCHES "lua55") | 27 | elseif (LUA_VERSION_STRING MATCHES "Lua 5.4") |
| 14 | find_library(LUA_LIBRARIES | ||
| 15 | NAMES lua55 lua5.5 liblua55 liblua5.5 lua liblua | ||
| 16 | PATHS ${LUA_LIBDIR} | ||
| 17 | NO_DEFAULT_PATH) | ||
| 18 | elseif (LUA_EXEC_NAME MATCHES "lua5\.4" OR LUA_EXEC_NAME MATCHES "lua54") | ||
| 19 | find_library(LUA_LIBRARIES | 28 | find_library(LUA_LIBRARIES |
| 20 | NAMES lua54 lua5.4 liblua54 liblua5.4 lua liblua | 29 | NAMES lua54 lua5.4 liblua54 liblua5.4 lua liblua |
| 21 | PATHS ${LUA_LIBDIR} | 30 | PATHS ${LUA_LIBDIR} |
| 22 | NO_DEFAULT_PATH) | 31 | NO_DEFAULT_PATH) |
| 23 | elseif (LUA_EXEC_NAME MATCHES "lua5\.3" OR LUA_EXEC_NAME MATCHES "lua53") | 32 | elseif (LUA_VERSION_STRING MATCHES "Lua 5.3") |
| 24 | find_library(LUA_LIBRARIES | 33 | find_library(LUA_LIBRARIES |
| 25 | NAMES lua53 lua5.3 liblua53 liblua5.3 lua liblua | 34 | NAMES lua53 lua5.3 liblua53 liblua5.3 lua liblua |
| 26 | PATHS ${LUA_LIBDIR} | 35 | PATHS ${LUA_LIBDIR} |
| 27 | NO_DEFAULT_PATH) | 36 | NO_DEFAULT_PATH) |
| 28 | elseif (LUA_EXEC_NAME MATCHES "lua5\.2" OR LUA_EXEC_NAME MATCHES "lua52") | 37 | elseif (LUA_VERSION_STRING MATCHES "Lua 5.2") |
| 29 | find_library(LUA_LIBRARIES | 38 | find_library(LUA_LIBRARIES |
| 30 | NAMES lua52 lua5.2 liblua52 liblua5.2 lua liblua | 39 | NAMES lua52 lua5.2 liblua52 liblua5.2 lua liblua |
| 31 | PATHS ${LUA_LIBDIR} | 40 | PATHS ${LUA_LIBDIR} |
| 32 | NO_DEFAULT_PATH) | 41 | NO_DEFAULT_PATH) |
| 33 | elseif (LUA_EXEC_NAME MATCHES "lua5\.1" OR LUA_EXEC_NAME MATCHES "lua51") | 42 | elseif (LUA_VERSION_STRING MATCHES "Lua 5.1") |
| 34 | find_library(LUA_LIBRARIES | 43 | find_library(LUA_LIBRARIES |
| 35 | NAMES lua51 lua5.1 liblua51 liblua5.1 lua liblua | 44 | NAMES lua51 lua5.1 liblua51 liblua5.1 lua liblua |
| 36 | PATHS ${LUA_LIBDIR} | 45 | PATHS ${LUA_LIBDIR} |
