ファイルに依存するカスタムコマンドを使用できるはずです。次のようなものがあります:
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/output.file
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/input.file ${CMAKE_CURRENT_BINARY_DIR}/output.file
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/input.file)
私には分かりません。現在使用しているCMakeコードを提供するのに役立つかもしれません。
また、 "$ {CMAKE_COMMAND} -E copy_if_different"を試してみることもできます。コマンドの依存関係を考えれば、これが違うのかどうかはわかりませんが、確かに何かが欠落している可能性があります。あるいは、makeの出力を使用していないと違うかもしれません。
あなたが「発生時刻」(あなたはcmakeの実行)でコピーをやってみたい場合は、このコマンドを使用することができます(私は私の構文が正しいことだと思うが、私はそれをテストしていない):
file(COPY
${CMAKE_CURRENT_SOURCE_DIR}/input.file
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
COPYの代わりにINSTALLを使用すると、動作が少し異なります。
生成時に任意のプロセスを実行する必要がある場合は、execute_process
コマンドを試してください。
もちろん、詳細はthe CMake documentationを参照してください。
素晴らしい例!! – gone