summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules/packages
diff options
context:
space:
mode:
authorruki <[email protected]>2024-02-18 21:41:52 +0800
committerGitHub <[email protected]>2024-02-18 21:41:52 +0800
commit3c1163b36e0817dbd5b62ec1ff495dc2e830d6ac (patch)
tree16f6cb664c031d80b1841e6978fc1d8753eb6761 /tests/projects/c++/modules/packages
parentcda48025005f9aa23bdd582e29bb0f1f1ca24d27 (diff)
parentbc1a30db6041c2c14ca79ccf0aa35b2d550e64e5 (diff)
Merge pull request #4673 from xmake-io/modules
Refactor modules support
Diffstat (limited to 'tests/projects/c++/modules/packages')
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.cpp6
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.mpp11
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/include/a.hpp6
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/xmake.lua4
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar/xmake.lua2
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/bar.mpp8
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/xmake.lua6
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/b/bar2/xmake.lua7
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/foo.mpp4
-rw-r--r--tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/xmake.lua2
-rw-r--r--tests/projects/c++/modules/packages/src/main.cpp4
-rw-r--r--tests/projects/c++/modules/packages/xmake.lua6
12 files changed, 54 insertions, 12 deletions
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.cpp b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.cpp
index 5bbb5e5c1..279541ed0 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.cpp
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.cpp
@@ -1,5 +1,5 @@
-module bar;
+#include <a.hpp>
-const char *bar() {
+const char *hello() {
return "Hello world";
-} \ No newline at end of file
+}
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.mpp b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.mpp
index a13487fea..48ed6b73b 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.mpp
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/bar.mpp
@@ -1,3 +1,12 @@
+module;
+
+#include <a.hpp>
+
export module bar;
-export const char *bar(); \ No newline at end of file
+export namespace bar {
+const char *hello() {
+ return ::hello();
+}
+}
+
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/include/a.hpp b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/include/a.hpp
new file mode 100644
index 000000000..7cd8caadb
--- /dev/null
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/include/a.hpp
@@ -0,0 +1,6 @@
+#ifndef A_HPP
+#define A_HPP
+
+[[gnu::visibility("default")]] const char *hello();
+
+#endif
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/xmake.lua b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/xmake.lua
index 345dd2db4..d11bc4f60 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/xmake.lua
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/src/xmake.lua
@@ -3,5 +3,7 @@ set_languages("c++20")
target("bar")
set_kind("static")
+ add_headerfiles("include/(**.hpp)")
+ add_includedirs("include")
add_files("*.cpp")
- add_files("*.mpp", { install = true })
+ add_files("*.mpp", { public = true })
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/xmake.lua b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/xmake.lua
index 301166807..1592fc623 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/b/bar/xmake.lua
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar/xmake.lua
@@ -3,4 +3,4 @@ package("bar")
on_install(function(package)
import("package.tools.xmake").install(package, {})
- end) \ No newline at end of file
+ end)
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/bar.mpp b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/bar.mpp
new file mode 100644
index 000000000..ee9fb2c78
--- /dev/null
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/bar.mpp
@@ -0,0 +1,8 @@
+export module bar2;
+
+export namespace bar {
+ const char *hello2() {
+ return "Hello world";
+ }
+}
+
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/xmake.lua b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/xmake.lua
new file mode 100644
index 000000000..0324fa931
--- /dev/null
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/src/xmake.lua
@@ -0,0 +1,6 @@
+add_rules("mode.release", "mode.debug")
+set_languages("c++20")
+
+target("bar2")
+ set_kind("moduleonly")
+ add_files("*.mpp")
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/xmake.lua b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/xmake.lua
new file mode 100644
index 000000000..ffa208234
--- /dev/null
+++ b/tests/projects/c++/modules/packages/my-repo/packages/b/bar2/xmake.lua
@@ -0,0 +1,7 @@
+package("bar2")
+ set_kind("library")
+ set_sourcedir(path.join(os.scriptdir(), "src"))
+
+ on_install(function(package)
+ import("package.tools.xmake").install(package, {})
+ end)
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/foo.mpp b/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/foo.mpp
index 4cab3d977..a97f3d62b 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/foo.mpp
+++ b/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/foo.mpp
@@ -1,5 +1,7 @@
export module foo;
export namespace foo {
+ #ifdef FOO_EXPORT
void say(const char *);
-} \ No newline at end of file
+ #endif
+}
diff --git a/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/xmake.lua b/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/xmake.lua
index d79b2ac54..9fa37e1d7 100644
--- a/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/xmake.lua
+++ b/tests/projects/c++/modules/packages/my-repo/packages/f/foo/src/xmake.lua
@@ -4,4 +4,4 @@ set_languages("c++20")
target("foo")
set_kind("static")
add_files("*.cpp")
- add_files("*.mpp", { install = true })
+ add_files("*.mpp", {defines = "FOO_EXPORT", public = true})
diff --git a/tests/projects/c++/modules/packages/src/main.cpp b/tests/projects/c++/modules/packages/src/main.cpp
index 10c501c4a..d6f2218c0 100644
--- a/tests/projects/c++/modules/packages/src/main.cpp
+++ b/tests/projects/c++/modules/packages/src/main.cpp
@@ -1,7 +1,9 @@
import foo;
import bar;
+import bar2;
int main() {
- foo::say(bar());
+ foo::say(bar::hello());
+ foo::say(bar::hello2());
return 0;
}
diff --git a/tests/projects/c++/modules/packages/xmake.lua b/tests/projects/c++/modules/packages/xmake.lua
index fe3cc7dc5..62dba119b 100644
--- a/tests/projects/c++/modules/packages/xmake.lua
+++ b/tests/projects/c++/modules/packages/xmake.lua
@@ -1,11 +1,11 @@
add_rules("mode.release", "mode.debug")
-set_languages("c++20")
+set_languages("c++2b")
add_repositories("my-repo my-repo")
-add_requires("foo", "bar")
+add_requires("foo", "bar", "bar2")
target("packages")
set_kind("binary")
add_files("src/*.cpp")
- add_packages("foo", "bar")
+ add_packages("foo", "bar", "bar2")
set_policy("build.c++.modules", true)