2009-03-18 10 views
22

CMakeLists.txtでどのようにbashコマンドを使うことができますか?私が欲しいのはプロセッサの数が使用して取得し得ることです:CMake:CMakeLists.txtでbashコマンドを使用する方法

export variable=`getconf _NPROCESSORS_ONLN` 

とのようなものを使用して変数にNB_PROCESSORを設定します。

SET (NB_PROCESSOR variable) 

だから私の質問は、私はCMakeListsでgetconfコマンドを使用する方法です。 txtとどのように私はCMakeのSETコマンドで(変数に格納されている)結果を使用することができますか?

答えて

19

これはトリックを行うように見え、 "セット"も保存します。

execute_process(COMMAND getconf _NPROCESSORS_ONLN 
       OUTPUT_VARIABLE NB_PROCESSOR) 
+0

、私は中にコマンドの結果を参照してください "cmakeの。"私のconfig.h.inに "#cmakedefine NB_PROCESSOR $ {NB_PROCESSOR}"があれば、 "#define NB_PROCESSOR value"の代わりに "#undef NB_PROCESSOR"を得るでしょう。どんな手掛かり? – claf

+0

私はうんざりしました - それはOUTPUT_ RESULT_VARIABLEでなければなりません。前者はプログラムからの出力を格納し、後者は結果を返します(bash-speakの$?) – richq

+0

は既に動作していないようですが、結果は文字列とみなされ、intが必要です。解決策をまだ見つけようとしています:) – claf

7

はEXEC_PROGRAMコマンドを使用して、GTK_PKG_FLAGSのような出力を変数に保存するにはSET コマンドのCACHEオプションを使用します。次に、 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}") 

リンク:これでhttp://www.cmake.org/pipermail/cmake/2005-January/006051.html

関連する問題