mirror of
https://github.com/openwrt/packages.git
synced 2025-12-10 12:41:22 +00:00
quickjs: add new package
QuickJS is a small and embeddable JavaScript engine. It supports the ES2023 specification including modules, asynchronous generators, proxies and BigInt. Signed-off-by: George Sapkin <george@sapk.in>
This commit is contained in:
65
lang/quickjs/Makefile
Normal file
65
lang/quickjs/Makefile
Normal file
@@ -0,0 +1,65 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=quickjs
|
||||
PKG_VERSION:=2025.09.13
|
||||
# The source versioning structure is somewhat bizarre as the file name
|
||||
# might differ from the directory name and the version.
|
||||
PKG_SRC_VERSION:=2025-09-13
|
||||
PKG_SRC_VERSION_REV:=2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SRC_VERSION)$(if $(PKG_SRC_VERSION_REV),-$(PKG_SRC_VERSION_REV)).tar.xz
|
||||
PKG_SOURCE_URL:=https://bellard.org/quickjs/
|
||||
PKG_HASH:=996c6b5018fc955ad4d06426d0e9cb713685a00c825aa5c0418bd53f7df8b0b4
|
||||
|
||||
PKG_MAINTAINER:=George Sapkin <george@sapk.in>
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:quickjs_project:quickjs
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SRC_VERSION)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
# quickjs uses the same flags both for host and target compiler, so we need
|
||||
# to separate these and build host and target parts separately.
|
||||
HOST_MAKE_FLAGS := \
|
||||
$(MAKE_FLAGS) \
|
||||
CC="$(HOSTCC_NOCACHE)" \
|
||||
CFLAGS="$(HOST_CFLAGS) -D_GNU_SOURCE -DCONFIG_VERSION=\\\"$(PKG_SRC_VERSION)\\\"" \
|
||||
CROSS_PREFIX="$(TARGET_CROSS)"
|
||||
|
||||
TARGET_MAKE_FLAGS := \
|
||||
$(MAKE_FLAGS) \
|
||||
CC="$(TARGET_CC)" \
|
||||
CFLAGS_OPT="$(TARGET_CFLAGS) -D_GNU_SOURCE -DCONFIG_VERSION=\\\"$(PKG_SRC_VERSION)\\\"" \
|
||||
EXTRA_LIBS="-latomic" \
|
||||
QJSC=./host-qjsc
|
||||
|
||||
define Package/quickjs
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
TITLE:=QuickJS JavaScript engine
|
||||
URL:=https://bellard.org/quickjs
|
||||
DEPENDS:=+libatomic
|
||||
endef
|
||||
|
||||
define Package/quickjs/description
|
||||
QuickJS is a small and embeddable JavaScript engine. It supports the
|
||||
ES2023 specification including modules, asynchronous generators, proxies
|
||||
and BigInt.
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(INSTALL_DIR) $(PKG_BUILD_DIR)/.obj
|
||||
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(HOST_MAKE_FLAGS) host-qjsc
|
||||
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(TARGET_MAKE_FLAGS) qjs
|
||||
endef
|
||||
|
||||
define Package/quickjs/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/qjs $(1)/usr/bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,quickjs))
|
||||
5
lang/quickjs/test.sh
Normal file
5
lang/quickjs/test.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$1" = 'quickjs' ]; then
|
||||
qjs --help | grep -F "${PKG_VERSION//./-}"
|
||||
fi
|
||||
Reference in New Issue
Block a user