diff options
| -rw-r--r-- | xmake/modules/package/tools/xmake.lua | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/xmake/modules/package/tools/xmake.lua b/xmake/modules/package/tools/xmake.lua index e7b3a47f3..4ff3c6239 100644 --- a/xmake/modules/package/tools/xmake.lua +++ b/xmake/modules/package/tools/xmake.lua @@ -445,11 +445,40 @@ function _get_package_depconfs_envs(envs, package, opt) local requireconfs = {} for _, dep in ipairs(package:librarydeps()) do local requireinfo = dep:requireinfo() - if requireinfo and (requireinfo.override or (requireinfo.configs and not table.empty(requireinfo.configs))) then + -- { + -- requirekey = "imgui#8b6c4fbd", + -- originstr = "imgui", + -- configs = { }, + -- resolvedinfo = { + -- version = "v1.91.1", + -- configs = { } + -- }, + -- version = "v1.91.1" + --} + local passed_requireinfo + if requireinfo then + local resolvedinfo = requireinfo.resolvedinfo + if resolvedinfo then + requireinfo = resolvedinfo + end + end + if requireinfo then + if requireinfo.version and requireinfo.version ~= "latest" then + passed_requireinfo = passed_requireinfo or {} + passed_requireinfo.version = requireinfo.version + passed_requireinfo.override = true + end + if requireinfo.configs and not table.empty(requireinfo.configs) then + passed_requireinfo = passed_requireinfo or {} + passed_requireinfo.configs = requireinfo.configs + passed_requireinfo.override = true + end + end + if passed_requireinfo then local requirepaths = {} _get_package_requirepaths(requirepaths, package, dep, {}) if #requirepaths > 0 then - table.insert(requireconfs, {requirepaths = requirepaths, requireinfo = requireinfo}) + table.insert(requireconfs, {requirepaths = requirepaths, requireinfo = passed_requireinfo}) end end end |
