diff options
| author | ruki <[email protected]> | 2021-10-14 22:45:34 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-10-14 22:45:34 +0800 |
| commit | 767f57b2e281a62f87d4e254cd93a41af00b55a8 (patch) | |
| tree | e6e362fa1a246150a0dd1d2cc00c73b694ea6edc | |
| parent | 8c0bb24c70e94888ff4e731630cb47ca1cfafc86 (diff) | |
improve c++ modules test
| -rw-r--r-- | .gitignore | 3 | ||||
| -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.lua | 6 |
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) |
