From ae118bed1815773dd4d5ff3245be72b4182d47ec Mon Sep 17 00:00:00 2001 From: Jianhui Zhao Date: Mon, 5 May 2025 21:32:12 +0800 Subject: [PATCH] lua-cjson: add build VARIANT for Lua5.4 Signed-off-by: Jianhui Zhao --- lang/lua-cjson/Makefile | 24 +++++++++++++++--- ...5-3.patch => 001-add-support-lua5-x.patch} | 25 ++++++++++++++----- 2 files changed, 39 insertions(+), 10 deletions(-) rename lang/lua-cjson/patches/{001-add-support-lua5-3.patch => 001-add-support-lua5-x.patch} (75%) diff --git a/lang/lua-cjson/Makefile b/lang/lua-cjson/Makefile index 1e13d7256f..3a70707efb 100644 --- a/lang/lua-cjson/Makefile +++ b/lang/lua-cjson/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lua-cjson PKG_VERSION:=2.1.0 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_MAINTAINER:=Dirk Chang PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE @@ -46,13 +46,19 @@ define Package/lua-cjson-lua5.3 VARIANT:=lua-53 endef +define Package/lua-cjson-lua5.4 + $(Package/lua-cjson/default) + DEPENDS+=+liblua5.4 + VARIANT:=lua-54 +endef + define Package/lua-cjson/default/description Lua CJSON is a fast JSON encoding/parsing module for Lua. endef -define Package/lua-cjson-5.3/description - Lua5.3 CJSON is a fast JSON encoding/parsing module for Lua. -endef +Package/lua-cjson/description = $(Package/lua-cjson/default/description) +Package/lua-cjson-lua5.3/description = $(Package/lua-cjson/default/description) +Package/lua-cjson-lua5.4/description = $(Package/lua-cjson/default/description) CMAKE_OPTIONS += \ -DUSE_LUA=ON @@ -64,6 +70,10 @@ ifeq ($(BUILD_VARIANT),lua-53) CMAKE_OPTIONS += -DUSE_LUA53=ON endif +ifeq ($(BUILD_VARIANT),lua-54) + CMAKE_OPTIONS += -DUSE_LUA54=ON +endif + define Package/lua-cjson/install $(INSTALL_DIR) $(1)/usr/lib/lua $(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/lib/lua/ @@ -77,6 +87,12 @@ define Package/lua-cjson-lua5.3/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/local/lib/lua/5.3 endef +define Package/lua-cjson-lua5.4/install + $(INSTALL_DIR) $(1)/usr/local/lib/lua/5.4 + $(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/local/lib/lua/5.4 +endef + $(eval $(call HostBuild)) $(eval $(call BuildPackage,lua-cjson)) $(eval $(call BuildPackage,lua-cjson-lua5.3)) +$(eval $(call BuildPackage,lua-cjson-lua5.4)) diff --git a/lang/lua-cjson/patches/001-add-support-lua5-3.patch b/lang/lua-cjson/patches/001-add-support-lua5-x.patch similarity index 75% rename from lang/lua-cjson/patches/001-add-support-lua5-3.patch rename to lang/lua-cjson/patches/001-add-support-lua5-x.patch index 0fe824e7b5..253cfbdb39 100644 --- a/lang/lua-cjson/patches/001-add-support-lua5-3.patch +++ b/lang/lua-cjson/patches/001-add-support-lua5-x.patch @@ -14,13 +14,22 @@ lua_pushboolean(l, token->value.boolean); --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -15,8 +15,19 @@ if(NOT CMAKE_BUILD_TYPE) +@@ -15,8 +15,28 @@ if(NOT CMAKE_BUILD_TYPE) FORCE) endif() -find_package(Lua51 REQUIRED) -include_directories(${LUA_INCLUDE_DIR}) -+if(USE_LUA53) ++if(USE_LUA54) ++ find_path(LUA54_INCLUDE_DIRS lua.h PATH_SUFFIXES lua5.4) ++ find_library(LUA54_LIBRARIES lua5.4) ++ ++ if (NOT LUA54_INCLUDE_DIRS OR NOT LUA54_LIBRARIES) ++ message(FATAL_ERROR "Liblua 5.4 is required.") ++ endif() ++ ++ include_directories(${LUA54_INCLUDE_DIRS}) ++elseif(USE_LUA53) + find_path(LUA53_INCLUDE_DIRS lua.h PATH_SUFFIXES lua5.3) + find_library(LUA53_LIBRARIES lua5.3) + @@ -36,13 +45,15 @@ if(NOT USE_INTERNAL_FPCONV) # Use libc number conversion routines (strtod(), sprintf()) -@@ -51,7 +62,12 @@ if(NOT HAVE_ISINF) +@@ -51,7 +71,14 @@ if(NOT HAVE_ISINF) endif() set(_MODULE_LINK "${CMAKE_THREAD_LIBS_INIT}") -get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH) + -+if(USE_LUA53) ++if(USE_LUA54) ++ get_filename_component(_lua_lib_dir ${LUA54_LIBRARIES} PATH) ++elseif(USE_LUA53) + get_filename_component(_lua_lib_dir ${LUA53_LIBRARIES} PATH) +else() + get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH) @@ -50,12 +61,14 @@ if(APPLE) set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS -@@ -65,7 +81,11 @@ if(WIN32) +@@ -65,7 +92,13 @@ if(WIN32) # Windows sprintf()/strtod() handle NaN/inf differently. Not supported. add_definitions(-DDISABLE_INVALID_NUMBERS) else() - set(_lua_module_dir "${_lua_lib_dir}/lua/5.1") -+ if(USE_LUA53) ++ if(USE_LUA54) ++ set(_lua_module_dir "${_lua_lib_dir}/lua/5.4") ++ elseif(USE_LUA53) + set(_lua_module_dir "${_lua_lib_dir}/lua/5.3") + else() + set(_lua_module_dir "${_lua_lib_dir}/lua/5.1") -- 2.30.2