summaryrefslogtreecommitdiff
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
parent8c0bb24c70e94888ff4e731630cb47ca1cfafc86 (diff)
improve c++ modules test
-rw-r--r--.gitignore3
-rw-r--r--tests/projects/c++/modules/partitions/src/math.math1.mpp (renamed from tests/projects/c++/modules/partitions/src/math1.mpp)0
-rw-r--r--tests/projects/c++/modules/partitions/src/math.math2.mpp (renamed from tests/projects/c++/modules/partitions/src/math2.mpp)0
-rw-r--r--tests/projects/c++/modules/submodules/src/math.math1.mpp (renamed from tests/projects/c++/modules/submodules/src/math1.mpp)0
-rw-r--r--tests/projects/c++/modules/submodules/src/math.math2.mpp (renamed from tests/projects/c++/modules/submodules/src/math2.mpp)0
-rw-r--r--xmake/rules/c++/modules/build_modulefiles.lua6
6 files changed, 7 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 1631dd04d..7107445a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,9 @@
.xmake/
build/
+# gcc cache
+gcm.cache
+
# for VS Code
.vscode/
diff --git a/tests/projects/c++/modules/partitions/src/math1.mpp b/tests/projects/c++/modules/partitions/src/math.math1.mpp
index 8537d161a..8537d161a 100644
--- a/tests/projects/c++/modules/partitions/src/math1.mpp
+++ b/tests/projects/c++/modules/partitions/src/math.math1.mpp
diff --git a/tests/projects/c++/modules/partitions/src/math2.mpp b/tests/projects/c++/modules/partitions/src/math.math2.mpp
index 78e14ed6f..78e14ed6f 100644
--- a/tests/projects/c++/modules/partitions/src/math2.mpp
+++ b/tests/projects/c++/modules/partitions/src/math.math2.mpp
diff --git a/tests/projects/c++/modules/submodules/src/math1.mpp b/tests/projects/c++/modules/submodules/src/math.math1.mpp
index 3e06bf426..3e06bf426 100644
--- a/tests/projects/c++/modules/submodules/src/math1.mpp
+++ b/tests/projects/c++/modules/submodules/src/math.math1.mpp
diff --git a/tests/projects/c++/modules/submodules/src/math2.mpp b/tests/projects/c++/modules/submodules/src/math.math2.mpp
index f6c5381c3..f6c5381c3 100644
--- a/tests/projects/c++/modules/submodules/src/math2.mpp
+++ b/tests/projects/c++/modules/submodules/src/math.math2.mpp
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)