【问题标题】:CMake + CPack: Install entire directory (including subfolders)CMake + CPack:安装整个目录(包括子文件夹)
【发布时间】: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")
...
    ...

有没有一种干净的方法来复制/安装整个资源文件夹,包括所有子文件夹?

【问题讨论】:

    标签: cmake cpack


    【解决方案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 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多