0

完全なディレクトリ構造をターゲットディレクトリに再帰的にコピーし、後で実行するときにコピーされたディレクトリを削除するルールをCMakeで定義するにはどうすればよいmake cleanですか?

4

1 に答える 1

3

使用する

add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/target_dir
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/dir ${CMAKE_BINARY_DIR}/target_dir)
add_custom_target(copy_dir_target ALL
    DEPENDS ${CMAKE_BINARY_DIR}/target_dir)

CMake は、 の OUTPUT で生成されたファイル/ディレクトリを自動的に追加する必要がありますadd_custom_command()

それがうまくいかない場合は、 でコピーしたいファイルを収集してから、で単一のファイルのみをコピーしfile(GLOB ...)、最後にすべてを単一の呼び出しにラップすることができます。このようにして、ターゲットディレクトリ自体を除いて、すべてのファイルが消去されます。add_custom_command()foreach(FILE ${FILES})add_custom_command()

最後に、ADDITIONAL_MAKE_CLEAN_FILESソースディレクトリのプロパティを設定して遊ぶことができますが、ファイルをそれぞれのバイナリディレクトリにコピーしてください。

于 2012-10-15T13:56:36.470 に答える