CMake中两个子目录之间的依赖关系

时间:2019-04-04 12:03:59

标签: cmake

在我的根CMakeLists.txt中,我有:

add_subdirectory(libs)
add_subdirectory(main)

libs 中,我有自己的 CMakeLists.txt 来构建外部项目。 在 main 中,有另一个我不控制的存储库中的 CMakeLists.txt

要构建 main ,需要构建 libs 。我不知道如何指定 main libs 之间的依赖性。

libs 中,在我的外部项目 lib1 lib2 中,我使用了add_dependencies(lib1 lib2),并且我有 lib2 < / em>在 lib1 之前构建。我没有找到如何做到这一点 main libs

对我来说,困难是我必须混合使用外部项目和子目录,但找不到任何答案或无法适应它们。

1 个答案:

答案 0 :(得分:0)

我将add_subdirectory(main)转换为一个外部项目。由于不可能依赖于子目录,因此我直接使用内部目标。我得到的一切:

include(ExternalProject)

add_subdirectory(libs)

ExternalProject_Add(main
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/main
  ...
)
add_dependencies(main lib1 lib2)