以下を使用してファイルのリストを作成しました。
file(GLOB_RECURSE DEPLOY_FILES "${PROJECT_SOURCE_DIR}/install/*")
これらのファイルをすべてにインストールしたいのですが/usr/myproject/
、インストールしたフォルダーにファイルツリーを保持したいと思います。
install/junk
install/other/junk2
install/other/junk3
私が使用する場合:
install(FILES ${DEPLOY_FILES} DESTINATION "usr/myproject")
すべてのファイルは、最終的に/ usr/myprojectに次のように配置されます。
/usr/myproject/junk
/usr/myproject/junk2
/usr/myproject/junk3
installコマンドで相対パスを追跡するにはどうすればよいですか?
私はfor
ループで手動でそれを行うことによって問題を回避しました:
set(BASE "${PROJECT_SOURCE_DIR}/install")
foreach(ITEM ${DEPLOY_FILES})
get_filename_component(ITEM_PATH ${ITEM} PATH)
string(REPLACE ${BASE} "" ITEM_PATH ${ITEM_PATH})
install(FILES ${ITEM} DESTINATION "usr/myproject${ITEM_PATH}")
endforeach()
...しかし、これは面倒です。確かにもっと簡単な方法はありますか?
(ただし、インストールドキュメントには何も表示されません...)