diff options
| author | ruki <[email protected]> | 2025-09-07 22:41:15 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-09-07 22:41:15 +0800 |
| commit | e0c9112837c5619b1407c7a8b3eab8a30f5a883d (patch) | |
| tree | 73c1ff3a8d1ab73926cf3c81fd13069e67f32013 | |
| parent | a6ba93f895b4b2128c3b310bea24c072e9d3a702 (diff) | |
improve config targets test
| -rw-r--r-- | tests/benchmarks/config_targets/test.lua | 18 |
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 + |
