[Lldb-commits] [lldb] [lldb] Support both Lua 5.3 and Lua 5.4 (PR #115500)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Nov 8 07:41:21 PST 2024
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/115500
Lua 5.3 and Lua 5.4 are similar enough that we can easily support both in LLDB. This patch adds support for building LLDB with both and updates the documentation accordingly.
>From 4858c858724b3b1047dec4f3d7dd00e672dfdb41 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Fri, 8 Nov 2024 07:39:01 -0800
Subject: [PATCH] [lldb] Support both Lua 5.3 and Lua 5.4
Lua 5.3 and Lua 5.4 are similar enough that we can easily support both
in LLDB. This patch adds support for building LLDB with both and updates
the documentation accordingly.
---
lldb/CMakeLists.txt | 3 +--
lldb/cmake/modules/FindLuaAndSwig.cmake | 16 ++++++++++++++--
lldb/docs/resources/build.rst | 2 +-
lldb/test/API/lit.site.cfg.py.in | 2 +-
4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 5827e04b5662f3..20fbb57d62e69a 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -87,8 +87,7 @@ if (LLDB_ENABLE_PYTHON)
endif ()
if (LLDB_ENABLE_LUA)
- find_program(Lua_EXECUTABLE lua5.3)
- set(LLDB_LUA_DEFAULT_RELATIVE_PATH "lib/lua/5.3")
+ set(LLDB_LUA_DEFAULT_RELATIVE_PATH "lib/lua/${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}")
set(LLDB_LUA_RELATIVE_PATH ${LLDB_LUA_DEFAULT_RELATIVE_PATH}
CACHE STRING "Path where Lua modules are installed, relative to install prefix")
endif ()
diff --git a/lldb/cmake/modules/FindLuaAndSwig.cmake b/lldb/cmake/modules/FindLuaAndSwig.cmake
index 11548b76f843f0..33fadb2a097407 100644
--- a/lldb/cmake/modules/FindLuaAndSwig.cmake
+++ b/lldb/cmake/modules/FindLuaAndSwig.cmake
@@ -8,11 +8,21 @@ if(LUA_LIBRARIES AND LUA_INCLUDE_DIR AND LLDB_ENABLE_SWIG)
set(LUAANDSWIG_FOUND TRUE)
else()
if (LLDB_ENABLE_SWIG)
- find_package(Lua 5.3 EXACT)
+ find_package(Lua 5.3)
if(LUA_FOUND)
+ # Find the Lua executable. Only required to run a subset of the Lua
+ # tests.
+ find_program(LUA_EXECUTABLE
+ NAMES
+ "lua"
+ "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}"
+ )
mark_as_advanced(
LUA_LIBRARIES
- LUA_INCLUDE_DIR)
+ LUA_INCLUDE_DIR
+ LUA_VERSION_MINOR
+ LUA_VERSION_MAJOR
+ LUA_EXECUTABLE)
endif()
else()
message(STATUS "SWIG 4 or later is required for Lua support in LLDB but could not be found")
@@ -26,5 +36,7 @@ else()
REQUIRED_VARS
LUA_LIBRARIES
LUA_INCLUDE_DIR
+ LUA_VERSION_MINOR
+ LUA_VERSION_MAJOR
LLDB_ENABLE_SWIG)
endif()
diff --git a/lldb/docs/resources/build.rst b/lldb/docs/resources/build.rst
index 33b6a6f79def4b..66db84522bff1f 100644
--- a/lldb/docs/resources/build.rst
+++ b/lldb/docs/resources/build.rst
@@ -64,7 +64,7 @@ CMake configuration error.
+-------------------+------------------------------------------------------+--------------------------+
| Python | Python scripting | ``LLDB_ENABLE_PYTHON`` |
+-------------------+------------------------------------------------------+--------------------------+
-| Lua | Lua scripting | ``LLDB_ENABLE_LUA`` |
+| Lua | Lua scripting. Lua 5.3 and 5.4 are supported. | ``LLDB_ENABLE_LUA`` |
+-------------------+------------------------------------------------------+--------------------------+
Depending on your platform and package manager, one might run any of the
diff --git a/lldb/test/API/lit.site.cfg.py.in b/lldb/test/API/lit.site.cfg.py.in
index 7dd8ffd2f5cb4c..ff6c705caea96c 100644
--- a/lldb/test/API/lit.site.cfg.py.in
+++ b/lldb/test/API/lit.site.cfg.py.in
@@ -20,7 +20,7 @@ config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
config.target_triple = "@LLVM_TARGET_TRIPLE@"
config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
config.python_executable = "@Python3_EXECUTABLE@"
-config.lua_executable = "@Lua_EXECUTABLE@"
+config.lua_executable = "@LUA_EXECUTABLE@"
config.lua_test_entry = "TestLuaAPI.py"
config.dotest_common_args_str = lit_config.substitute("@LLDB_TEST_COMMON_ARGS@")
config.dotest_user_args_str = lit_config.substitute("@LLDB_TEST_USER_ARGS@")
More information about the lldb-commits
mailing list