¿Incrustar un proyecto cmake dentro de otro?

Tengo dos proyectos, los cuales utilizan CMake. Ahora quiero incluir uno de los proyectos como una biblioteca dentro del otro, mientras mantengo la capacidad de compilarlos como proyectos independientes.

Lo que he hecho hasta ahora es: Usar el sistema de control de versiones para clonar una copia del proyecto secundario en un subdirectorio del proyecto principal. He usado "add_subdirectory" para incluir el CMakeLists.txt del proyecto hijo en el proyecto principal. Y he corregido las colisiones de nombres entre los objetivos al cambiar el nombre de algunos de los objetivos en el proyecto hijo.

Sin embargo, un problema que estoy encontrando es que las diversas pruebas de configuración en el proyecto secundario no parecen estar ejecutándose. Por ejemplo, el proyecto hijo utiliza el módulo FindThreads para determinar qué primitivas de sincronización están disponibles. El proyecto principal no tiene conocimiento de problemas de subprocesos y, por lo tanto, no tiene ninguna prueba relacionada con esto. De manera similar, el proyecto hijo tiene varias pruebas para los encabezados y otros que no son necesarios para el proyecto principal. Ninguna de estas pruebas parece estar ejecutándose, y los símbolos definidos por estas pruebas no se están agregando al archivo CMakeCache.txt.

Realmente no quiero tener que cargar todas las pruebas del proyecto secundario (que en su mayoría tratan problemas específicos de la plataforma que no son relevantes para el padre) en el CMakeLists.txt del proyecto principal.

Respuestas a la pregunta(1)

Su respuesta a la pregunta