From 4cb4b4e691ec53a7af6af9a862d332377fcd4ffe Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 20 Dec 2025 00:55:25 +0800 Subject: fix package default runtimes --- tests/projects/c++/modules/test_base.lua | 3 ++- xmake/modules/private/action/require/impl/package.lua | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/projects/c++/modules/test_base.lua b/tests/projects/c++/modules/test_base.lua index 466a59e98..6f2a42088 100644 --- a/tests/projects/c++/modules/test_base.lua +++ b/tests/projects/c++/modules/test_base.lua @@ -95,7 +95,8 @@ function build_tests(toolchain_name, opt) if opt.runtimes then runtimes = " --runtimes=" .. opt.runtimes .. " " end - print("running with config: (toolchain: %s, compiler: %s, version: %s, runtimes: %s, stdmodule: %s, fallback scanner: %s, two phases: %s)", toolchain_name, compiler, version, opt.runtimes or "default", opt.stdmodule or false, opt.fallbackscanner or false, two_phases) + print("running with config: (toolchain: %s, compiler: %s, version: %s, runtimes: %s, stdmodule: %s, fallback scanner: %s, two phases: %s)", + toolchain_name, compiler, version, opt.runtimes or "default", opt.stdmodule or false, opt.fallbackscanner or false, two_phases) local flags = "" if opt.flags then diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index 9fb765f21..90efb3751 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -546,7 +546,8 @@ function _finish_requireinfo(requireinfo, package) else runtimes = {} end - if not table.contains(runtimes, "MT", "MD", "MTd", "MDd") then + -- we should not set default runtimes if runtimes has been set, e.g. `xmake f --toolchain=clang --runtimes=c++_shared` + if #runtimes == 0 then local vs_runtime_default = project.policy("build.c++.msvc.runtime") if vs_runtime_default and is_mode("debug") then vs_runtime_default = vs_runtime_default .. "d" -- cgit v1.3.1