summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorChristian Rendina <[email protected]>2025-04-22 09:26:14 +0200
committerChristian Rendina <[email protected]>2025-04-22 09:26:14 +0200
commit85eab26586ebff3dcf7d9d476011f1df951965d1 (patch)
tree608025ff5933a7109598ebe63eea4eff075bad0b /tests/projects/c++/modules
parent42371b9d4d7b3c397e620bfa29041614a8416041 (diff)
parent40bfb6e1980d81454c9592da7eaaf0aded11f1ec (diff)
Merge branch 'dev' of https://github.com/xmake-io/xmake into dev
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/duplicate_name_detection/test.lua14
-rw-r--r--tests/projects/c++/modules/stdmodules_deps/src/bar.mpp11
-rw-r--r--tests/projects/c++/modules/stdmodules_deps/src/foo.mpp11
-rw-r--r--tests/projects/c++/modules/stdmodules_deps/src/main.cpp9
-rw-r--r--tests/projects/c++/modules/stdmodules_deps/test.lua1
-rw-r--r--tests/projects/c++/modules/stdmodules_deps/xmake.lua15
-rw-r--r--tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp2
-rw-r--r--tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp2
8 files changed, 56 insertions, 9 deletions
diff --git a/tests/projects/c++/modules/duplicate_name_detection/test.lua b/tests/projects/c++/modules/duplicate_name_detection/test.lua
index 53033dd7f..fd01ea575 100644
--- a/tests/projects/c++/modules/duplicate_name_detection/test.lua
+++ b/tests/projects/c++/modules/duplicate_name_detection/test.lua
@@ -43,32 +43,32 @@ function main(t)
if is_subhost("windows") then
local clang = find_tool("clang", {version = true})
if clang and clang.version and semver.compare(clang.version, "17.0") >= 0 then
- os.exec("xmake f --toolchain=clang -c --yes")
+ os.exec("xmake f --toolchain=clang -c --yes --policies=build.c++.modules.std:n")
_build()
os.exec("xmake clean -a")
- os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes")
+ os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes --policies=build.c++.modules.std:n")
_build()
end
os.exec("xmake clean -a")
- os.exec("xmake f -c --yes")
+ os.exec("xmake f -c --yes --policies=build.c++.modules.std:n")
_build()
elseif is_subhost("msys") then
- os.exec("xmake f -c -p mingw --yes")
+ os.exec("xmake f -c -p mingw --yes --policies=build.c++.modules.std:n")
_build()
elseif is_host("linux") then
local gcc = find_tool("gcc", {version = true})
if gcc and gcc.version and semver.compare(gcc.version, "11.0") >= 0 then
- os.exec("xmake f -c --yes")
+ os.exec("xmake f -c --yes --policies=build.c++.modules.std:n")
_build()
end
local clang = find_tool("clang", {version = true})
if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then
os.exec("xmake clean -a")
- os.exec("xmake f --toolchain=clang -c --yes")
+ os.exec("xmake f --toolchain=clang -c --yes --policies=build.c++.modules.std:n")
_build()
os.exec("xmake clean -a")
- os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes")
+ os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes --policies=build.c++.modules.std:n")
_build()
end
end
diff --git a/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp b/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp
new file mode 100644
index 000000000..79d91a393
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp
@@ -0,0 +1,11 @@
+export module bar;
+
+import std;
+
+export auto my_sum2(std::size_t a, std::size_t b) -> std::size_t;
+
+module :private;
+
+auto my_sum2(std::size_t a, std::size_t b) -> std::size_t {
+ return a + a + b + b;
+}
diff --git a/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp b/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp
new file mode 100644
index 000000000..17a3795b7
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp
@@ -0,0 +1,11 @@
+export module foo;
+
+import std;
+
+export auto my_sum(std::size_t a, std::size_t b) -> std::size_t;
+
+module :private;
+
+auto my_sum(std::size_t a, std::size_t b) -> std::size_t {
+ return a + b;
+}
diff --git a/tests/projects/c++/modules/stdmodules_deps/src/main.cpp b/tests/projects/c++/modules/stdmodules_deps/src/main.cpp
new file mode 100644
index 000000000..e40a369fa
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules_deps/src/main.cpp
@@ -0,0 +1,9 @@
+import foo;
+import bar;
+
+import std;
+
+int main() {
+ std::cout << my_sum(1, 2) << ":" << my_sum2(1, 2) << std::endl;
+ return 0;
+}
diff --git a/tests/projects/c++/modules/stdmodules_deps/test.lua b/tests/projects/c++/modules/stdmodules_deps/test.lua
new file mode 100644
index 000000000..e77adc4ae
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules_deps/test.lua
@@ -0,0 +1 @@
+inherit(".test_stdmodules")
diff --git a/tests/projects/c++/modules/stdmodules_deps/xmake.lua b/tests/projects/c++/modules/stdmodules_deps/xmake.lua
new file mode 100644
index 000000000..7ee801b8c
--- /dev/null
+++ b/tests/projects/c++/modules/stdmodules_deps/xmake.lua
@@ -0,0 +1,15 @@
+add_rules("mode.debug", "mode.release")
+set_languages("c++latest")
+
+target("foo")
+ set_kind("static")
+ add_files("src/foo.mpp", {public = true})
+
+target("bar")
+ set_kind("moduleonly")
+ add_files("src/bar.mpp")
+
+target("main")
+ set_kind("binary")
+ add_deps("foo", "bar")
+ add_files("src/main.cpp")
diff --git a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp
index b87808a6e..ab3119785 100644
--- a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp
+++ b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp
@@ -2,4 +2,4 @@ module my_module;
import std;
-auto my_sum(size_t a, size_t b) -> size_t { return a + b; }
+auto my_sum(std::size_t a, std::size_t b) -> std::size_t { return a + b; }
diff --git a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp
index bbebb2766..a1cd98e57 100644
--- a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp
+++ b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp
@@ -2,4 +2,4 @@ export module my_module;
import std;
-export auto my_sum(size_t a, size_t b) -> size_t;
+export auto my_sum(std::size_t a, std::size_t b) -> std::size_t;