CMake:如何在CMakeLists.txt中使用bash命令

cla*_*laf 22 bash cmake

我想知道如何在CMakeLists.txt中使用bash命令.我想要的是使用以下方法获取检索到的处理器数量:

export variable=`getconf _NPROCESSORS_ONLN`
Run Code Online (Sandbox Code Playgroud)

并使用以下内容将NB_PROCESSOR设置为变量:

SET (NB_PROCESSOR variable)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何在CMakeLists.txt中使用getconf命令以及如何在CMake SET命令中使用结果(存储在变量中)?

ric*_*chq 19

这似乎可以解决问题,也可以保存"设置".

execute_process(COMMAND getconf  _NPROCESSORS_ONLN
                OUTPUT_VARIABLE NB_PROCESSOR)
Run Code Online (Sandbox Code Playgroud)


Jia*_*ian 8

使用EXEC_PROGRAM命令,然后使用SET命令的CACHE选项将输出保存到类似GTK_PKG_FLAGS的变量.然后使用SET命令添加值.像这样的东西:

IF(NOT GTK_PKG_FLAGS)
   EXEC_PROGRAM(pkg-config ARGS --cflags --libs gtkmm
                OUTPUT_VARIABLE GTK_PKG_FLAGS)
   SET(GTK_PKG_FLAGS "${GTK_PKG_FLAGS}" CACHE STRING "GTK Flags")
ENDIF(NOT GTK_PKG_FLAGS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTK_PKG_FLAGS}")
Run Code Online (Sandbox Code Playgroud)

链接:http://www.cmake.org/pipermail/cmake/2005-January/006051.html