首页 > 解决方案 > CMake:对不同目标的循环依赖

问题描述

我的项目在 libs/ 目录中有一个 CMakeLists,如下所示:

add_subdirectory(foo)
add_subdirectory(bar)

使用 bar 取决于 foo。我最近为 foo 添加了新功能,并进行了适当的测试。然而,这些测试需要来自 bar 的功能。这意味着我目前需要运行 CMake 两次才能进行编译。有没有办法解决这个问题,或者我是否坚持多次重新运行 cmake?

有没有办法以特定的方式声明我的依赖关系?即现在我这样做:

add_library(${BAR} ${SRC_FILES} ${PUBLIC_HEADERS} ${PRIVATE_HEADERS})

这意味着${BAR}在测试中链接(位于 foo 模块中)会将变量扩展为空字符串。我可以告诉 CMake 这应该是一个目标,而不仅仅是一个目标名称吗?

标签: cmake

解决方案


推荐阅读