diff options
| author | ruki <[email protected]> | 2017-09-06 10:14:39 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-09-06 10:14:54 +0800 |
| commit | acdcde640f89df691cbaee89b71682e295de030b (patch) | |
| tree | 43c5bcb084e91b424fd3659987758f672a6f12c5 /xmake/actions/require/package.lua | |
| parent | fa7b871c4880fd8947e872a8fcef815de36ea358 (diff) | |
add required packages and deps to targets
Diffstat (limited to 'xmake/actions/require/package.lua')
| -rw-r--r-- | xmake/actions/require/package.lua | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua index 3b872d800..f9d7f52ae 100644 --- a/xmake/actions/require/package.lua +++ b/xmake/actions/require/package.lua @@ -201,6 +201,16 @@ function _load_package(packagename, requireinfo) return instance end +-- sort package deps +function _sort_packagedeps(package) + local orderdeps = {} + for _, dep in pairs(package:deps()) do + table.join2(orderdeps, _sort_packagedeps(dep)) + table.insert(orderdeps, dep) + end + return orderdeps +end + -- load all required packages function _load_packages(requires) @@ -216,10 +226,16 @@ function _load_packages(requires) -- load package instance local package = _load_package(packagename, requireinfo) - -- load required packages and save them first of this package - requires = package:get("requires") - if requires then - table.join2(packages, _load_packages(requires)) + -- load dependent packages and save them first of this package + local deps = package:get("deps") + if deps then + local packagedeps = {} + for _, dep in ipairs(_load_packages(deps)) do + table.insert(packages, dep) + packagedeps[dep:name()] = dep + end + package._DEPS = packagedeps + package._ORDERDEPS = table.unique(_sort_packagedeps(package)) end -- save this package instance |
