lua-cjson: add build VARIANT for Lua5.4
authorJianhui Zhao <redacted>
Mon, 5 May 2025 13:32:12 +0000 (21:32 +0800)
committerTianling Shen <redacted>
Thu, 22 May 2025 07:59:55 +0000 (15:59 +0800)
Signed-off-by: Jianhui Zhao <redacted>
lang/lua-cjson/Makefile
lang/lua-cjson/patches/001-add-support-lua5-x.patch [moved from lang/lua-cjson/patches/001-add-support-lua5-3.patch with 75% similarity]

index 1e13d7256f4f6b4f6c1915528439c8361bc4268f..3a70707efbffea9d1b78e86e43a8b2b0e8a49b34 100644 (file)
@@ -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 <dirk@kooiot.com>
 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))
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 0fe824e7b50e59f607b7b895bfe75d023062ca37..253cfbdb392f5f4164785d46fffc62c134013aff 100644 (file)
          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)
 +
  
  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)
  
  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")
git clone https://git.99rst.org/PROJECT