summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"