mirror of
https://github.com/openwrt/packages.git
synced 2025-12-10 12:41:22 +00:00
lua-cjson: add build VARIANT for Lua5.3
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
This commit is contained in:
committed by
Rosen Penev
parent
1302e503a3
commit
92953c1d7d
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=lua-cjson
|
||||
PKG_VERSION:=2.1.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
PKG_MAINTAINER:=Dirk Chang <dirk@kooiot.com>
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
@@ -18,31 +18,52 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://kyne.au/~mark/software/download/
|
||||
PKG_HASH:=51bc69cd55931e0cba2ceae39e9efa2483f4292da3a88a1ed470eda829f6c778
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
HOST_BUILD_DEPENDS:=lua/host
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
define Package/lua-cjson
|
||||
define Package/lua-cjson/default
|
||||
SUBMENU:=Lua
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
TITLE:=Lua CJSON parser
|
||||
URL:=https://github.com/mpx/lua-cjson
|
||||
DEPENDS:= +lua
|
||||
endef
|
||||
|
||||
define Package/lua-cjson/description
|
||||
define Package/lua-cjson
|
||||
$(Package/lua-cjson/default)
|
||||
DEPENDS+=+liblua
|
||||
VARIANT:=lua-51
|
||||
endef
|
||||
|
||||
define Package/lua-cjson-lua5.3
|
||||
$(Package/lua-cjson/default)
|
||||
DEPENDS+=+liblua5.3
|
||||
VARIANT:=lua-53
|
||||
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
|
||||
|
||||
CMAKE_OPTIONS += \
|
||||
-DUSE_LUA=ON
|
||||
|
||||
CMAKE_HOST_OPTIONS += \
|
||||
-DLUA_MATH_LIBRARY=m
|
||||
|
||||
ifeq ($(BUILD_VARIANT),lua-53)
|
||||
CMAKE_OPTIONS += -DUSE_LUA53=ON
|
||||
endif
|
||||
|
||||
define Package/lua-cjson/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/lua
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/lib/lua/
|
||||
@@ -51,5 +72,11 @@ define Package/lua-cjson/install
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/lua/cjson/util.lua $(1)/usr/lib/lua/cjson
|
||||
endef
|
||||
|
||||
define Package/lua-cjson-lua5.3/install
|
||||
$(INSTALL_DIR) $(1)/usr/local/lib/lua/5.3
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cjson.so $(1)/usr/local/lib/lua/5.3
|
||||
endef
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,lua-cjson))
|
||||
$(eval $(call BuildPackage,lua-cjson-lua5.3))
|
||||
|
||||
65
lang/lua-cjson/patches/001-add-support-lua5-3.patch
Normal file
65
lang/lua-cjson/patches/001-add-support-lua5-3.patch
Normal file
@@ -0,0 +1,65 @@
|
||||
--- a/lua_cjson.c
|
||||
+++ b/lua_cjson.c
|
||||
@@ -1227,7 +1227,10 @@ static void json_process_value(lua_State
|
||||
lua_pushlstring(l, token->value.string, token->string_len);
|
||||
break;;
|
||||
case T_NUMBER:
|
||||
- lua_pushnumber(l, token->value.number);
|
||||
+ if ((lua_Integer)token->value.number == token->value.number)
|
||||
+ lua_pushinteger(l, (lua_Integer)token->value.number);
|
||||
+ else
|
||||
+ lua_pushnumber(l, token->value.number);
|
||||
break;;
|
||||
case T_BOOLEAN:
|
||||
lua_pushboolean(l, token->value.boolean);
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -15,8 +15,19 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
FORCE)
|
||||
endif()
|
||||
|
||||
-find_package(Lua51 REQUIRED)
|
||||
-include_directories(${LUA_INCLUDE_DIR})
|
||||
+if(USE_LUA53)
|
||||
+ find_path(LUA53_INCLUDE_DIRS lua.h PATH_SUFFIXES lua5.3)
|
||||
+ find_library(LUA53_LIBRARIES lua5.3)
|
||||
+
|
||||
+ if (NOT LUA53_INCLUDE_DIRS OR NOT LUA53_LIBRARIES)
|
||||
+ message(FATAL_ERROR "Liblua 5.3 is required.")
|
||||
+ endif()
|
||||
+
|
||||
+ include_directories(${LUA53_INCLUDE_DIRS})
|
||||
+else()
|
||||
+ find_package(Lua51 REQUIRED)
|
||||
+ include_directories(${LUA_INCLUDE_DIR})
|
||||
+endif()
|
||||
|
||||
if(NOT USE_INTERNAL_FPCONV)
|
||||
# Use libc number conversion routines (strtod(), sprintf())
|
||||
@@ -51,7 +62,12 @@ if(NOT HAVE_ISINF)
|
||||
endif()
|
||||
|
||||
set(_MODULE_LINK "${CMAKE_THREAD_LIBS_INIT}")
|
||||
-get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH)
|
||||
+
|
||||
+if(USE_LUA53)
|
||||
+ get_filename_component(_lua_lib_dir ${LUA53_LIBRARIES} PATH)
|
||||
+else()
|
||||
+ get_filename_component(_lua_lib_dir ${LUA_LIBRARY} PATH)
|
||||
+endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS
|
||||
@@ -65,7 +81,11 @@ 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)
|
||||
+ set(_lua_module_dir "${_lua_lib_dir}/lua/5.3")
|
||||
+ else()
|
||||
+ set(_lua_module_dir "${_lua_lib_dir}/lua/5.1")
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
add_library(cjson MODULE lua_cjson.c strbuf.c ${FPCONV_SOURCES})
|
||||
Reference in New Issue
Block a user