【发布时间】:2021-08-27 23:16:03
【问题描述】:
我正在开发一个使用第三方源作为子模块的项目。在 CMakeLists.txt 的第三方源中,他们的 CMakeLists.txt 中有 include(CPack),这会导致问题,因为当我在项目的 CMakeLists.txt 中编写自己的 include(CPack) 时,我会收到 cmake config 警告,例如
CPack.cmake has already been included!!
而且我写的所有CPack变量都被第三方源覆盖,导致我运行make package时出错
我尝试了add_subdirectory(third-party-source EXCLUDE_FROM_ALL),它忽略了第三方源中的所有install 调用,但不幸的是它没有忽略CPack 调用。
有没有办法让我添加类似的东西
if(CPACK_ALREADY_INCLUDED)
include(CPack)
endif()
在第三方资源中解决这个问题?
【问题讨论】:
-
EXCLUDE_FROM_ALL仅适用于在该目录及以下目录中创建的目标,因此绝对没有理由忽略include()指令。