CMake find_package dependency on subproject

У меня следующий макет каталога:

main_folder
 + static_lib1
 + executable
  • Оба 'static_lib1' и 'executable' имеют полные списки CMakeLists, так что они могут быть собирать независимо.
  • Исполняемый файл зависит от 'static_lib1'. Он использует find_package() для поиска 'static_lib1'.
  • Главная_папка содержит CMakeLists, который включает и 'static_lib1' и 'executable' через add_subdirectory для удобной сборки всего проекта за один раз.

Все работает нормально, если я вручную собираю 'static_lib1', а затем 'executable'. Но при запуске CMakeLists из основной папки я получаю ошибку, потому что find_package не может найти библиотечные файлы из 'static_lib1', которые еще не были собраны.

Как я могу решить эту проблему, сохраняя файлы CMakeLists раздельными (т.е. не включая CMakeLists static_lib в CMakeLists исполняемого файла)?

5
задан ComicSansMS 24 November 2011 в 17:03
поделиться