diff options
| author | ruki <[email protected]> | 2020-05-25 22:37:50 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-05-25 09:47:00 +0800 |
| commit | 96f786bb7b5f810ef22f22e8bbb4e16f3f9be61d (patch) | |
| tree | 16ed789d34afcbf86227b98137b182412f4e1c28 /xmake/modules/core/project/depend.lua | |
| parent | 9d3a7676056506b949fb4c04b29e00f427fb19c2 (diff) | |
improve to load deps
Diffstat (limited to 'xmake/modules/core/project/depend.lua')
| -rw-r--r-- | xmake/modules/core/project/depend.lua | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/xmake/modules/core/project/depend.lua b/xmake/modules/core/project/depend.lua index 8863e2f2e..20b63e7e6 100644 --- a/xmake/modules/core/project/depend.lua +++ b/xmake/modules/core/project/depend.lua @@ -22,37 +22,15 @@ import("private.tools.cl.parse_deps", {alias = "parse_deps_cl"}) import("private.tools.gcc.parse_deps", {alias = "parse_deps_gcc"}) --- load depfiles for gcc -function _load_depfiles_gcc(dependinfo) - - local depfiles = dependinfo.depfiles_gcc +-- load depfiles +function _load_depfiles(parser, dependinfo, depfiles) + depfiles = parser(depfiles) if depfiles then - depfiles = parse_deps_gcc(depfiles) - if depfiles then - if dependinfo.files then - table.join2(dependinfo.files, depfiles) - else - dependinfo.files = depfiles - end - end - dependinfo.depfiles_gcc = nil - end -end - --- load depfiles for cl -function _load_depfiles_cl(dependinfo) - - local depfiles = dependinfo.depfiles_cl - if depfiles then - depfiles = parse_deps_cl(depfiles) - if depfiles then - if dependinfo.files then - table.join2(dependinfo.files, depfiles) - else - dependinfo.files = depfiles - end + if dependinfo.files then + table.join2(dependinfo.files, depfiles) + else + dependinfo.files = depfiles end - dependinfo.depfiles_cl = nil end end @@ -64,10 +42,12 @@ function load(dependfile) local dependinfo = try { function() return io.load(dependfile) end } if dependinfo then -- attempt to load depfiles from the compilers - if is_plat("windows") then - _load_depfiles_cl(dependinfo) - else - _load_depfiles_gcc(dependinfo) + if dependinfo.depfiles_gcc then + _load_depfiles(parse_deps_gcc, dependinfo, dependinfo.depfiles_gcc) + dependinfo.depfiles_gcc = nil + elseif dependinfo.depfiles_cl then + _load_depfiles(parse_deps_cl, dependinfo, dependinfo.depfiles_cl) + dependinfo.depfiles_cl = nil end return dependinfo end |
