静的ライブラリをターゲットとしてエクスポートするプロジェクト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のCMakeListsを実行したときに、インクルードファイルがまだ存在しないことです。
インクルードを構築中の外部プロジェクトに依存させる方法はありますか?
更新:これと私が遭遇した他の一般的な問題に基づいて、短いCMakebyExampleチュートリアルを作成しました。