12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package("libjq")
- set_homepage("https://jqlang.org")
- set_description("Command-line JSON processor")
- set_license("MIT")
- add_urls("https://github.com/jqlang/jq/archive/refs/tags/jq-$(version).tar.gz",
- "https://github.com/jqlang/jq.git")
- add_versions("1.8.0" , "6f4137cfb1744e9729d177707c3880957ec3fab621db921fcb4c04e62ed9e636")
- add_versions("1.7.1" , "fc75b1824aba7a954ef0886371d951c3bf4b6e0a921d1aefc553f309702d6ed1")
- add_deps("autoconf", "automake", "libtool")
- add_configs("oniguruma", {description = "Build with oniguruma", default = true, type = "boolean"})
- add_configs("all_static", {description = "Link jq with static libraries only", default = false, type = "boolean"})
- if not is_host("windows") then
- add_extsources("pkgconfig::libjq")
- end
- if is_plat("mingw") and is_subhost("msys") then
- add_extsources("pacman::jq")
- elseif is_plat("linux") then
- add_extsources("apt::libjq-dev")
- elseif is_plat("macosx") then
- add_extsources("brew::jq")
- end
- if is_plat("linux", "bsd") then
- add_syslinks("m", "pthread")
- elseif is_plat("windows", "mingw") then
- add_syslinks("shlwapi")
- end
- on_check(function (package)
- assert(not (package:is_plat("android") and is_subhost("windows")), "package(libjq): does not support windows@android.")
- assert(not (package:is_plat("mingw") and is_subhost("msys")), "package(libjq): does not support mingw@msys.")
- end)
- on_load(function (package)
- if package:config("oniguruma") then
- package:add("deps", "oniguruma")
- end
- end)
- on_install("!windows and !wasm", function (package)
- if not package:is_cross() then
- package:addenv("PATH", "bin")
- end
- local configs = {"--enable-docs=no"}
- if package:config("shared") then
- table.insert(configs, "--enable-shared")
- table.insert(configs, "--disable-static")
- else
- table.insert(configs, "--enable-static")
- table.insert(configs, "--disable-shared")
- end
- if package:debug() then
- table.insert(configs, "--enable-debug")
- else
- table.insert(configs, "--disable-debug")
- end
- if package:config("all_static") then
- table.insert(configs, "--enable-all-static")
- end
- local opt = {}
- if package:config("oniguruma") then
- opt.packagedeps = "oniguruma"
- end
- table.insert(configs, "--with-oniguruma=" .. (package:config("oniguruma") and "yes" or "no"))
- import("package.tools.autoconf").install(package, configs, opt)
- end)
- on_test(function (package)
- if not package:is_cross() then
- os.vrun("jq --version")
- end
- assert(package:has_cfuncs("jq_init" , {includes = "jq.h"}))
- end)
|