CLionで簡単なプロジェクトを作成しようとしています。CMake(ここでは新しい)を使用して、プロジェクト(またはなんらかの種類)をビルドするためのMakefileを生成します。
コードを実行するたびに、非プロジェクトファイル(ある種のリソースファイル)をバイナリディレクトリに転送するだけです。
そのファイルにはテストデータが含まれており、アプリケーションはそれを開いて読み取ります。私はそうするためにいくつかの方法を試しました:
経由
file(COPY ...
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/input.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/input.txt
見栄えは良いですが、それは一度だけ動作し、次の実行後にファイルを再コピーしません。
経由
add_custom_command
OUTPUT
バージョンadd_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/input.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/input.txt ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
TARGET
バージョンadd_custom_target(foo) add_custom_command( TARGET foo COMMAND ${CMAKE_COMMAND} copy ${CMAKE_CURRENT_BINARY_DIR}/test/input.txt ${CMAKE_SOURCE_DIR})
しかし、どれも機能しません。
何が悪いのですか?
configure_file
GLOBを使用してファイルのリストを作成する場合でも、サブディレクトリでは機能しないことに注意してください。