summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-12-20 00:55:25 +0800
committerruki <[email protected]>2025-12-20 00:55:25 +0800
commit4cb4b4e691ec53a7af6af9a862d332377fcd4ffe (patch)
tree8a972a4b311b310c8ba5f030b8b18dfe93b6dc07
parent14c25db29718e67470b6d4847efef6b2146f9350 (diff)
fix package default runtimes
-rw-r--r--tests/projects/c++/modules/test_base.lua3
-rw-r--r--xmake/modules/private/action/require/impl/package.lua3
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"