Skip to content

Commit 689ebab

Browse files
committed
improve cmake for ninja
1 parent 014838d commit 689ebab

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

xmake/modules/package/tools/cmake.lua

+12-9
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,8 @@ end
359359
-- get ninja
360360
function _get_ninja(package)
361361
local ninja = find_tool("ninja")
362+
print("ninja", ninja)
363+
os.exec("ninja --version")
362364
if ninja then
363365
return ninja.program
364366
end
@@ -601,9 +603,6 @@ function _get_configs_for_mingw(package, configs, opt)
601603
if is_subhost("windows") and opt.cmake_generator ~= "Ninja" then
602604
envs.CMAKE_MAKE_PROGRAM = _get_mingw32_make(package)
603605
end
604-
if opt.cmake_generator == "Ninja" then
605-
envs.CMAKE_MAKE_PROGRAM = "ninja"
606-
end
607606
_fix_cxx_compiler_cmake(package, envs)
608607
_insert_configs_from_envs(configs, envs, opt)
609608
end
@@ -618,12 +617,7 @@ function _get_configs_for_wasm(package, configs, opt)
618617
assert(emscripten_cmakefile, "Emscripten.cmake not found!")
619618
table.insert(configs, "-DCMAKE_TOOLCHAIN_FILE=" .. emscripten_cmakefile)
620619
if is_subhost("windows") then
621-
if opt.cmake_generator == "Ninja" then
622-
local ninja = _get_ninja(package)
623-
if ninja then
624-
table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. ninja)
625-
end
626-
else
620+
if opt.cmake_generator ~= "Ninja" then
627621
local mingw_make = _get_mingw32_make(package)
628622
if mingw_make then
629623
table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. mingw_make)
@@ -783,6 +777,11 @@ function _get_configs_for_generator(package, configs, opt)
783777
table.insert(configs, "-DCMAKE_JOB_POOL_LINK:STRING=link")
784778
table.insert(configs, ("-DCMAKE_JOB_POOLS:STRING=compile=%s;link=%s"):format(jobs, linkjobs))
785779
end
780+
local ninja = _get_ninja(package)
781+
print("_get_configs_for_generator", cmake_generator, ninja)
782+
if ninja then
783+
table.insert(configs, "-DCMAKE_MAKE_PROGRAM=" .. ninja)
784+
end
786785
end
787786
elseif package:is_plat("mingw") and is_subhost("msys") then
788787
table.insert(configs, "-G")
@@ -964,6 +963,7 @@ function _get_configs(package, configs, opt)
964963
table.insert(configs, "-DCMAKE_CXX_COMPILER_LAUNCHER=" .. ccache)
965964
end
966965

966+
print("configs", configs)
967967
return configs
968968
end
969969

@@ -1312,13 +1312,16 @@ function configure(package, configs, opt)
13121312
table.insert(argv, "-D" .. name .. "=" .. value)
13131313
end
13141314
end
1315+
print("before shrink", argv)
13151316
-- shrink cmake arguments, fix too long arguments
13161317
-- @see https://github.com/xmake-io/xmake-repo/pull/5247#discussion_r1780302212
13171318
_shrink_cmake_arguments(argv, oldir, opt)
13181319
table.insert(argv, oldir)
13191320

13201321
-- do configure
13211322
local cmake = assert(find_tool("cmake"), "cmake not found!")
1323+
print(argv)
1324+
print(package:name(), package:plat(), package:arch(), opt)
13221325
os.vrunv(cmake.program, argv, {envs = opt.envs or buildenvs(package, opt)})
13231326
os.cd(oldir)
13241327
end

0 commit comments

Comments
 (0)