summaryrefslogtreecommitdiff
path: root/xmake/actions/require/impl/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-31 00:49:01 +0800
committerruki <[email protected]>2020-12-31 00:49:01 +0800
commita4ea6d506a0b64513f382e578e7952b2b808bc9d (patch)
treea0ad8dab918e97e5f444a21e628219dc7b0761ad /xmake/actions/require/impl/package.lua
parent107a8a57ce7d8b5dfb17d2ea6da7cb0d643157ec (diff)
load depconfigs
Diffstat (limited to 'xmake/actions/require/impl/package.lua')
-rw-r--r--xmake/actions/require/impl/package.lua39
1 files changed, 23 insertions, 16 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua
index 116600bf9..9ded6013a 100644
--- a/xmake/actions/require/impl/package.lua
+++ b/xmake/actions/require/impl/package.lua
@@ -391,6 +391,26 @@ function _load_package(packagename, requireinfo, opt)
return package
end
+-- load the extra configs dependent packages and inherit some builtin configs
+function _load_package_depconfigs(package)
+ local deps = package:get("deps")
+ local extraconfs = package:extraconf("deps") or {}
+ if not package:config("shared") then
+ for _, depstr in ipairs(deps) do
+ local depconf = extraconfs[depstr]
+ if not depconf then
+ depconf = {}
+ extraconfs[depstr] = depconf
+ end
+ depconf.configs = depconf.configs or {}
+ if depconf.configs.vs_runtime == nil then
+ depconf.configs.vs_runtime = package:config("vs_runtime")
+ end
+ end
+ end
+ return extraconfs
+end
+
-- load all required packages
function _load_packages(requires, opt)
@@ -415,23 +435,10 @@ function _load_packages(requires, opt)
local deps = package:get("deps")
if deps and opt.nodeps ~= true then
- -- get the extra configs dependent packages and inherit some builtin configs
- local extraconfs = package:extraconf("deps") or {}
- if not package:config("shared") then
- for _, depstr in ipairs(deps) do
- local depconf = extraconfs[depstr]
- if not depconf then
- depconf = {}
- extraconfs[depstr] = depconf
- end
- depconf.configs = depconf.configs or {}
- if depconf.configs.vs_runtime == nil then
- depconf.configs.vs_runtime = package:config("vs_runtime")
- end
- end
- end
+ -- get the extra configs dependent packages
+ local extraconfs = _load_package_depconfigs(package)
- -- load dependent packages and do not load system packages for package/deps()
+ -- load dependent packages and do not load system/3rd packages for package/deps()
local packagedeps = {}
for _, dep in ipairs(_load_packages(deps, {rootkey = rootkey, requires_extra = extraconfs, parentinfo = requireinfo.info, nodeps = opt.nodeps, system = false})) do
dep:parents_add(package)