diff options
| author | ruki <[email protected]> | 2022-11-04 22:44:52 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-11-04 22:44:52 +0800 |
| commit | 6c819d681111add7afa70920b788d8d56f620d77 (patch) | |
| tree | 9a7f2af95e6e16541fd05dc7dec3957f79df69b3 /tests/projects/c++/modules | |
| parent | 9fe1d17945bc670c0ec3b394c39e17e0cedb7b44 (diff) | |
| parent | 0fdefd2f7280db640ed09df068e09f98649ce7ec (diff) | |
Merge pull request #3016 from xmake-io/module
Improve clang/gcc/msvc to better support std modules
Diffstat (limited to 'tests/projects/c++/modules')
5 files changed, 52 insertions, 0 deletions
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..5264da821 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/src/my_module.cpp @@ -0,0 +1,9 @@ +module my_module; + +#ifdef _MSC_VER +import std.core; +#else +import std; +#endif + +auto my_sum(size_t a, size_t b) -> size_t { return a + b; } 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..5c0e44bc9 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/src/my_module.mpp @@ -0,0 +1,9 @@ +export module my_module; + +#ifdef _MSC_VER +import std.core; +#else +import std; +#endif + +export auto my_sum(size_t a, size_t b) -> size_t; 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..a12813c24 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/test/test.cpp @@ -0,0 +1,13 @@ +#ifdef _MSC_VER +import std.core; +#else +import std; +#endif + +import my_module; + +using namespace std; + +int main(int argc, char** argv) { + cout << my_sum(1, 1) << endl; +} diff --git a/tests/projects/c++/modules/stdmodules/xmake.lua b/tests/projects/c++/modules/stdmodules/xmake.lua new file mode 100644 index 000000000..b3521e74b --- /dev/null +++ b/tests/projects/c++/modules/stdmodules/xmake.lua @@ -0,0 +1,13 @@ +add_rules("mode.debug", "mode.release") +set_languages("c++20") + +add_cxxflags("clang::-stdlib=libc++") +set_values("msvc.modules.stdifcdir", true) +target("mod") + set_kind("shared") + add_files("src/*.cpp", "src/*.mpp") + +target("test") + set_kind("binary") + add_files("test/*.cpp") + add_deps("mod") |
