91

CMakeスクリプトの変数をシェルコマンドの出力に設定する方法はありますか?何かSET(FOO COMMAND "echo bar")が頭に浮かぶだろう

4

1 に答える 1

96

execute_processコマンドが必要です。

あなたの場合、Windowsでは:

execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO)

または Linux では、単純に次のようにします。

execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO)


この特定のケースでは、CMake はクロスプラットフォーム ソリューションを提供します。CMake 自体を使用して、すべてのシステムで使用できるコマンドを実行できます。そのうちの 1 つがecho. これを行うには、CMake にコマンド ライン arg を渡す必要があります-E。そのようなコマンドの完全なリストについては、次を実行してください。cmake -E help

CMake スクリプト内では、CMake 実行可能ファイルは によって参照される${CMAKE_COMMAND}ため、スクリプトは次のことを行う必要があります。

execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)
于 2012-10-23T19:26:08.950 に答える