У меня есть проект 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)
Проблема в том, что включаемый файл еще не существует при запуске CMakeLists из проекта B.
Есть ли способ сделать включение зависимым от внешнего проекта, который создается?
Обновление: Я написал краткое руководство по CMake by Example, основанное на этой и других распространенных проблемах, с которыми я столкнулся.