summaryrefslogtreecommitdiff
path: root/tests/projects/c++/modules
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2024-01-31 13:02:11 +0100
committerArthur LAURENT <[email protected]>2024-01-31 13:45:43 +0100
commit89f151ab335ad2aa1e5d1cc900f1e3837caa6437 (patch)
tree51400158d69a54fafac973d4a7b8ca40ff540265 /tests/projects/c++/modules
parentf3ec9cc0f7cf6d0b48dce8a69c5f6103b9dd6df3 (diff)
add a test for aliased headerunits
Diffstat (limited to 'tests/projects/c++/modules')
-rw-r--r--tests/projects/c++/modules/aliased_headerunit/src/foo/hello.mpp12
-rw-r--r--tests/projects/c++/modules/aliased_headerunit/src/header.hpp5
-rw-r--r--tests/projects/c++/modules/aliased_headerunit/src/main.cpp7
-rw-r--r--tests/projects/c++/modules/aliased_headerunit/test.lua1
-rw-r--r--tests/projects/c++/modules/aliased_headerunit/xmake.lua8
5 files changed, 33 insertions, 0 deletions
diff --git a/tests/projects/c++/modules/aliased_headerunit/src/foo/hello.mpp b/tests/projects/c++/modules/aliased_headerunit/src/foo/hello.mpp
new file mode 100644
index 000000000..0a8de6291
--- /dev/null
+++ b/tests/projects/c++/modules/aliased_headerunit/src/foo/hello.mpp
@@ -0,0 +1,12 @@
+module;
+#include <cstdio>
+
+export module hello;
+
+import "../header.hpp";
+
+export namespace hello {
+ void say(const char *arg) {
+ printf("%s: %s\n", FOO, arg);
+ }
+}
diff --git a/tests/projects/c++/modules/aliased_headerunit/src/header.hpp b/tests/projects/c++/modules/aliased_headerunit/src/header.hpp
new file mode 100644
index 000000000..ab02a6792
--- /dev/null
+++ b/tests/projects/c++/modules/aliased_headerunit/src/header.hpp
@@ -0,0 +1,5 @@
+#pragma once
+
+namespace hello {
+ inline constexpr auto FOO = "Hello";
+}
diff --git a/tests/projects/c++/modules/aliased_headerunit/src/main.cpp b/tests/projects/c++/modules/aliased_headerunit/src/main.cpp
new file mode 100644
index 000000000..ad786367e
--- /dev/null
+++ b/tests/projects/c++/modules/aliased_headerunit/src/main.cpp
@@ -0,0 +1,7 @@
+import hello;
+import "header.hpp";
+
+int main() {
+ hello::say(hello::FOO);
+ return 0;
+}
diff --git a/tests/projects/c++/modules/aliased_headerunit/test.lua b/tests/projects/c++/modules/aliased_headerunit/test.lua
new file mode 100644
index 000000000..c18e5a1d0
--- /dev/null
+++ b/tests/projects/c++/modules/aliased_headerunit/test.lua
@@ -0,0 +1 @@
+inherit(".test_headerunits")
diff --git a/tests/projects/c++/modules/aliased_headerunit/xmake.lua b/tests/projects/c++/modules/aliased_headerunit/xmake.lua
new file mode 100644
index 000000000..5b4827d09
--- /dev/null
+++ b/tests/projects/c++/modules/aliased_headerunit/xmake.lua
@@ -0,0 +1,8 @@
+add_rules("mode.release", "mode.debug")
+set_languages("c++20")
+
+-- header.hpp should be built only one time
+target("aliased_headerunit")
+ set_kind("binary")
+ add_headerfiles("src/*.hpp")
+ add_files("src/*.cpp", "src/foo/*.mpp")