From 0f3fd89593450c21b2fb75e89950f47f9a85202e Mon Sep 17 00:00:00 2001 From: Arthur LAURENT Date: Mon, 25 Aug 2025 12:48:58 +0200 Subject: feat(C++ modules support) use a file for requires files when --verbose or --diagnosis is supplied --- .../projects/c++/modules/hide_dependency_flags/src/bar.mpp | 8 ++++++++ .../projects/c++/modules/hide_dependency_flags/src/cat.mpp | 8 ++++++++ .../projects/c++/modules/hide_dependency_flags/src/foo.mpp | 13 +++++++++++++ .../projects/c++/modules/hide_dependency_flags/src/main.cpp | 10 ++++++++++ .../projects/c++/modules/hide_dependency_flags/src/zoo.mpp | 8 ++++++++ tests/projects/c++/modules/hide_dependency_flags/test.lua | 1 + tests/projects/c++/modules/hide_dependency_flags/xmake.lua | 7 +++++++ 7 files changed, 55 insertions(+) create mode 100644 tests/projects/c++/modules/hide_dependency_flags/src/bar.mpp create mode 100644 tests/projects/c++/modules/hide_dependency_flags/src/cat.mpp create mode 100644 tests/projects/c++/modules/hide_dependency_flags/src/foo.mpp create mode 100644 tests/projects/c++/modules/hide_dependency_flags/src/main.cpp create mode 100644 tests/projects/c++/modules/hide_dependency_flags/src/zoo.mpp create mode 100644 tests/projects/c++/modules/hide_dependency_flags/test.lua create mode 100644 tests/projects/c++/modules/hide_dependency_flags/xmake.lua (limited to 'tests/projects/c++/modules/hide_dependency_flags') diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/bar.mpp b/tests/projects/c++/modules/hide_dependency_flags/src/bar.mpp new file mode 100644 index 000000000..140924a85 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/src/bar.mpp @@ -0,0 +1,8 @@ +export module bar; +import zoo; + +export namespace bar { + int add(int a, int b) { + return zoo::add(a, b); + } +} diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/cat.mpp b/tests/projects/c++/modules/hide_dependency_flags/src/cat.mpp new file mode 100644 index 000000000..652940c08 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/src/cat.mpp @@ -0,0 +1,8 @@ +export module cat; + +export namespace cat { + int sub(int a, int b) { + return a - b; + } +} + diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/foo.mpp b/tests/projects/c++/modules/hide_dependency_flags/src/foo.mpp new file mode 100644 index 000000000..5aac74086 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/src/foo.mpp @@ -0,0 +1,13 @@ +export module foo; +import bar; +import cat; + +export namespace foo { + int add(int a, int b) { + return bar::add(a, b); + } + int sub(int a, int b) { + return cat::sub(a, b); + } +} + diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp b/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp new file mode 100644 index 000000000..b5c04f1b2 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp @@ -0,0 +1,10 @@ +#include + +import foo; + +int main() { + printf("add(1, 2): %d\n", foo::add(1, 2)); + printf("sub(1, 2): %d\n", foo::sub(1, 2)); + return 0; +} + diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/zoo.mpp b/tests/projects/c++/modules/hide_dependency_flags/src/zoo.mpp new file mode 100644 index 000000000..60c86ddf6 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/src/zoo.mpp @@ -0,0 +1,8 @@ +export module zoo; + +export namespace zoo { + int add(int a, int b) { + return a + b; + } +} + diff --git a/tests/projects/c++/modules/hide_dependency_flags/test.lua b/tests/projects/c++/modules/hide_dependency_flags/test.lua new file mode 100644 index 000000000..7717f8049 --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/test.lua @@ -0,0 +1 @@ +inherit(".test_base") diff --git a/tests/projects/c++/modules/hide_dependency_flags/xmake.lua b/tests/projects/c++/modules/hide_dependency_flags/xmake.lua new file mode 100644 index 000000000..875146a1d --- /dev/null +++ b/tests/projects/c++/modules/hide_dependency_flags/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.release", "mode.debug") +set_languages("c++20") + +target("dependence2") + set_kind("binary") + add_files("src/*.cpp", "src/*.mpp") + set_policy("build.c++.modules.hide_dependencies", true) -- cgit v1.3.1 From 6c8282ac85fa5ea5e13a14bfedb5943f2db1ea69 Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 9 Sep 2025 11:00:14 +0800 Subject: Update main.cpp --- tests/projects/c++/modules/hide_dependency_flags/src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/projects/c++/modules/hide_dependency_flags') diff --git a/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp b/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp index b5c04f1b2..1d385dcfa 100644 --- a/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp +++ b/tests/projects/c++/modules/hide_dependency_flags/src/main.cpp @@ -2,7 +2,7 @@ import foo; -int main() { +int main(int argc, char** argv) { printf("add(1, 2): %d\n", foo::add(1, 2)); printf("sub(1, 2): %d\n", foo::sub(1, 2)); return 0; -- cgit v1.3.1