比較的簡単な回避策は${CMAKE_COMMAND} -E tar
、ソースをバンドルし、tarballを移動して、宛先ディレクトリに抽出するために使用することです。
抽出すると元のディレクトリ構造が保持されるため(を使用する場合とは異なり)、ソースが多くの異なるディレクトリに分散している場合、これは価値があるよりも問題になる可能性がありますcp
。ただし、すべてのファイルが1つのディレクトリにある場合は、2回の呼び出しでコピーを実行できadd_custom_command
ます。
移動するソースがすべてに${CMAKE_SOURCE_DIR}/source_dir
あり、宛先が${CMAKE_SOURCE_DIR}/destination_dir
にあり、ファイル名のリスト(フルパスではない)がにあるとし${FileList}
ます。あなたができること:
add_custom_command(
TARGET MyExe POST_BUILD
COMMAND ${CMAKE_COMMAND} -E tar cfj ${CMAKE_BINARY_DIR}/temp.tar ${FileList}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/source_dir)
add_custom_command(
TARGET MyExe POST_BUILD
COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_BINARY_DIR}/temp.tar temp.tar
COMMAND ${CMAKE_COMMAND} -E tar xfj temp.tar ${FileList}
COMMAND ${CMAKE_COMMAND} -E remove temp.tar
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/destination_dir)