diff options
| author | ruki <[email protected]> | 2022-05-19 23:16:35 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-05-19 23:16:35 +0800 |
| commit | 7ee3bcea46426a9cc67b5a175f0f4abe0e5dd238 (patch) | |
| tree | 15b24bc73573ec0d7530d9028e8bf3e3c5ce2442 /xmake/modules/core/tools/cl.lua | |
| parent | 2a3f925f6dd3c3ffd0b4322b2423125dd207b045 (diff) | |
add xxhash
Diffstat (limited to 'xmake/modules/core/tools/cl.lua')
| -rw-r--r-- | xmake/modules/core/tools/cl.lua | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua index 7c803ebeb..41fbcd92b 100644 --- a/xmake/modules/core/tools/cl.lua +++ b/xmake/modules/core/tools/cl.lua @@ -470,14 +470,22 @@ function _compile(self, sourcefile, objectfile, compflags, opt) preprocess = _preprocess, tool = self, target = opt.target}) elseif build_cache.is_enabled() and build_cache.is_supported(self:kind()) then local program, argv = compargv(self, sourcefile, objectfile, compflags, table.join(opt, {rawargs = true})) + local dt = os.mclock() cppinfo = _preprocess(program, argv, {envs = self:runenvs(), target = opt.target}) + print("preprocess", os.mclock() - dt) if cppinfo then local cachekey + dt = os.mclock() cachekey = build_cache.cachekey(program, cppinfo.cppfile, cppinfo.cppflags, self:runenvs()) + print("cachekey", os.mclock() - dt) + dt = os.mclock() local objectfile_cached = build_cache.get(cachekey) if objectfile_cached then + os.cp(objectfile_cached, cppinfo.objectfile) + print("get", os.mclock() - dt) else + print("put") vstool.iorunv(program, winos.cmdargv(table.join(cppinfo.cppflags, "-Fo" .. cppinfo.objectfile, cppinfo.cppfile)), {envs = self:runenvs()}) if cachekey then build_cache.put(cachekey, cppinfo.objectfile) @@ -489,8 +497,12 @@ function _compile(self, sourcefile, objectfile, compflags, opt) if cppinfo then return cppinfo.outdata, cppinfo.errdata else + local dt = os.mclock() local program, argv = compargv(self, sourcefile, objectfile, compflags, opt) - return vstool.iorunv(program, argv, {envs = self:runenvs()}) + local outdata, errdata = vstool.iorunv(program, argv, {envs = self:runenvs()}) + + print("fallback", os.mclock() - dt) + return outdata, errdata end end |
