在我的根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 。
对我来说,困难是我必须混合使用外部项目和子目录,但找不到任何答案或无法适应它们。
答案 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)