summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-09-07 22:41:15 +0800
committerruki <[email protected]>2025-09-07 22:41:15 +0800
commite0c9112837c5619b1407c7a8b3eab8a30f5a883d (patch)
tree73c1ff3a8d1ab73926cf3c81fd13069e67f32013
parenta6ba93f895b4b2128c3b310bea24c072e9d3a702 (diff)
improve config targets test
-rw-r--r--tests/benchmarks/config_targets/test.lua18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/benchmarks/config_targets/test.lua b/tests/benchmarks/config_targets/test.lua
index 2b2838e9a..a9d9b9476 100644
--- a/tests/benchmarks/config_targets/test.lua
+++ b/tests/benchmarks/config_targets/test.lua
@@ -1,4 +1,5 @@
import("lib.detect.find_tool")
+import("core.tool.toolchain")
function test_config(t)
@@ -20,11 +21,23 @@ function test_config(t)
print("config targets/1k: cmake/default: %d ms", cmake_default_dt)
t:require((cmake_default_dt > xmake_dt) or (cmake_default_dt + 1000 > xmake_dt))
- if find_tool("ninja") and not is_subhost("windows") then
+ local ninja = find_tool("ninja")
+ if ninja then
os.tryrm("build")
os.mkdir("build")
+ local configs = {}
+ local envs
+ if is_host("windows") then
+ table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. ninja.program)
+ local msvc = toolchain.load("msvc")
+ if msvc:check() then
+ table.insert(configs, "-DCMAKE_CXX_COMPILER=" .. (msvc:tool("cxx")))
+ table.insert(configs, "-DCMAKE_C_COMPILER=" .. (msvc:tool("cc")))
+ envs = os.joinenvs(msvc:runenvs())
+ end
+ end
local cmake_ninja_dt = os.mclock()
- os.runv(cmake.program, {"..", "-G", "Ninja"}, {curdir = "build"})
+ os.runv(cmake.program, table.join("..", "-G", "Ninja", configs), {curdir = "build", envs = envs})
cmake_ninja_dt = os.mclock() - cmake_ninja_dt
print("config targets/1k: cmake/ninja: %d ms", cmake_ninja_dt)
t:require((cmake_ninja_dt > xmake_dt) or (cmake_ninja_dt + 1000 > xmake_dt))
@@ -53,3 +66,4 @@ function test_config(t)
end
end
+