一部のリソースを宛先フォルダーにコピーする必要があるCMakeでビルドされたプロジェクトがあります。現在、私はこのコードを使用しています:
file(GLOB files "path/to/files/*")
foreach(file ${files})
ADD_CUSTOM_COMMAND(
TARGET MyProject
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${file}" "${CMAKE_BINARY_DIR}/Debug"
)
endforeach()
次に、別のフォルダからさらにファイルをコピーします。したがって、両方からファイルをコピーしたいとしますpath/to/files
およびpath/to/files2
をバイナリフォルダの同じ場所に配置します。 1つの方法は上記のコードを複製することですが、長いカスタムコマンドを複製する必要はないようです。
file
(およびlist
コマンドも)を使用して2つのGLOB
リストを連結する簡単な方法はありますか?
file(GLOB ...)
コマンドを使用すると、複数のグロビング式を指定できます。
file (GLOB files "path/to/files/*" "path/to/files2*")
または、 list APPEND サブコマンドを使用してリストをマージします。例:
file (GLOB files "path/to/files/*")
file (GLOB files2 "path/to/files2*")
list (APPEND files ${files2})
各パターンのリストを作成し、リストを連結します。
file(GLOB files1 "path/to/files1/*")
file(GLOB files2 "path/to/files2/*")
set(files ${files1} ${files2})