summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules/class_cmake
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2025-05-21 01:37:17 +0200
committerArthur LAURENT <[email protected]>2025-05-21 04:53:30 +0200
commit8b4e9f90ba045edb14cb2800c506ee6bc5118cd7 (patch)
treeffa4bc5edf9e19d953689fde3cc811382397e786 /tests/projects/c++/modules/class_cmake
parentbfc0f75db8c238187aa011f522adf9685e023b31 (diff)
(C++ modules support) refactor tests
Diffstat (limited to 'tests/projects/c++/modules/class_cmake')
-rw-r--r--tests/projects/c++/modules/class_cmake/src/hello.mpp11
-rw-r--r--tests/projects/c++/modules/class_cmake/src/hello_impl.cpp14
-rw-r--r--tests/projects/c++/modules/class_cmake/src/main.cpp7
-rw-r--r--tests/projects/c++/modules/class_cmake/test.lua1
-rw-r--r--tests/projects/c++/modules/class_cmake/xmake.lua8
5 files changed, 41 insertions, 0 deletions
diff --git a/tests/projects/c++/modules/class_cmake/src/hello.mpp b/tests/projects/c++/modules/class_cmake/src/hello.mpp
new file mode 100644
index 000000000..268964aa3
--- /dev/null
+++ b/tests/projects/c++/modules/class_cmake/src/hello.mpp
@@ -0,0 +1,11 @@
+export module hello;
+
+export namespace hello {
+ class say {
+ public:
+ say(int data);
+ void hello();
+ private:
+ int data_;
+ };
+}
diff --git a/tests/projects/c++/modules/class_cmake/src/hello_impl.cpp b/tests/projects/c++/modules/class_cmake/src/hello_impl.cpp
new file mode 100644
index 000000000..5dd555a7a
--- /dev/null
+++ b/tests/projects/c++/modules/class_cmake/src/hello_impl.cpp
@@ -0,0 +1,14 @@
+module;
+#include <iostream>
+
+module hello;
+
+using namespace std;
+namespace hello {
+ say::say(int data) : data_(data) {
+
+ }
+ void say::hello() {
+ cout << "hello, say class: " << data_ << endl;
+ }
+}
diff --git a/tests/projects/c++/modules/class_cmake/src/main.cpp b/tests/projects/c++/modules/class_cmake/src/main.cpp
new file mode 100644
index 000000000..b96807bda
--- /dev/null
+++ b/tests/projects/c++/modules/class_cmake/src/main.cpp
@@ -0,0 +1,7 @@
+import hello;
+
+int main() {
+ hello::say s(sizeof(hello::say));
+ s.hello();
+ return 0;
+}
diff --git a/tests/projects/c++/modules/class_cmake/test.lua b/tests/projects/c++/modules/class_cmake/test.lua
new file mode 100644
index 000000000..703d66bdc
--- /dev/null
+++ b/tests/projects/c++/modules/class_cmake/test.lua
@@ -0,0 +1 @@
+inherit(".test_cmake")
diff --git a/tests/projects/c++/modules/class_cmake/xmake.lua b/tests/projects/c++/modules/class_cmake/xmake.lua
new file mode 100644
index 000000000..42da78369
--- /dev/null
+++ b/tests/projects/c++/modules/class_cmake/xmake.lua
@@ -0,0 +1,8 @@
+add_rules("mode.release", "mode.debug")
+set_languages("c++20")
+
+target("class")
+ set_kind("binary")
+ add_files("src/*.cpp", "src/*.mpp")
+
+