6

特定のファイルが存在するかどうかを確認する必要があるカスタム ビルド コマンドがあります。使ってみた

IF(EXISTS "/the/file")
...
ELSE()
...
ENDIF()

しかし、そのテストは 1 つしか評価されません。cmake を最初に実行したとき。メイクが完了するたびにテストを実行する必要があります。メイク時の確認方法は?ありがとう。

4

3 に答える 3

18

コマンド ライン オプションadd_custom_commandを使用して、CMake 自体をスクリプト モードで呼び出すことができます。-P

したがって、コマンドは次のようになります。

set(FileToCheck "/the/file")
add_custom_command(TARGET MyExe
                   POST_BUILD
                   COMMAND ${CMAKE_COMMAND}
                       -DFileToCheck=${FileToCheck}
                       -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
                   COMMENT "Checking if ${FileToCheck} exists...")

スクリプトファイル「check.cmake」は次のようになります。

if(EXISTS ${FileToCheck})
  message("${FileToCheck} exists.")
else()
  message("${FileToCheck} doesn't exist.")
endif()
于 2013-09-14T10:20:36.250 に答える