diff options
| author | ruki <[email protected]> | 2017-09-07 09:19:34 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-09-07 09:19:34 +0800 |
| commit | b6152f7d7c21e9d04957eff3b4ef0c40a915aec4 (patch) | |
| tree | 66d5efad03965da43e9cce25512a100bd2d201d8 | |
| parent | 9b6227b244cb19fccbed759ef0997c568a4b1191 (diff) | |
optimize package option switch
| -rw-r--r-- | xmake/actions/require/package.lua | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua index f9d7f52ae..1aefc858f 100644 --- a/xmake/actions/require/package.lua +++ b/xmake/actions/require/package.lua @@ -223,23 +223,28 @@ function _load_packages(requires) local packages = {} for packagename, requireinfo in pairs(load_requires(requires)) do - -- load package instance - local package = _load_package(packagename, requireinfo) + -- attempt to get project option about this package + local packageopt = project.option(packagename) + if packageopt == nil or packageopt:enabled() then -- this package is enabled? - -- 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 + -- load package instance + local package = _load_package(packagename, requireinfo) + + -- 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 - package._DEPS = packagedeps - package._ORDERDEPS = table.unique(_sort_packagedeps(package)) - end - -- save this package instance - table.insert(packages, package) + -- save this package instance + table.insert(packages, package) + end end -- ok? |
