2012-07-18 7 views
5

Estoy experimentando con CMake un poco para un repositorio de C++, pero estoy teniendo algunos problemas al intentar facilitar la compilación de aplicaciones contra bibliotecas en el mismo árbol fuente sin mucho de código CMake adicional.incluye fácilmente los encabezados de la dependencia de la biblioteca en cmake

El diseño de la estructura de directorios es, básicamente, los siguientes:

ROOT 
    libs/ 
     lib1/ 
     lib2/ 
     lib3/ 
    apps/ 
     app1/ 
     app2/ 
     app3/ 

Las bibliotecas son independientes entre sí, y las aplicaciones pueden enlazar con una o más de las bibliotecas.

Actualmente tengo una raíz CMakeLists.txt que enumera cada aplicación y biblioteca como un subdirectorio de modo que si la biblioteca se cambia y la aplicación se reconstruye, también lo hace la biblioteca. Esto funciona bien y CMake lo vincula sin que tenga que especificar dónde vive la biblioteca, pero no veo una manera de hacer algo similar para incluir directorios.

¿Hay una forma común de manejar esto? Prefiero no tener CMakeLists.txt de cada aplicación para listar manualmente la ruta a las bibliotecas que necesita.

Respuesta

1

Si no tiene miedo de poner más encabezados disponibles de los que realmente necesita para cada aplicación, podría enumerar todos los directorios de lib en una declaración INCLUDE_DIRECTORIES, p. en el CMakeListst.txt agregando todas las sublistas de la aplicación. Pero no existe el concepto de administración de "pertenecer" que incluye carpetas por destino integrado.

Cuestiones relacionadas