summaryrefslogtreecommitdiff
path: root/xmake/modules/core/tools/cl.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-05-18 00:34:51 +0800
committerruki <[email protected]>2022-05-18 00:34:51 +0800
commit91d8197cef25c656b9de6aa95076c2d37f0206c2 (patch)
treeb71f3178159be319b1fd40896b0883868becdea7 /xmake/modules/core/tools/cl.lua
parent053c31a5582c15fea9fc674ec3a14cccd9057b7e (diff)
fix preprocessor flags
Diffstat (limited to 'xmake/modules/core/tools/cl.lua')
-rw-r--r--xmake/modules/core/tools/cl.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua
index b5da3d0d1..268fe2472 100644
--- a/xmake/modules/core/tools/cl.lua
+++ b/xmake/modules/core/tools/cl.lua
@@ -410,6 +410,14 @@ function _preprocess(program, argv, opt)
end
-- get preprocessor flags
+ -- TODO fix precompiled header bug for /P + /FI
+ local target = opt.target
+ if target and (flag:startswith("-FI") or flag:startswith("/FI")) then
+ local pcheaderfile = target:get("pcheader") or target:get("pcxxheader")
+ if pcheaderfile then
+ flag = "-FI" .. path.absolute(pcheaderfile)
+ end
+ end
table.insert(cppflags, flag)
-- get compiler flags
@@ -499,7 +507,7 @@ function compile(self, sourcefile, objectfile, dependinfo, flags, opt)
-- use vstool to compile and enable vs_unicode_output @see https://github.com/xmake-io/xmake/issues/528
local program, argv = compargv(self, sourcefile, objectfile, compflags, opt)
if distcc_build_client.is_distccjob() and distcc_build_client.singleton():has_freejobs() then
- return distcc_build_client.singleton():compile(program, argv, {envs = self:runenvs(), preprocess = _preprocess, tool = self})
+ return distcc_build_client.singleton():compile(program, argv, {envs = self:runenvs(), preprocess = _preprocess, tool = self, target = opt.target})
else
return vstool.iorunv(program, argv, {envs = self:runenvs()})
end