summaryrefslogtreecommitdiff
path: root/xmake/modules/core/tools/cl.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-05-19 23:16:35 +0800
committerruki <[email protected]>2022-05-19 23:16:35 +0800
commit7ee3bcea46426a9cc67b5a175f0f4abe0e5dd238 (patch)
tree15b24bc73573ec0d7530d9028e8bf3e3c5ce2442 /xmake/modules/core/tools/cl.lua
parent2a3f925f6dd3c3ffd0b4322b2423125dd207b045 (diff)
add xxhash
Diffstat (limited to 'xmake/modules/core/tools/cl.lua')
-rw-r--r--xmake/modules/core/tools/cl.lua14
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