From f2ea9f6021fcb21ad0f8fc42d3bc78a3ae7d2283 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 3 Nov 2022 22:52:10 +0800 Subject: improve clang to support std modules --- tests/projects/c++/modules/stdmodules/.gitignore | 8 ++++++++ tests/projects/c++/modules/stdmodules/src/my_module.cpp | 5 +++++ tests/projects/c++/modules/stdmodules/src/my_module.mpp | 5 +++++ tests/projects/c++/modules/stdmodules/test/test.cpp | 10 ++++++++++ tests/projects/c++/modules/stdmodules/xmake.lua | 15 +++++++++++++++ tests/projects/c++/modules/stdmodules/xonga.cpp | 2 ++ 6 files changed, 45 insertions(+) create mode 100644 tests/projects/c++/modules/stdmodules/.gitignore create mode 100644 tests/projects/c++/modules/stdmodules/src/my_module.cpp create mode 100644 tests/projects/c++/modules/stdmodules/src/my_module.mpp create mode 100644 tests/projects/c++/modules/stdmodules/test/test.cpp create mode 100644 tests/projects/c++/modules/stdmodules/xmake.lua create mode 100644 tests/projects/c++/modules/stdmodules/xonga.cpp (limited to 'tests/projects/c++/modules/stdmodules') diff --git a/tests/projects/c++/modules/stdmodules/.gitignore b/tests/projects/c++/modules/stdmodules/.gitignore new file mode 100644 index 000000000..152105761 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/.gitignore @@ -0,0 +1,8 @@ +# Xmake cache +.xmake/ +build/ + +# MacOS Cache +.DS_Store + + diff --git a/tests/projects/c++/modules/stdmodules/src/my_module.cpp b/tests/projects/c++/modules/stdmodules/src/my_module.cpp new file mode 100644 index 000000000..829be43e3 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/src/my_module.cpp @@ -0,0 +1,5 @@ +module my_module; + +import std; + +auto my_sum(size_t a, size_t b) -> size_t { return a + b; } \ No newline at end of file diff --git a/tests/projects/c++/modules/stdmodules/src/my_module.mpp b/tests/projects/c++/modules/stdmodules/src/my_module.mpp new file mode 100644 index 000000000..196b33381 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/src/my_module.mpp @@ -0,0 +1,5 @@ +export module my_module; + +import std; + +export auto my_sum(size_t a, size_t b) -> size_t; \ No newline at end of file diff --git a/tests/projects/c++/modules/stdmodules/test/test.cpp b/tests/projects/c++/modules/stdmodules/test/test.cpp new file mode 100644 index 000000000..c23ef7efa --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/test/test.cpp @@ -0,0 +1,10 @@ +// Copyright 2022 Ângelo Andrade Cirino + +#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +#include + +import std; + +import my_module; + +TEST_CASE("Test sum") { CHECK(my_sum(1, 1) == 2); } diff --git a/tests/projects/c++/modules/stdmodules/xmake.lua b/tests/projects/c++/modules/stdmodules/xmake.lua new file mode 100644 index 000000000..e62141e28 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/xmake.lua @@ -0,0 +1,15 @@ +add_rules("mode.debug", "mode.release") +set_languages("c++20") + +add_requires("doctest", { alias = "doctest" }) + +add_cxxflags("-stdlib=libc++") +target("trouble") + set_kind("shared") + add_files("src/*.cpp", "src/*.mpp") + +target("test") + set_kind("binary") + add_files("test/*.cpp") + add_deps("trouble") + add_packages("doctest") diff --git a/tests/projects/c++/modules/stdmodules/xonga.cpp b/tests/projects/c++/modules/stdmodules/xonga.cpp new file mode 100644 index 000000000..bb6a32b1b --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/xonga.cpp @@ -0,0 +1,2 @@ +#include + -- cgit v1.3.1