summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2022-12-17 12:35:53 +0800
committerGitHub <[email protected]>2022-12-17 12:35:53 +0800
commit47f6392bd65c5a6803fdbe9714870928db5d7a1b (patch)
treedaa52b241ce81dd7dfeabd1ae1db11263487cea1 /tests/projects/c++/modules
parentf6ce7c17992fa055b2d11260831f7c004784c319 (diff)
parent1ba0ad7cbb139e04ebe29ea4fcede2fa57376433 (diff)
Merge pull request #3168 from Arthapz/cpp23-msvc-stdlib
add support of C++23 standard modules on msvc
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/stdmodules/src/my_module.cpp4
-rw-r--r--tests/projects/c++/modules/stdmodules/src/my_module.mpp4
-rw-r--r--tests/projects/c++/modules/stdmodules/test.lua1
-rw-r--r--tests/projects/c++/modules/stdmodules/test/test.cpp4
-rw-r--r--tests/projects/c++/modules/stdmodules/xmake.lua5
-rw-r--r--tests/projects/c++/modules/test_msvc.lua14
6 files changed, 16 insertions, 16 deletions
diff --git a/tests/projects/c++/modules/stdmodules/src/my_module.cpp b/tests/projects/c++/modules/stdmodules/src/my_module.cpp
index 5264da821..b87808a6e 100644
--- a/tests/projects/c++/modules/stdmodules/src/my_module.cpp
+++ b/tests/projects/c++/modules/stdmodules/src/my_module.cpp
@@ -1,9 +1,5 @@
module my_module;
-#ifdef _MSC_VER
-import std.core;
-#else
import std;
-#endif
auto my_sum(size_t a, size_t b) -> size_t { return a + b; }
diff --git a/tests/projects/c++/modules/stdmodules/src/my_module.mpp b/tests/projects/c++/modules/stdmodules/src/my_module.mpp
index 5c0e44bc9..bbebb2766 100644
--- a/tests/projects/c++/modules/stdmodules/src/my_module.mpp
+++ b/tests/projects/c++/modules/stdmodules/src/my_module.mpp
@@ -1,9 +1,5 @@
export module my_module;
-#ifdef _MSC_VER
-import std.core;
-#else
import std;
-#endif
export auto my_sum(size_t a, size_t b) -> size_t;
diff --git a/tests/projects/c++/modules/stdmodules/test.lua b/tests/projects/c++/modules/stdmodules/test.lua
new file mode 100644
index 000000000..0657ead56
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/test.lua
@@ -0,0 +1 @@
+inherit(".test_msvc")
diff --git a/tests/projects/c++/modules/stdmodules/test/test.cpp b/tests/projects/c++/modules/stdmodules/test/test.cpp
index a12813c24..7c6f7b4df 100644
--- a/tests/projects/c++/modules/stdmodules/test/test.cpp
+++ b/tests/projects/c++/modules/stdmodules/test/test.cpp
@@ -1,8 +1,4 @@
-#ifdef _MSC_VER
-import std.core;
-#else
import std;
-#endif
import my_module;
diff --git a/tests/projects/c++/modules/stdmodules/xmake.lua b/tests/projects/c++/modules/stdmodules/xmake.lua
index ffe2d015b..85e738d14 100644
--- a/tests/projects/c++/modules/stdmodules/xmake.lua
+++ b/tests/projects/c++/modules/stdmodules/xmake.lua
@@ -1,10 +1,11 @@
add_rules("mode.debug", "mode.release")
-set_languages("c++20")
add_cxxflags("clang::-stdlib=libc++")
+set_languages("c++latest")
+
target("mod")
- set_kind("shared")
+ set_kind("static")
add_files("src/*.cpp", "src/*.mpp")
target("test")
diff --git a/tests/projects/c++/modules/test_msvc.lua b/tests/projects/c++/modules/test_msvc.lua
index d51d3e3ef..a436b5814 100644
--- a/tests/projects/c++/modules/test_msvc.lua
+++ b/tests/projects/c++/modules/test_msvc.lua
@@ -1,5 +1,6 @@
import("lib.detect.find_tool")
import("core.base.semver")
+import("core.tool.toolchain")
function _build()
local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower()
@@ -12,7 +13,16 @@ end
function main(t)
if is_subhost("windows") then
- os.exec("xmake f -c")
- _build()
+ local msvc = toolchain.load("msvc")
+ if msvc and msvc:check() then
+ local vcvars = msvc:config("vcvars")
+ if vcvars and vcvars.VCInstallDir and vcvars.VCToolsVersion and semver.compare(vcvars.VCToolsVersion, "14.35") then
+ local stdmodulesdir = path.join(vcvars.VCInstallDir, "Tools", "MSVC", vcvars.VCToolsVersion, "modules")
+ if os.isdir(stdmodulesdir) then
+ os.exec("xmake f -c")
+ _build()
+ end
+ end
+ end
end
end