例如,如果用户使用make -j5
构建项目,则外部项目的构建命令也应包含-j5
。如果用户改为运行ninja
(我的机器上有8 + 2 = 10个核心),则应将make -j10
传递给外部项目。
有没有办法在不引入新输入变量的情况下获取用户请求的核心数?
修改
我的问题与this one不同,因为我需要捕获核心数量,而不是传播整个make命令。我开始认为这不属于CMake功能。
答案 0 :(得分:0)
这样的东西对你有用吗?
# Echo
find_program(nproc_APP nproc)
if(nproc_APP)
message(STATUS "nproc found at ${nproc_APP}")
else()
message(FATAL_ERROR "nproc not found!")
endif()
# Command
execute_process(
COMMAND ${nproc_APP}
OUTPUT_VARIABLE core_count
)
# Message
message(STATUS "Core Count: ${core_count}")