Подтвердить что ты не робот

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

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

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

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

Мне действительно не нужно поднимать все тесты дочерних проектов (которые в основном касаются проблем, связанных с платформой, которые не имеют отношения к родительскому объекту) в родительский проект CMakeLists.txt.

4b9b3361

Ответ 1

В CMake 2.8 добавлен новый модуль