【发布时间】: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 只安装请求的组件的正确方法是什么?
【问题讨论】: