diff options
| author | ruki <[email protected]> | 2020-12-13 20:40:03 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-12-13 20:40:03 +0800 |
| commit | d313c481f3bc4288ca06ba0a043ae36234c151da (patch) | |
| tree | 25c1e72158b313a35a3ff97f7c29207873392bb2 /xmake/core/project/project.lua | |
| parent | fe38b39cd90b8cd866121b3e443aeba277f4d3c6 (diff) | |
improve toolchain
Diffstat (limited to 'xmake/core/project/project.lua')
| -rw-r--r-- | xmake/core/project/project.lua | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua index 8098b88fc..0c6d5a463 100644 --- a/xmake/core/project/project.lua +++ b/xmake/core/project/project.lua @@ -321,7 +321,7 @@ function project._load_rules() end -- load toolchains -function project._load_toolchains(opt) +function project._load_toolchains() -- load the project file first if has not been loaded? local ok, errors = project._load() @@ -338,7 +338,7 @@ function project._load_toolchains(opt) -- make toolchain instances local toolchains = {} for toolchain_name, toolchain_info in pairs(results) do - toolchains[toolchain_name] = toolchain.new(toolchain_name, toolchain_info, opt) + toolchains[toolchain_name] = toolchain_info end return toolchains end @@ -671,6 +671,20 @@ function project._sort_targets(targets, ordertargets, targetrefs, target) end end +-- get project toolchain infos (@note only with toolchain info) +function project._toolchains() + local toolchains = project._TOOLCHAINS + if not toolchains then + local errors + toolchains, errors = project._load_toolchains() + if not toolchains then + os.raise(errors) + end + project._TOOLCHAINS = toolchains + end + return toolchains +end + -- get project apis function project.apis() @@ -1023,24 +1037,15 @@ end -- get the given toolchain function project.toolchain(name, opt) - return project.toolchains(opt)[name] + local info = project._toolchains()[name] + if info then + return toolchain.load_withinfo(name, info, opt) + end end --- get project toolchains -function project.toolchains(opt) - opt = opt or {} - local key = "key_" .. (opt.plat or "") .. "_" .. (opt.arch or "") - project._TOOLCHAINS = project._TOOLCHAINS or {} - local toolchains = project._TOOLCHAINS[key] - if not toolchains then - local errors - toolchains, errors = project._load_toolchains(opt) - if not toolchains then - os.raise(errors) - end - project._TOOLCHAINS[key] = toolchains - end - return toolchains +-- get project toolchains list +function project.toolchains() + return table.keys(project._toolchains()) end -- get the given task @@ -1050,10 +1055,7 @@ end -- get tasks function project.tasks() - if not project._TASKS then - - -- load tasks local tasks, errors = project._load_tasks() if not tasks then os.raise(errors) @@ -1065,10 +1067,7 @@ end -- get packages function project.packages() - if not project._PACKAGES then - - -- load packages local packages, errors = project._load_packages() if not packages then return nil, errors |
