diff options
| author | ruki <[email protected]> | 2026-04-08 21:45:39 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-08 21:45:39 +0800 |
| commit | 895072e295a4d8f3a4565cf73a5a600fe3e416dd (patch) | |
| tree | b49cf8231f9a7a72d366f4c7c4110f3e862e3a05 /tests/projects/c++/modules | |
| parent | 3a91a8b27ebc9d40656750615a3606e5fe971fc9 (diff) | |
| parent | 642adc138d7c3dee097328b27c327e5c34fccf00 (diff) | |
Merge pull request #7463 from xmake-io/modules
improve versions in c++ modules tests
Diffstat (limited to 'tests/projects/c++/modules')
13 files changed, 63 insertions, 74 deletions
diff --git a/tests/projects/c++/modules/add_move_remove_module/test.lua b/tests/projects/c++/modules/add_move_remove_module/test.lua index ad8c4833b..dbaeedbb2 100644 --- a/tests/projects/c++/modules/add_move_remove_module/test.lua +++ b/tests/projects/c++/modules/add_move_remove_module/test.lua @@ -1,10 +1,6 @@ inherit(".test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function _build(_) local flags = "" if ci_is_running() then @@ -21,8 +17,8 @@ function _build(_) end function main(_) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, build = _build} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, build = _build} - local msvc_options = {version = MSVC_MIN_VER, build = _build} + local clang_options = {compiler = "clang", version = clang_min_ver(), build = _build} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), build = _build} + local msvc_options = {version = msvc_min_ver(), build = _build} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/hello_with_pch/test.lua b/tests/projects/c++/modules/hello_with_pch/test.lua index 7cb5dca01..bba1f8ffd 100644 --- a/tests/projects/c++/modules/hello_with_pch/test.lua +++ b/tests/projects/c++/modules/hello_with_pch/test.lua @@ -1,13 +1,9 @@ inherit(".test_base") -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function main(_) -- clang-cl doesn't support mixing pch and C++ module atm - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, disable_clang_cl = true} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER} - local msvc_options = {version = MSVC_MIN_VER} + local clang_options = {compiler = "clang", version = clang_min_ver(), disable_clang_cl = true} + local gcc_options = {compiler = "gcc", version = gcc_min_ver()} + local msvc_options = {version = msvc_min_ver()} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/install_with_false_default/test.lua b/tests/projects/c++/modules/install_with_false_default/test.lua index 14ef968af..482c5279a 100644 --- a/tests/projects/c++/modules/install_with_false_default/test.lua +++ b/tests/projects/c++/modules/install_with_false_default/test.lua @@ -1,10 +1,6 @@ inherit(".test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function _build(check_outdata) local flags = "" if ci_is_running() then @@ -16,8 +12,8 @@ function _build(check_outdata) end function main(_) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, build = _build} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, build = _build} - local msvc_options = {version = MSVC_MIN_VER, build = _build} + local clang_options = {compiler = "clang", version = clang_min_ver(), build = _build} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), build = _build} + local msvc_options = {version = msvc_min_ver(), build = _build} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/multiple_runtimes/test.lua b/tests/projects/c++/modules/multiple_runtimes/test.lua index ad2585efa..4f9773dd8 100644 --- a/tests/projects/c++/modules/multiple_runtimes/test.lua +++ b/tests/projects/c++/modules/multiple_runtimes/test.lua @@ -3,9 +3,9 @@ import("core.base.semver") import("core.tool.toolchain") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = "19" -GCC_MIN_VER = "15" -MSVC_MIN_VER = "14.35" +local CLANG_MIN_VER = "19" +local GCC_MIN_VER = "15" +local MSVC_MIN_VER = "14.35" function _check_tool_version(name, min_ver) local tool = find_tool(name, {version = true}) diff --git a/tests/projects/c++/modules/test_base.lua b/tests/projects/c++/modules/test_base.lua index 6116b36e6..372229695 100644 --- a/tests/projects/c++/modules/test_base.lua +++ b/tests/projects/c++/modules/test_base.lua @@ -3,10 +3,28 @@ import("core.base.semver") import("core.tool.toolchain") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -CLANG_CL_MIN_VER = "19" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" +-- default minimum compiler versions for C++ modules support +-- sub-tests can override these with local variables before calling run_tests() +local _CLANG_MIN_VER = is_subhost("windows") and "19" or "17" +local _CLANG_CL_MIN_VER = "19" +local _GCC_MIN_VER = "11" +local _MSVC_MIN_VER = "14.29" + +function clang_min_ver() + return _CLANG_MIN_VER +end + +function clang_cl_min_ver() + return _CLANG_CL_MIN_VER +end + +function gcc_min_ver() + return _GCC_MIN_VER +end + +function msvc_min_ver() + return _MSVC_MIN_VER +end function _build(check_outdata) local flags = "" @@ -39,11 +57,11 @@ function can_build() return true elseif is_host("linux") then local gcc = find_tool("gcc", {version = true}) - if gcc and gcc.version and semver.compare(gcc.version, GCC_MIN_VER) >= 0 then + if gcc and gcc.version and semver.compare(gcc.version, gcc_min_ver()) >= 0 then return true end local clang = find_tool("clang", {version = true}) - if clang and clang.version and semver.compare(clang.version, CLANG_MIN_VER) >= 0 then + if clang and clang.version and semver.compare(clang.version, clang_min_ver()) >= 0 then return true end end @@ -132,7 +150,7 @@ function run_tests(clang_options, gcc_options, msvc_options) if not clang_options.disable_clang_cl then local clang_cl_options = table.clone(clang_options) clang_cl_options.compiler = "clang-cl" - clang_cl_options.version = CLANG_CL_MIN_VER + clang_cl_options.version = clang_cl_min_ver() build_tests("clang-cl", clang_cl_options) build_tests("clang-cl", table.join(clang_options, {two_phases = false})) end @@ -204,8 +222,8 @@ function run_tests(clang_options, gcc_options, msvc_options) end function main(_) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER} - local msvc_options = {version = MSVC_MIN_VER} + local clang_options = {compiler = "clang", version = clang_min_ver()} + local gcc_options = {compiler = "gcc", version = gcc_min_ver()} + local msvc_options = {version = msvc_min_ver()} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/test_culling.lua b/tests/projects/c++/modules/test_culling.lua index a2b046e74..aea234eab 100644 --- a/tests/projects/c++/modules/test_culling.lua +++ b/tests/projects/c++/modules/test_culling.lua @@ -1,13 +1,9 @@ inherit("test_base") -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function main(_) local check_outdata = {str = "culled", format_string = "Modules culling does not work"} - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, check_outdata = check_outdata} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, check_outdata = check_outdata} - local msvc_options = {version = MSVC_MIN_VER, check_outdata = check_outdata} + local clang_options = {compiler = "clang", version = clang_min_ver(), check_outdata = check_outdata} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), check_outdata = check_outdata} + local msvc_options = {version = msvc_min_ver(), check_outdata = check_outdata} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/test_dependency_scanner.lua b/tests/projects/c++/modules/test_dependency_scanner.lua index 450a53084..9bcf0f693 100644 --- a/tests/projects/c++/modules/test_dependency_scanner.lua +++ b/tests/projects/c++/modules/test_dependency_scanner.lua @@ -1,10 +1,6 @@ inherit("test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function _build(platform, toolchain_name, runtimes, policies, flags) local flags = "" if ci_is_running() then @@ -21,8 +17,8 @@ function _build(platform, toolchain_name, runtimes, policies, flags) end function main(t) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, flags = {"--foo=y"}, after_build = _build} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, flags = {"--foo=y"}, after_build = _build} - local msvc_options = {version = MSVC_MIN_VER, flags = {"--foo=y"}, after_build = _build} + local clang_options = {compiler = "clang", version = clang_min_ver(), flags = {"--foo=y"}, after_build = _build} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), flags = {"--foo=y"}, after_build = _build} + local msvc_options = {version = msvc_min_ver(), flags = {"--foo=y"}, after_build = _build} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/test_duplicate_modules.lua b/tests/projects/c++/modules/test_duplicate_modules.lua index 98a27d739..7d66c3a8a 100644 --- a/tests/projects/c++/modules/test_duplicate_modules.lua +++ b/tests/projects/c++/modules/test_duplicate_modules.lua @@ -1,10 +1,6 @@ inherit("test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function _build() local flags = "" if ci_is_running() then @@ -26,8 +22,8 @@ function _build() end function main(_) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, build = _build} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, build = _build} - local msvc_options = {version = MSVC_MIN_VER, build = _build} + local clang_options = {compiler = "clang", version = clang_min_ver(), build = _build} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), build = _build} + local msvc_options = {version = msvc_min_ver(), build = _build} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/test_headerunits.lua b/tests/projects/c++/modules/test_headerunits.lua index 610838312..e3bf83f83 100644 --- a/tests/projects/c++/modules/test_headerunits.lua +++ b/tests/projects/c++/modules/test_headerunits.lua @@ -1,10 +1,9 @@ inherit("test_base") -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.30" +local MSVC_MIN_VER = "14.30" function main(t) - local gcc_options = {fallbackscanner = true, compiler = "gcc", version = GCC_MIN_VER} + local gcc_options = {fallbackscanner = true, compiler = "gcc", version = gcc_min_ver()} -- gcc/arm64: internal compiler error: in core_vals, at cp/module.cc:6108 -- on windows, mingw modulemapper doesn't handle headeunit path correctly, but it's working with mingw on macOS / Linux if os.arch() == "arm64" or is_subhost("msys") then diff --git a/tests/projects/c++/modules/test_partitions.lua b/tests/projects/c++/modules/test_partitions.lua index 38500991f..42e30fb35 100644 --- a/tests/projects/c++/modules/test_partitions.lua +++ b/tests/projects/c++/modules/test_partitions.lua @@ -1,8 +1,8 @@ inherit("test_base") -CLANG_MIN_VER = is_subhost("windows") and "19" or "18" -GCC_MIN_VER = "13" -MSVC_MIN_VER = "14.30" +local CLANG_MIN_VER = is_subhost("windows") and "19" or "18" +local GCC_MIN_VER = "13" +local MSVC_MIN_VER = "14.30" function main(_) local clang_options = {compiler = "clang", version = CLANG_MIN_VER} diff --git a/tests/projects/c++/modules/test_stdmodules.lua b/tests/projects/c++/modules/test_stdmodules.lua index 291494b38..e7d6591a7 100644 --- a/tests/projects/c++/modules/test_stdmodules.lua +++ b/tests/projects/c++/modules/test_stdmodules.lua @@ -1,8 +1,8 @@ inherit("test_base") -CLANG_MIN_VER = "19" -GCC_MIN_VER = "15" -MSVC_MIN_VER = "14.35" +local CLANG_MIN_VER = "19" +local GCC_MIN_VER = "15" +local MSVC_MIN_VER = "14.35" function main(_) local clang_options = {stdmodule = true, compiler = "clang", version = CLANG_MIN_VER} diff --git a/tests/projects/c++/modules/test_xmake_test.lua b/tests/projects/c++/modules/test_xmake_test.lua index 2d0b0a2d1..f0a2c9872 100644 --- a/tests/projects/c++/modules/test_xmake_test.lua +++ b/tests/projects/c++/modules/test_xmake_test.lua @@ -1,10 +1,6 @@ inherit("test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = is_subhost("windows") and "19" or "17" -GCC_MIN_VER = "11" -MSVC_MIN_VER = "14.29" - function run_xmake_test(...) local flags = "" if ci_is_running() then @@ -15,8 +11,8 @@ function run_xmake_test(...) end function main(t) - local clang_options = {compiler = "clang", version = CLANG_MIN_VER, after_build = run_xmake_test} - local gcc_options = {compiler = "gcc", version = GCC_MIN_VER, after_build = run_xmake_test} - local msvc_options = {version = MSVC_MIN_VER, after_build = run_xmake_test} + local clang_options = {compiler = "clang", version = clang_min_ver(), after_build = run_xmake_test} + local gcc_options = {compiler = "gcc", version = gcc_min_ver(), after_build = run_xmake_test} + local msvc_options = {version = msvc_min_ver(), after_build = run_xmake_test} run_tests(clang_options, gcc_options, msvc_options) end diff --git a/tests/projects/c++/modules/test_xmake_test_stdmodules.lua b/tests/projects/c++/modules/test_xmake_test_stdmodules.lua index 0e95de5bd..ab28eaf86 100644 --- a/tests/projects/c++/modules/test_xmake_test_stdmodules.lua +++ b/tests/projects/c++/modules/test_xmake_test_stdmodules.lua @@ -1,9 +1,9 @@ inherit("test_base") import("utils.ci.is_running", {alias = "ci_is_running"}) -CLANG_MIN_VER = "19" -GCC_MIN_VER = "15" -MSVC_MIN_VER = "14.35" +local CLANG_MIN_VER = "19" +local GCC_MIN_VER = "15" +local MSVC_MIN_VER = "14.35" function run_xmake_test(...) local flags = "" |
