summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2024-03-10 21:41:48 +0800
committerGitHub <[email protected]>2024-03-10 21:41:48 +0800
commit979b1216dcd7f3f9fe8b220ac050901b42f5cae9 (patch)
tree8f3557ab6056416e3550df60e469dd83016c2a52 /tests/projects/c++/modules
parent9acdd03fd2460a100c90fd3d765d298413a1b1c9 (diff)
parent326e26a5268233f3573b6104f69122b1ef5148eb (diff)
Merge pull request #4814 from Arthapz/fix-moduleonly-private-dep-objectfiles
Fix moduleonly private dep objectfiles
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/moduleonly_private_dep/src/main.cpp5
-rw-r--r--tests/projects/c++/modules/moduleonly_private_dep/src/modA.mpp3
-rw-r--r--tests/projects/c++/modules/moduleonly_private_dep/src/modB.cpp7
-rw-r--r--tests/projects/c++/modules/moduleonly_private_dep/src/modB.mpp3
-rw-r--r--tests/projects/c++/modules/moduleonly_private_dep/xmake.lua17
5 files changed, 35 insertions, 0 deletions
diff --git a/tests/projects/c++/modules/moduleonly_private_dep/src/main.cpp b/tests/projects/c++/modules/moduleonly_private_dep/src/main.cpp
new file mode 100644
index 000000000..0fdfc6d11
--- /dev/null
+++ b/tests/projects/c++/modules/moduleonly_private_dep/src/main.cpp
@@ -0,0 +1,5 @@
+import B;
+
+int main() {
+ return func();
+}
diff --git a/tests/projects/c++/modules/moduleonly_private_dep/src/modA.mpp b/tests/projects/c++/modules/moduleonly_private_dep/src/modA.mpp
new file mode 100644
index 000000000..03a8f6ae1
--- /dev/null
+++ b/tests/projects/c++/modules/moduleonly_private_dep/src/modA.mpp
@@ -0,0 +1,3 @@
+export module A;
+
+export inline constexpr auto foo = 1;
diff --git a/tests/projects/c++/modules/moduleonly_private_dep/src/modB.cpp b/tests/projects/c++/modules/moduleonly_private_dep/src/modB.cpp
new file mode 100644
index 000000000..6e7a8de49
--- /dev/null
+++ b/tests/projects/c++/modules/moduleonly_private_dep/src/modB.cpp
@@ -0,0 +1,7 @@
+module B;
+
+import A;
+
+int func() {
+ return foo;
+}
diff --git a/tests/projects/c++/modules/moduleonly_private_dep/src/modB.mpp b/tests/projects/c++/modules/moduleonly_private_dep/src/modB.mpp
new file mode 100644
index 000000000..9fbbcbfbb
--- /dev/null
+++ b/tests/projects/c++/modules/moduleonly_private_dep/src/modB.mpp
@@ -0,0 +1,3 @@
+export module B;
+
+export int func();
diff --git a/tests/projects/c++/modules/moduleonly_private_dep/xmake.lua b/tests/projects/c++/modules/moduleonly_private_dep/xmake.lua
new file mode 100644
index 000000000..0150aef8e
--- /dev/null
+++ b/tests/projects/c++/modules/moduleonly_private_dep/xmake.lua
@@ -0,0 +1,17 @@
+set_languages("c++20")
+
+target("A")
+ set_kind("moduleonly")
+ add_files("src/modA.mpp")
+
+target("B")
+ add_deps("A")
+ set_kind("static")
+ add_files("src/modB.mpp", { public = true })
+ add_files("src/modB.cpp")
+
+target("test")
+ set_kind("binary")
+ add_deps("B")
+ add_files("src/main.cpp")
+