特定のファイルが存在するかどうかを確認する必要があるカスタム ビルド コマンドがあります。使ってみた
IF(EXISTS "/the/file")
...
ELSE()
...
ENDIF()
しかし、そのテストは 1 つしか評価されません。cmake を最初に実行したとき。メイクが完了するたびにテストを実行する必要があります。メイク時の確認方法は?ありがとう。
コマンド ライン オプション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()