如何捕获用户请求的核心数?

时间:2018-03-09 17:47:40

标签: cmake

例如,如果用户使用make -j5构建项目,则外部项目的构建命令也应包含-j5。如果用户改为运行ninja(我的机器上有8 + 2 = 10个核心),则应将make -j10传递给外部项目。

有没有办法在不引入新输入变量的情况下获取用户请求的核心数?

修改

我的问题与this one不同,因为我需要捕获核心数量,而不是传播整个make命令。我开始认为这不属于CMake功能。

1 个答案:

答案 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}")