У меня большой проект, состоящий из нескольких целей сборки с зависимостями между ними.Структура выглядит примерно так:
Application <-- Library I <--- Library II
<-- Library III <---|
<-- Library IV
Существует несколько таких приложений, которые используют общий код, распределенный по разным библиотекам.
В рамках проекта CMake используется для обеспечения правильного включения путей и связи между различными библиотеками.
Библиотеки настраиваются с использованием add_library («Библиотека II»), впоследствии другой проект получает зависимости с помощью target_link_libraries («Библиотека I» «Библиотека II»).
Это работает в большинствеслучаи.Однако иногда определенные зависимости не обнаруживаются.У меня есть подозрение, что в некоторых случаях «Библиотека I» не известна.Однако target_link_libraries () не выдает ошибку, если библиотека не известна.Ошибка будет появляться только при компиляции / компоновке.
Я хотел бы убедиться, что при запуске cmake уже найдены все библиотеки.Если на этом этапе sth неизвестно, я хотел бы выдать ошибку и сообщить об этом разработчику.
Я пытался использовать find_libraries (), но в моем понимании это ищет определенный файл.Однако в моем случае файл будет скомпилирован только на этапе компиляции, поэтому файл не существует при запуске cmake.