【问题标题】:SET(CPACK_COMPONENTS_ALL ...) with ExternalProject Installing Additional ComponentsSET(CPACK_COMPONENTS_ALL ...) 与 ExternalProject 安装附加组件
【发布时间】:2019-04-23 15:05:16
【问题描述】:

我使用ExtrenalProject cmake 模块将第 3 方或内部依赖项添加到我的构建中。然后我将CPack 模块与组件一起使用,以通过以下方式仅安装当前代码库中的组件。

set(CPACK_COMPONENTS_ALL
  common-lib
  common-include
  common-depends
)

在 CMake 中声明的这些组件之一的示例是:

install(TARGETS common
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib
  COMPONENT common-lib
)

但是,使用add_subdirectory 添加的其他项目(例如 google test 或其他内部库)也会声明安装目标。当我跑步时

make package

然后列出生成的.deb.tar的内容,我看到CPACK_COMPONENTS_ALL变量中没有设置的其他组件的内容。

让 CMake 和 CPack 只安装请求的组件的正确方法是什么?

【问题讨论】:

    标签: cmake cpack


    【解决方案1】:

    您只需将参数 EXCLUDE_FROM_ALL 添加到 add_subdirectory() 调用的末尾即可。这实际上将禁用在添加的子目录中进行的所有include() 调用。

    【讨论】:

      猜你喜欢
      • 2017-07-24
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多