summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/build_modules/msvc.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-11-24 00:56:24 +0800
committerruki <[email protected]>2021-11-24 00:56:24 +0800
commit12ee3ed6eb196f5d9e5cdeb619c40f51b2bec144 (patch)
tree15757810c3fb3f7d953d681c803236c770705921 /xmake/rules/c++/modules/build_modules/msvc.lua
parent499b857f587073a09145c44d4ab9c312afb9a69a (diff)
improve c++ modules
Diffstat (limited to 'xmake/rules/c++/modules/build_modules/msvc.lua')
-rw-r--r--xmake/rules/c++/modules/build_modules/msvc.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/xmake/rules/c++/modules/build_modules/msvc.lua b/xmake/rules/c++/modules/build_modules/msvc.lua
index 4606edb7e..4cc8500ab 100644
--- a/xmake/rules/c++/modules/build_modules/msvc.lua
+++ b/xmake/rules/c++/modules/build_modules/msvc.lua
@@ -23,6 +23,21 @@ import("core.tool.compiler")
import("private.action.build.object", {alias = "objectbuilder"})
import("module_parser")
+-- load parent target with modules files
+function load_parent(target, opt)
+
+ -- get modules flag
+ local modulesflag
+ local compinst = compiler.load("cxx", {target = target})
+ if compinst:has_flags("/experimental:module", "cxxflags") then
+ modulesflag = "/experimental:module"
+ end
+ assert(modulesflag, "compiler(msvc): does not support c++ module!")
+
+ -- add module flags
+ target:add("cxxflags", modulesflag)
+end
+
-- build module files
function build_with_batchjobs(target, batchjobs, sourcebatch, opt)