CMake : how to use bash command in CMakeLists.txt

2020-05-22 04:35发布

I'm wondering how I can use bash command in CMakeLists.txt. What I want is to get the number of processor retrieved using :

export variable=`getconf _NPROCESSORS_ONLN`

and set NB_PROCESSOR to variable using something like :

SET (NB_PROCESSOR variable)

So my question is how can I use the getconf command in CMakeLists.txt and how can I use the result (stored in variable) in CMake SET command?

标签: bash cmake
2条回答
做个烂人
2楼-- · 2020-05-22 05:17

Use the EXEC_PROGRAM command and then use the CACHE option of the SET command to save the output to a variable like GTK_PKG_FLAGS. Then use the SET command to add the value. Something like this:

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

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

查看更多
Ridiculous、
3楼-- · 2020-05-22 05:18

This seems to do the trick, and saves the "set" too.

execute_process(COMMAND getconf  _NPROCESSORS_ONLN
                OUTPUT_VARIABLE NB_PROCESSOR)
查看更多
登录 后发表回答