diff options
| author | ruki <[email protected]> | 2023-09-22 22:54:09 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-09-22 22:54:09 +0800 |
| commit | 3d4343f0044601da7f331c4bf879969eb3bd9bf2 (patch) | |
| tree | 84449f0385aba07410ce010dd3738fd5af4b52e9 /xmake/modules/core | |
| parent | cb30d6458a236f498e6b6be917c9f653576577ca (diff) | |
improve to parse gcc deps with modules
Diffstat (limited to 'xmake/modules/core')
| -rw-r--r-- | xmake/modules/core/project/depend.lua | 16 | ||||
| -rw-r--r-- | xmake/modules/core/tools/gcc.lua | 8 |
2 files changed, 8 insertions, 16 deletions
diff --git a/xmake/modules/core/project/depend.lua b/xmake/modules/core/project/depend.lua index c66830521..5e96c7b2a 100644 --- a/xmake/modules/core/project/depend.lua +++ b/xmake/modules/core/project/depend.lua @@ -28,8 +28,8 @@ import("private.tools.gcc.parse_deps", {alias = "parse_deps_gcc"}) import("private.tools.armcc.parse_deps", {alias = "parse_deps_armcc"}) -- load depfiles -function _load_depfiles(parser, dependinfo, depfiles) - depfiles = parser(depfiles, dependinfo) +function _load_depfiles(parser, dependinfo, depfiles, opt) + depfiles = parser(depfiles, opt) if depfiles then if dependinfo.files then table.join2(dependinfo.files, depfiles) @@ -40,7 +40,7 @@ function _load_depfiles(parser, dependinfo, depfiles) end -- load dependent info from the given file (.d) -function load(dependfile) +function load(dependfile, opt) if os.isfile(dependfile) then -- may be the depend file has been incomplete when if the compilation process is abnormally interrupted @@ -48,19 +48,19 @@ function load(dependfile) if dependinfo then -- attempt to load depfiles from the compilers if dependinfo.depfiles_gcc then - _load_depfiles(parse_deps_gcc, dependinfo, dependinfo.depfiles_gcc) + _load_depfiles(parse_deps_gcc, dependinfo, dependinfo.depfiles_gcc, opt) dependinfo.depfiles_gcc = nil elseif dependinfo.depfiles_cl_json then - _load_depfiles(parse_deps_cl_json, dependinfo, dependinfo.depfiles_cl_json) + _load_depfiles(parse_deps_cl_json, dependinfo, dependinfo.depfiles_cl_json, opt) dependinfo.depfiles_cl_json = nil elseif dependinfo.depfiles_cl then - _load_depfiles(parse_deps_cl, dependinfo, dependinfo.depfiles_cl) + _load_depfiles(parse_deps_cl, dependinfo, dependinfo.depfiles_cl, opt) dependinfo.depfiles_cl = nil elseif dependinfo.depfiles_rc then - _load_depfiles(parse_deps_rc, dependinfo, dependinfo.depfiles_rc) + _load_depfiles(parse_deps_rc, dependinfo, dependinfo.depfiles_rc, opt) dependinfo.depfiles_rc = nil elseif dependinfo.depfiles_armcc then - _load_depfiles(parse_deps_armcc, dependinfo, dependinfo.depfiles_armcc) + _load_depfiles(parse_deps_armcc, dependinfo, dependinfo.depfiles_armcc, opt) dependinfo.depfiles_armcc = nil end return dependinfo diff --git a/xmake/modules/core/tools/gcc.lua b/xmake/modules/core/tools/gcc.lua index 828380c15..93525848f 100644 --- a/xmake/modules/core/tools/gcc.lua +++ b/xmake/modules/core/tools/gcc.lua @@ -721,13 +721,6 @@ function _compargv_pch(self, pcheaderfile, pcoutputfile, flags) return self:program(), table.join("-c", pchflags, "-o", pcoutputfile, pcheaderfile) end --- get modules cache directory -function _modules_cachedir(target) - if target and target.autogendir and target:data("cxx.has_modules") then -- we need to ignore option instance - return path.join(target:autogendir(), "rules", "modules", "cache") - end -end - -- make the compile arguments list function compargv(self, sourcefile, objectfile, flags) -- precompiled header? @@ -831,7 +824,6 @@ function compile(self, sourcefile, objectfile, dependinfo, flags, opt) if depfile and os.isfile(depfile) then if dependinfo then dependinfo.depfiles_gcc = io.readfile(depfile, {continuation = "\\"}) - dependinfo.modules_cachedir = _modules_cachedir(opt.target) end -- remove the temporary dependent file |
