diff options
| author | ruki <[email protected]> | 2026-04-19 21:04:57 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-04-19 21:04:57 +0800 |
| commit | b8434770f9188e5871a5e3de8d09e6d01d17f2f4 (patch) | |
| tree | 3e4884403b5e956f221147c7533f8305b92e90f0 | |
| parent | faa506fc78f04fb6246c1cb26092d2ec43fd46d8 (diff) | |
fix package info with json format
| -rw-r--r-- | xmake/modules/private/action/require/info.lua | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/xmake/modules/private/action/require/info.lua b/xmake/modules/private/action/require/info.lua index f6ef3b1e4..b0b1cc24b 100644 --- a/xmake/modules/private/action/require/info.lua +++ b/xmake/modules/private/action/require/info.lua @@ -77,6 +77,7 @@ function _collect_package_info(instance) local urls = instance:urls() if urls and #urls > 0 then info.urls = {} + json.mark_as_array(info.urls) local schemes = instance:schemes_orderlist() if schemes then for _, scheme in ipairs(schemes) do @@ -85,6 +86,7 @@ function _collect_package_info(instance) if surls and #surls > 0 then local scheme_name = scheme:is_default() and "default" or scheme:name() local scheme_info = {name = scheme_name, urls = {}} + json.mark_as_array(scheme_info.urls) for _, url in ipairs(surls) do local url_entry = {url = filter.handle(url, instance)} if git.asgiturl(url) then @@ -112,6 +114,7 @@ function _collect_package_info(instance) local deps = instance:orderdeps() if deps and #deps > 0 then info.deps = {} + json.mark_as_array(info.deps) for _, dep in ipairs(deps) do local dep_requireinfo = dep:requireinfo() or {} table.insert(info.deps, dep_requireinfo.originstr) @@ -121,6 +124,7 @@ function _collect_package_info(instance) info.cachedir = instance:cachedir() info.installdir = instance:installdir() info.searchdirs = table.wrap(core_package.searchdirs()) + json.mark_as_array(info.searchdirs) -- fetch info local fetchinfo = instance:fetch() @@ -141,6 +145,7 @@ function _collect_package_info(instance) else table.insert(platforms, "all") end + json.mark_as_array(platforms) info.platforms = platforms -- requires @@ -182,9 +187,11 @@ function _collect_package_info(instance) end end if #configs > 0 then + json.mark_as_array(configs) info.configs = configs end if #builtin_configs > 0 then + json.mark_as_array(builtin_configs) info.builtin_configs = builtin_configs end end @@ -193,11 +200,13 @@ function _collect_package_info(instance) local components = instance:get("components") if components then info.components = {} + json.mark_as_array(info.components) for _, comp in ipairs(components) do local comp_info = {name = comp} local plaindeps = instance:extraconf("components", comp, "deps") if plaindeps then comp_info.deps = table.wrap(plaindeps) + json.mark_as_array(comp_info.deps) end table.insert(info.components, comp_info) end @@ -207,6 +216,7 @@ function _collect_package_info(instance) local references = instance:references() if references then info.references = {} + json.mark_as_array(info.references) for projectdir, refdate in pairs(references) do table.insert(info.references, {dir = projectdir, date = refdate, exists = os.isdir(projectdir)}) end @@ -457,6 +467,7 @@ function main(requires_raw) local format = option.get("format") if format == "json" then local results = {} + json.mark_as_array(results) for _, instance in ipairs(instances) do table.insert(results, _collect_package_info(instance)) end |
