summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2025-09-15 03:22:35 +0200
committerArthur LAURENT <[email protected]>2025-09-18 07:06:55 +0200
commit0d92314dcb782bd460a1f1771acb4deb71152e73 (patch)
tree2b56b6d05effd4e23085687c632566894a1126c7 /tests/projects/c++/modules
parent44812793dd6e8c9cae32bf8517d516709e91b3db (diff)
nfc(C++ modules) add a test for multiple c++ runtimes
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/multiple_runtimes/src/main.cpp6
-rw-r--r--tests/projects/c++/modules/multiple_runtimes/test.lua1
-rw-r--r--tests/projects/c++/modules/multiple_runtimes/xmake.lua31
3 files changed, 38 insertions, 0 deletions
diff --git a/tests/projects/c++/modules/multiple_runtimes/src/main.cpp b/tests/projects/c++/modules/multiple_runtimes/src/main.cpp
new file mode 100644
index 000000000..b25b474a6
--- /dev/null
+++ b/tests/projects/c++/modules/multiple_runtimes/src/main.cpp
@@ -0,0 +1,6 @@
+import std;
+
+int main() {
+ std::println("Hello world");
+ return 0;
+}
diff --git a/tests/projects/c++/modules/multiple_runtimes/test.lua b/tests/projects/c++/modules/multiple_runtimes/test.lua
new file mode 100644
index 000000000..e77adc4ae
--- /dev/null
+++ b/tests/projects/c++/modules/multiple_runtimes/test.lua
@@ -0,0 +1 @@
+inherit(".test_stdmodules")
diff --git a/tests/projects/c++/modules/multiple_runtimes/xmake.lua b/tests/projects/c++/modules/multiple_runtimes/xmake.lua
new file mode 100644
index 000000000..6fc363a95
--- /dev/null
+++ b/tests/projects/c++/modules/multiple_runtimes/xmake.lua
@@ -0,0 +1,31 @@
+add_rules("mode.debug", "mode.release")
+add_files("src/*.cpp")
+set_languages("c++23")
+set_encodings("utf-8")
+
+if not is_plat("windows") then -- remove when std module is supported for libc++ on windows
+ target("llvm")
+ set_kind("binary")
+ set_toolchains("clang")
+ set_runtimes("c++_shared")
+ set_policy("build.c++.modules", true)
+ add_files("src/main.cpp")
+end
+
+if is_plat("linux") or is_plat("mingw") then
+ target("gnu")
+ set_kind("binary")
+ set_toolchains("gcc")
+ set_runtimes("stdc++_shared")
+ set_policy("build.c++.modules", true)
+ set_policy("build.c++.modules.gcc.cxx11abi", true)
+ add_files("src/main.cpp")
+end
+
+if is_plat("windows") then
+ target("msvc")
+ set_kind("binary")
+ set_toolchains("msvc")
+ set_policy("build.c++.modules", true)
+ add_files("src/main.cpp")
+end