diff --git a/packages/q/quickjs-ng/xmake.lua b/packages/q/quickjs-ng/xmake.lua index 487548c3049..863bb8e0c9d 100644 --- a/packages/q/quickjs-ng/xmake.lua +++ b/packages/q/quickjs-ng/xmake.lua @@ -6,6 +6,7 @@ package("quickjs-ng") add_urls("https://github.com/quickjs-ng/quickjs/archive/refs/tags/$(version).tar.gz", "https://github.com/quickjs-ng/quickjs.git", {submodules = false}) + add_versions("v0.11.0", "b456e6aa05522eed9cbf9dec1e947ba1ba6578fd09386391e581339ddabaa641") add_versions("v0.9.0", "77f9e79b42e2e7cff9517bae612431af47e120730286cb1dcfad0753bc160f10") add_versions("v0.8.0", "7e60e1e0dcd07d25664331308a2f4aee2a88d60d85896e828d25df7c3d40204e") add_versions("v0.7.0", "46c45cc2ed174474765dac8e41062998d92c4dd5fd779624da4073d6cd430eeb") @@ -29,11 +30,23 @@ package("quickjs-ng") assert(minor and minor >= 30, "package(quickjs-ng) require vs_toolset >= 14.3") end end) + on_check("iphoneos", function (package) + if package:version() and package:version():le("v0.11.0") then + raise("package(quickjs-ng <=v0.11.0) unsupported ios platform") + end + end) end on_install(function (package) io.replace("CMakeLists.txt", "xcheck_add_c_compiler_flag(-Werror)", "", {plain = true}) io.replace("CMakeLists.txt", "if(NOT WIN32 AND NOT EMSCRIPTEN)", "if(0)", {plain = true}) + if package:is_plat("wasm") then + io.replace("quickjs-libc.c", " defined(__wasi__)", " (defined(__wasi__) || defined(EMSCRIPTEN))", {plain = true}) + io.replace("quickjs-libc.c", " !defined(__wasi__)", " (!defined(__wasi__) && !defined(EMSCRIPTEN))", {plain = true}) + end + if package:is_plat("linux", "bsd", "cross") then + io.replace("CMakeLists.txt", "M_LIBRARIES OR CMAKE_C_COMPILER_ID STREQUAL \"TinyCC\"", "1", {plain = true}) -- m library link + end local configs = {} table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release")) @@ -45,20 +58,8 @@ package("quickjs-ng") if package:config("shared") and package:is_plat("windows") then table.insert(configs, "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON") end - if package:is_plat("wasm") then - io.replace("quickjs-libc.c", " defined(__wasi__)", " (defined(__wasi__) || defined(EMSCRIPTEN))", {plain = true}) - io.replace("quickjs-libc.c", " !defined(__wasi__)", " (!defined(__wasi__) && !defined(EMSCRIPTEN))", {plain = true}) - end - if package:is_plat("linux", "bsd", "cross") then - io.replace("CMakeLists.txt", "M_LIBRARIES OR CMAKE_C_COMPILER_ID STREQUAL \"TinyCC\"", "1", {plain = true}) -- m library link - end import("package.tools.cmake").install(package, configs) - if package:is_plat("windows") and package:is_debug() then - local dir = package:installdir(package:config("shared") and "bin" or "lib") - os.vcp(path.join(package:buildir(), "qjs.pdb"), dir) - end - os.trycp("*.h", package:installdir("include")) os.trycp(path.join(package:buildir(), "**.a"), package:installdir("lib")) os.trycp(path.join(package:buildir(), "**.so"), package:installdir("lib"))