Estou pensando em iniciar um novo projeto em C ++ - apenas no meu tempo inicial - e estou investigando os sistemas de compilação disponíveis. Parece que a resposta é "Muitos, e todos são horríveis".
Os recursos que eu especificamente preciso para isso são:
- Suporte para C ++ 11
- Plataforma cruzada (Linux como destino principal, mas capaz de desenvolver pelo menos também o Windows)
- Suporte de teste de unidade decente
- Suporte para vários módulos para separar o código
- Suporte para geração de código (usando asn1c ou protobuf - ainda não 100% seguro)
- De fácil manutenção
Agora, eu sei que posso fazer de 1 a 4 das pessoas usando o CMake e o Autotools com bastante facilidade. Provavelmente também com SCons e Waf e os outros dois também. O problema é que nunca descobri como fazer a geração de código corretamente usando-os - ou seja, arquivos de origem que não existem até o primeiro processo de compilação ser executado, portanto, os arquivos de origem que o sistema de compilação deve poder converter em código executável mas na verdade não sabe até que a compilação seja iniciada ... (o ASN1C em particular gera dezenas de arquivos de cabeçalho e de origem que devem poder trabalhar juntos, e o conjunto real de arquivos gerado depende do conteúdo do seu arquivo asn) também o fato de que nada disso é especialmente fácil de manter - o CMake e o Autotools têm seu próprio conjunto enorme de scripts que você precisa gerenciar para que eles funcionem,
Então - quais sistemas de compilação são recomendados para algo assim? Ou ficarei preso com make files e shell scripts por enquanto?