Встраивание одного проекта cmake в другой?

У меня есть два проекта, оба из которых используют CMake. Теперь я хочу включить один из проектов в виде библиотеки внутри другого, сохраняя при этом возможность компилировать их как отдельные проекты.

Пока что я сделал следующее: Используйте систему контроля версий, чтобы клонировать копию дочернего проекта в подкаталоге родительского проекта. Я использовал add_subdirectory, чтобы включить CMakeLists.txt дочернего проекта в родительский проект. И я исправил конфликт имен между целями, переименовав некоторые цели в дочернем проекте.

Однако проблема, с которой я сталкиваюсь, заключается в том, что различные тесты конфигурации в дочернем проекте, похоже, не выполняются. Например, дочерний проект использует модуль FindThreads, чтобы определить, какие примитивы синхронизации доступны. Родительский проект не знает о проблемах с многопоточностью и поэтому не имеет тестов, связанных с этим. Аналогично, дочерний проект имеет различные тесты для заголовков и такие, которые не нужны родительскому проекту. Похоже, что ни один из этих тестов не выполняется, а символы, определенные в этих тестах, не добавляются в файл CMakeCache.txt.

Я действительно не хочу вставлять все тесты дочернего проекта (которые в основном касаются специфичных для платформы проблем, не относящихся к родителю) в CMakeLists.txt родительского проекта.

Ответы на вопрос(1)

Ваш ответ на вопрос