diff options
| author | ruki <[email protected]> | 2024-03-14 00:53:00 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-03-14 00:53:00 +0800 |
| commit | 61045518a48698768f184e7509796f7c911f118e (patch) | |
| tree | 0eccb11232f4f4ac9d134e4cfc6730d52f7f05ee /tests/projects/c++ | |
| parent | 218abfd90286dd906f28c368802fd755808f1ab9 (diff) | |
add paritions_implunit2
Diffstat (limited to 'tests/projects/c++')
6 files changed, 32 insertions, 1 deletions
diff --git a/tests/projects/c++/modules/partitions_implunit/xmake.lua b/tests/projects/c++/modules/partitions_implunit/xmake.lua index 9e0ab37bb..957f0f982 100644 --- a/tests/projects/c++/modules/partitions_implunit/xmake.lua +++ b/tests/projects/c++/modules/partitions_implunit/xmake.lua @@ -1,6 +1,6 @@ add_rules("mode.release", "mode.debug")
set_languages("c++20")
-target("partition2")
+target("test")
set_kind("binary")
add_files("src/*.cpp", "src/*.mpp")
diff --git a/tests/projects/c++/modules/partitions_implunit2/src/foo.mpp b/tests/projects/c++/modules/partitions_implunit2/src/foo.mpp new file mode 100644 index 000000000..dc1293e82 --- /dev/null +++ b/tests/projects/c++/modules/partitions_implunit2/src/foo.mpp @@ -0,0 +1,8 @@ +// Foo.mpp +export module Foo; + +import :Impl; // can't export import Impl because Impl is a implementation partition unit + +export void foo() { + bar(); +} diff --git a/tests/projects/c++/modules/partitions_implunit2/src/foo_impl.mpp b/tests/projects/c++/modules/partitions_implunit2/src/foo_impl.mpp new file mode 100644 index 000000000..af4058b15 --- /dev/null +++ b/tests/projects/c++/modules/partitions_implunit2/src/foo_impl.mpp @@ -0,0 +1,10 @@ +module; +#include <iostream> + +// Foo-Impl.mpp +// can only be imported by module Foo, and visibility of bar is only public to module Foo +module Foo:Impl; + +export void bar() { + std::cout << "Hello world" << std::endl; +} diff --git a/tests/projects/c++/modules/partitions_implunit2/src/main.cpp b/tests/projects/c++/modules/partitions_implunit2/src/main.cpp new file mode 100644 index 000000000..acef780c2 --- /dev/null +++ b/tests/projects/c++/modules/partitions_implunit2/src/main.cpp @@ -0,0 +1,6 @@ +import Foo;
+
+int main(int argc, char** argv) {
+ foo();
+ return 0;
+}
diff --git a/tests/projects/c++/modules/partitions_implunit2/test.lua b/tests/projects/c++/modules/partitions_implunit2/test.lua new file mode 100644 index 000000000..e77adc4ae --- /dev/null +++ b/tests/projects/c++/modules/partitions_implunit2/test.lua @@ -0,0 +1 @@ +inherit(".test_stdmodules") diff --git a/tests/projects/c++/modules/partitions_implunit2/xmake.lua b/tests/projects/c++/modules/partitions_implunit2/xmake.lua new file mode 100644 index 000000000..957f0f982 --- /dev/null +++ b/tests/projects/c++/modules/partitions_implunit2/xmake.lua @@ -0,0 +1,6 @@ +add_rules("mode.release", "mode.debug")
+set_languages("c++20")
+
+target("test")
+ set_kind("binary")
+ add_files("src/*.cpp", "src/*.mpp")
|
