Estoy buscando comenzar un nuevo proyecto en C ++, solo en mi propio tiempo inicialmente, y estoy investigando los sistemas de compilación que están disponibles. Parece que la respuesta es "Muchos, y todos son horribles".
Las características que necesito específicamente para esto son:
- Soporte de C ++ 11
- Multiplataforma (Linux como objetivo principal, pero capaz de construir al menos también en Windows)
- Soporte de prueba de unidad decente
- Soporte para múltiples módulos para separar código
- Soporte para la generación de código (Uso de asn1c o protobuf, aún no es 100% seguro)
- Facil de mantener
Ahora, sé que puedo hacer 1-4 de los que usan CMake y Autotools con bastante facilidad. Probablemente también con SCons y Waf y los otros dos también. El problema es que nunca he resuelto cómo generar correctamente el código utilizándolos, es decir, los archivos fuente que no existen hasta que se ejecuta el proceso de compilación por primera vez, por lo que los archivos fuente que el sistema de compilación debe poder convertir en código ejecutable pero en realidad no lo sabe hasta que comienza la compilación ... (ASN1C en particular genera docenas de archivos de encabezado y fuente que deben poder trabajar juntos, y el conjunto real de archivos genera depende del contenido de su archivo asn) Hay También el hecho de que ninguno de estos es especialmente fácil de mantener: CMake y Autotools tienen su propio gran conjunto de scripts que debe administrar para que funcionen,
Entonces, ¿qué sistemas de compilación se recomiendan para algo como esto? ¿O estaré atrapado con los archivos de creación y los scripts de shell por ahora?