From 452296643e9565ca2c7bd5be047f0f42836fd0de Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 15 Apr 2021 21:00:27 +0800 Subject: improve xrepo envs --- xmake/modules/private/xrepo/action/env.lua | 19 ++++++++++++++----- 1 file 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 -- cgit v1.3.1