CMake + CPack:安装整个目录(包括子文件夹)
Posted
技术标签:
【中文标题】CMake + CPack:安装整个目录(包括子文件夹)【英文标题】:CMake + CPack: Install entire directory (including subfolders) 【发布时间】:2016-09-28 18:14:31 【问题描述】:我正在尝试使用 CMake 和 CPack 创建安装包。一切正常,但我想通过一次调用而不是每个子文件夹一个调用完全复制我的资源文件夹来大幅减少代码量。
到目前为止,我通过以下方式进行组件安装:
set(RESOURCES_CALIBRATION_DIR resources/calibration)
file(GLOB RESOURCES_CALIBRATION "$CMAKE_SOURCE_DIR/$RESOURCES_CALIBRATION_DIR/*")
install(FILES $RESOURCES_CALIBRATION DESTINATION $RESOURCES_CALIBRATION_DIR COMPONENT ResourcesCalibration)
set(RESOURCES_CURSORS_DIR resources/cursors)
file(GLOB RESOURCES_CURSORS "$CMAKE_SOURCE_DIR/$RESOURCES_CURSORS_DIR/*")
install(FILES $RESOURCES_CURSORS DESTINATION $RESOURCES_CURSORS_DIR COMPONENT ResourcesCursors)
...
... (repeat for every folder of my resources folder)
set(CPACK_COMPONENTS_ALL applications ResourcesCalibration ResourcesCursors ...)
set(CPACK_COMPONENT_RESOURCESCALIBRATION_GROUP "resources")
set(CPACK_COMPONENT_RESOURCESCURSORS_GROUP "resources")
...
...
有没有一种干净的方法来复制/安装整个资源文件夹,包括所有子文件夹?
【问题讨论】:
【参考方案1】:命令流install(DIRECTORY)
专门用于安装目录及其子目录和文件。
install(DIRECTORY $CMAKE_SOURCE_DIR/resources/
DESTINATION resources
COMPONENT ResourcesCursors)
甚至
install(DIRECTORY $CMAKE_SOURCE_DIR/resources
DESTINATION .
COMPONENT ResourcesCursors)
将源代码树中的resource
目录复制到安装目录。请参阅documentation on install 了解更多信息。
【讨论】:
以上是关于CMake + CPack:安装整个目录(包括子文件夹)的主要内容,如果未能解决你的问题,请参考以下文章