summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules/stdmodules
diff options
context:
space:
mode:
authorruki <[email protected]>2022-11-04 22:44:52 +0800
committerGitHub <[email protected]>2022-11-04 22:44:52 +0800
commit6c819d681111add7afa70920b788d8d56f620d77 (patch)
tree9a7f2af95e6e16541fd05dc7dec3957f79df69b3 /tests/projects/c++/modules/stdmodules
parent9fe1d17945bc670c0ec3b394c39e17e0cedb7b44 (diff)
parent0fdefd2f7280db640ed09df068e09f98649ce7ec (diff)
Merge pull request #3016 from xmake-io/module
Improve clang/gcc/msvc to better support std modules
Diffstat (limited to 'tests/projects/c++/modules/stdmodules')
-rw-r--r--tests/projects/c++/modules/stdmodules/.gitignore8
-rw-r--r--tests/projects/c++/modules/stdmodules/src/my_module.cpp9
-rw-r--r--tests/projects/c++/modules/stdmodules/src/my_module.mpp9
-rw-r--r--tests/projects/c++/modules/stdmodules/test/test.cpp13
-rw-r--r--tests/projects/c++/modules/stdmodules/xmake.lua13
5 files changed, 52 insertions, 0 deletions
diff --git a/tests/projects/c++/modules/stdmodules/.gitignore b/tests/projects/c++/modules/stdmodules/.gitignore
new file mode 100644
index 000000000..152105761
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/.gitignore
@@ -0,0 +1,8 @@
+# Xmake cache
+.xmake/
+build/
+
+# MacOS Cache
+.DS_Store
+
+
diff --git a/tests/projects/c++/modules/stdmodules/src/my_module.cpp b/tests/projects/c++/modules/stdmodules/src/my_module.cpp
new file mode 100644
index 000000000..5264da821
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/src/my_module.cpp
@@ -0,0 +1,9 @@
+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
new file mode 100644
index 000000000..5c0e44bc9
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/src/my_module.mpp
@@ -0,0 +1,9 @@
+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/test.cpp b/tests/projects/c++/modules/stdmodules/test/test.cpp
new file mode 100644
index 000000000..a12813c24
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/test/test.cpp
@@ -0,0 +1,13 @@
+#ifdef _MSC_VER
+import std.core;
+#else
+import std;
+#endif
+
+import my_module;
+
+using namespace std;
+
+int main(int argc, char** argv) {
+ cout << my_sum(1, 1) << endl;
+}
diff --git a/tests/projects/c++/modules/stdmodules/xmake.lua b/tests/projects/c++/modules/stdmodules/xmake.lua
new file mode 100644
index 000000000..b3521e74b
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules/xmake.lua
@@ -0,0 +1,13 @@
+add_rules("mode.debug", "mode.release")
+set_languages("c++20")
+
+add_cxxflags("clang::-stdlib=libc++")
+set_values("msvc.modules.stdifcdir", true)
+target("mod")
+ set_kind("shared")
+ add_files("src/*.cpp", "src/*.mpp")
+
+target("test")
+ set_kind("binary")
+ add_files("test/*.cpp")
+ add_deps("mod")