diff options
| author | Christian Rendina <[email protected]> | 2025-04-22 09:26:14 +0200 |
|---|---|---|
| committer | Christian Rendina <[email protected]> | 2025-04-22 09:26:14 +0200 |
| commit | 85eab26586ebff3dcf7d9d476011f1df951965d1 (patch) | |
| tree | 608025ff5933a7109598ebe63eea4eff075bad0b /tests/projects/c++/modules | |
| parent | 42371b9d4d7b3c397e620bfa29041614a8416041 (diff) | |
| parent | 40bfb6e1980d81454c9592da7eaaf0aded11f1ec (diff) | |
Merge branch 'dev' of https://github.com/xmake-io/xmake into dev
Diffstat (limited to 'tests/projects/c++/modules')
8 files changed, 56 insertions, 9 deletions
diff --git a/tests/projects/c++/modules/duplicate_name_detection/test.lua b/tests/projects/c++/modules/duplicate_name_detection/test.lua index 53033dd7f..fd01ea575 100644 --- a/tests/projects/c++/modules/duplicate_name_detection/test.lua +++ b/tests/projects/c++/modules/duplicate_name_detection/test.lua @@ -43,32 +43,32 @@ function main(t) if is_subhost("windows") then local clang = find_tool("clang", {version = true}) if clang and clang.version and semver.compare(clang.version, "17.0") >= 0 then - os.exec("xmake f --toolchain=clang -c --yes") + os.exec("xmake f --toolchain=clang -c --yes --policies=build.c++.modules.std:n") _build() os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") + os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes --policies=build.c++.modules.std:n") _build() end os.exec("xmake clean -a") - os.exec("xmake f -c --yes") + os.exec("xmake f -c --yes --policies=build.c++.modules.std:n") _build() elseif is_subhost("msys") then - os.exec("xmake f -c -p mingw --yes") + os.exec("xmake f -c -p mingw --yes --policies=build.c++.modules.std:n") _build() elseif is_host("linux") then local gcc = find_tool("gcc", {version = true}) if gcc and gcc.version and semver.compare(gcc.version, "11.0") >= 0 then - os.exec("xmake f -c --yes") + os.exec("xmake f -c --yes --policies=build.c++.modules.std:n") _build() end local clang = find_tool("clang", {version = true}) if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang -c --yes") + os.exec("xmake f --toolchain=clang -c --yes --policies=build.c++.modules.std:n") _build() os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") + os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes --policies=build.c++.modules.std:n") _build() end end diff --git a/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp b/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp new file mode 100644 index 000000000..79d91a393 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules_deps/src/bar.mpp @@ -0,0 +1,11 @@ +export module bar; + +import std; + +export auto my_sum2(std::size_t a, std::size_t b) -> std::size_t; + +module :private; + +auto my_sum2(std::size_t a, std::size_t b) -> std::size_t { + return a + a + b + b; +} diff --git a/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp b/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp new file mode 100644 index 000000000..17a3795b7 --- /dev/null +++ b/tests/projects/c++/modules/stdmodules_deps/src/foo.mpp @@ -0,0 +1,11 @@ +export module foo; + +import std; + +export auto my_sum(std::size_t a, std::size_t b) -> std::size_t; + +module :private; + +auto my_sum(std::size_t a, std::size_t b) -> std::size_t { + return a + b; +} diff --git a/tests/projects/c++/modules/stdmodules_deps/src/main.cpp b/tests/projects/c++/modules/stdmodules_deps/src/main.cpp new file mode 100644 index 000000000..e40a369fa --- /dev/null +++ b/tests/projects/c++/modules/stdmodules_deps/src/main.cpp @@ -0,0 +1,9 @@ +import foo; +import bar; + +import std; + +int main() { + std::cout << my_sum(1, 2) << ":" << my_sum2(1, 2) << std::endl; + return 0; +} diff --git a/tests/projects/c++/modules/stdmodules_deps/test.lua b/tests/projects/c++/modules/stdmodules_deps/test.lua new file mode 100644 index 000000000..e77adc4ae --- /dev/null +++ b/tests/projects/c++/modules/stdmodules_deps/test.lua @@ -0,0 +1 @@ +inherit(".test_stdmodules") diff --git a/tests/projects/c++/modules/stdmodules_deps/xmake.lua b/tests/projects/c++/modules/stdmodules_deps/xmake.lua new file mode 100644 index 000000000..7ee801b8c --- /dev/null +++ b/tests/projects/c++/modules/stdmodules_deps/xmake.lua @@ -0,0 +1,15 @@ +add_rules("mode.debug", "mode.release") +set_languages("c++latest") + +target("foo") + set_kind("static") + add_files("src/foo.mpp", {public = true}) + +target("bar") + set_kind("moduleonly") + add_files("src/bar.mpp") + +target("main") + set_kind("binary") + add_deps("foo", "bar") + add_files("src/main.cpp") diff --git a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp index b87808a6e..ab3119785 100644 --- a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp +++ b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.cpp @@ -2,4 +2,4 @@ module my_module; import std; -auto my_sum(size_t a, size_t b) -> size_t { return a + b; } +auto my_sum(std::size_t a, std::size_t b) -> std::size_t { return a + b; } diff --git a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp index bbebb2766..a1cd98e57 100644 --- a/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp +++ b/tests/projects/c++/modules/stdmodules_multiple_targets/src/my_module.mpp @@ -2,4 +2,4 @@ export module my_module; import std; -export auto my_sum(size_t a, size_t b) -> size_t; +export auto my_sum(std::size_t a, std::size_t b) -> std::size_t; |
