Tengo un proyecto de C++ en el que he usado directorios como un elemento más de la organización, la forma en que uno podría usar paquetes en Java o directorios en PHP. Los directorios no pretenden ser elementos autosuficientes, sino simplemente una forma de organizar todo el proyecto y evitar que las fuentes lo abrumen. ¿Cómo puedo construir mis archivos CMakeLists.txt para manejar esto? Hacer las bibliotecas de directorios no parece encajar aquí, ya que todas son interdependientes y no están destinadas a ser utilizadas de esa manera.¿Cómo puedo crear un proyecto en C++ con múltiples subdirectorios interdependientes?
Como un problema relacionado, la mayoría de los ejemplos que he visto de múltiples subdirectorios en CMake (y no son muchos) han ignorado o pasado por alto el problema de configuración include_directories
, que es algo que he estado teniendo problemas con. Sin peinar mis archivos de origen para determinar qué archivo depende de qué directorio y en qué directorio, de todos modos hay que configurar todos los directorios bajo /src/
como posibles directorios de inclusión y dejar que CMake determine cuáles son realmente dependientes.
He aquí un ejemplo de estructura:
--src
--top1
--mid1
--bot1
--src1.cpp
--hdr1.h
--bot2
--src2.cpp
--hdr2.h
--mid2
--bot3
--src3.cpp
--src4.cpp
--hdr3.h
--top2
--mid3
--src5.cpp
--hdr4.h
así sucesivamente y así sucesivamente. ¿Cómo puedo estructurar mis archivos CMakeLists.txt
para manejar este tipo de estructura?
¿Es absolutamente necesario utilizar CMake? –
1.) ¿Está trabajando con un Generador preferido? 2.) ¿De verdad crees que CMake debería descubrir qué depende de qué? Creo que debería ser posible definir módulos (por ejemplo, mid1, mid2, top2) que deberían ser independientes entre sí. 3.) ¿Incluyes #include "hdr2.h" o algo así como? –
Philipp
@benoit Supongo que no, pero eso es lo que estoy usando actualmente. Prefiero no usar Automake, me parece un gran esfuerzo incorporar el aprendizaje de un sistema de compilación cuando mis compilaciones no son tan complejas. –