summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2021-04-15 21:00:27 +0800
committerruki <[email protected]>2021-04-15 21:00:27 +0800
commit452296643e9565ca2c7bd5be047f0f42836fd0de (patch)
treee1cbbe2a1c1823d9769a95bacc0df7140cad65fb /xmake/modules
parent558cdaeef8b54f4fefb803d136116cc289283962 (diff)
improve xrepo envs
Diffstat (limited to 'xmake/modules')
-rw-r--r--xmake/modules/private/xrepo/action/env.lua19
1 files changed, 14 insertions, 5 deletions
diff --git a/xmake/modules/private/xrepo/action/env.lua b/xmake/modules/private/xrepo/action/env.lua
index 46fe2cbe7..a6461dceb 100644
--- a/xmake/modules/private/xrepo/action/env.lua
+++ b/xmake/modules/private/xrepo/action/env.lua
@@ -20,8 +20,10 @@
-- imports
import("core.base.option")
+import("core.base.task")
import("core.project.config")
import("private.action.require.impl.package")
+import("private.action.require.impl.utils.get_requires")
-- get menu options
function menu_options()
@@ -207,14 +209,21 @@ end
-- get package environments
function _package_getenvs()
local envs = os.getenvs()
- local packages = option.get("packages") or option.get("program")
- if packages then
- _enter_project()
- packages = packages:split(',', {plain = true})
- local requires, requires_extra = _get_requires(packages)
+ if os.isfile(os.projectfile()) and not option.get("packages") then
+ local requires, requires_extra = get_requires()
for _, instance in ipairs(package.load_packages(requires, {requires_extra = requires_extra})) do
_package_addenvs(envs, instance)
end
+ else
+ local packages = option.get("packages") or option.get("program")
+ if packages then
+ _enter_project()
+ packages = packages:split(',', {plain = true})
+ local requires, requires_extra = _get_requires(packages)
+ for _, instance in ipairs(package.load_packages(requires, {requires_extra = requires_extra})) do
+ _package_addenvs(envs, instance)
+ end
+ end
end
return envs
end