summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/build_modulefiles.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-10-14 22:45:34 +0800
committerruki <[email protected]>2021-10-14 22:45:34 +0800
commit767f57b2e281a62f87d4e254cd93a41af00b55a8 (patch)
treee6e362fa1a246150a0dd1d2cc00c73b694ea6edc /xmake/rules/c++/modules/build_modulefiles.lua
parent8c0bb24c70e94888ff4e731630cb47ca1cfafc86 (diff)
improve c++ modules test
Diffstat (limited to 'xmake/rules/c++/modules/build_modulefiles.lua')
-rw-r--r--xmake/rules/c++/modules/build_modulefiles.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/xmake/rules/c++/modules/build_modulefiles.lua b/xmake/rules/c++/modules/build_modulefiles.lua
index efc1c3a38..c0a5ae381 100644
--- a/xmake/rules/c++/modules/build_modulefiles.lua
+++ b/xmake/rules/c++/modules/build_modulefiles.lua
@@ -42,13 +42,15 @@ function _build_modulefiles_clang(target, sourcebatch, opt)
sourcebatch.objectfiles = sourcebatch.objectfiles or {}
sourcebatch.dependfiles = sourcebatch.dependfiles or {}
for _, sourcefile in ipairs(sourcebatch.sourcefiles) do
- local objectfile = target:objectfile(sourcefile) .. ".pcm"
+ --local objectfile = target:objectfile(sourcefile) .. ".pcm"
+ local objectfile = path.join(cachedir, path.basename(sourcefile) .. ".pcm")
table.insert(sourcebatch.objectfiles, objectfile)
table.insert(sourcebatch.dependfiles, target:dependfile(objectfile))
end
-- compile module files to *.pcm
opt = table.join(opt, {configs = {force = {cxxflags = {modulesflag,
+ "-fimplicit-modules", "-fimplicit-module-maps", "-fprebuilt-module-path=" .. cachedir,
"--precompile", "-x c++-module", "-fmodules-cache-path=" .. cachedir}}}})
import("private.action.build.object").build(target, sourcebatch, opt)
@@ -62,7 +64,7 @@ function _build_modulefiles_clang(target, sourcebatch, opt)
sourcebatch.dependfiles[idx] = target:dependfile(objectfile)
table.insert(modulefiles, modulefile)
end
- opt.configs = {cxxflags = {modulesflag, "-fmodules-cache-path=" .. cachedir}}
+ opt.configs = {cxxflags = {modulesflag, "-fmodules-cache-path=" .. cachedir, "-fimplicit-modules", "-fimplicit-module-maps", "-fprebuilt-module-path=" .. cachedir}}
opt.quiet = true
import("private.action.build.object").build(target, sourcebatch, opt)