我有一个项目 A,它将静态库作为目标导出:
install(TARGETS alib DESTINATION lib EXPORT project_a-targets)
install(EXPORT project_a-targets DESTINATION lib/alib)
现在我想使用项目 A 作为项目 B 的一个外部项目,并包括它的构建目标:
ExternalProject_Add(project_a
URL ...project_a.tar.gz
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/project_a
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
)
include(${CMAKE_CURRENT_BINARY_DIR}/lib/project_a/project_a-targets.cmake)
问题是,在运行项目 B 的 CMakeList 时,包含文件还不存在。
是否有方法使包含依赖于正在构建的外部项目?
更新 : 我写了一个简短的 示例制作教程基于这个和其他我遇到的常见问题。