En Visual Studio 2010, Microsoft finalmente actualizó el formato de los archivos de proyecto de Visual C++ (.vcproj) a su formato de clonación NAnt basado en XML MSBuild, ahora denominado .vcxproj. Esto significa que los proyectos C++ se compilarán sin mucho esfuerzo utilizando la tarea.
Si puede prever que solo va a tener un equipo pequeño y un número limitado de compilaciones, recomendaría TeamCity (http://www.jetbrains.com/teamcity/) con NAnt. TeamCity es un servidor de CI basado en Java (más fácil de implementar en un servidor de compilación de Linux) que admite agentes de compilación separados (por lo que podría tener varias máquinas virtuales de Windows o un cuadro dedicado ejecutando sus compilaciones).
El soporte de TeamCity para compilaciones basadas en MSBuild, NAnt y Ant es excelente y tiene una GUI basada en AJAX muy agradable que es un placer usar y le permite configurar y configurar proyectos desde su navegador. Sin embargo, si cruzas el límite de 20 proyectos de la edición gratuita, se vuelve irrazonablemente costoso.
La otra opción que puedo recomendar sería Jenkins con NAnt, Ant, MSBuild o uno de los muchos sistemas de compilación que Jenkins puede admitir. Jenkins es de Código Abierto y manejará proyectos ilimitados, como TeamCity, puede ejecutarse en un servidor mientras envía compilaciones a agentes de compilación separados y tiene complementos para muchas herramientas de C++ (piense en análisis estático, pruebas de unidades y empaquetado).
La interfaz web de Jenkins no es tan conveniente y bonita como TeamCity, pero se usa ampliamente y tiene complementos para casi cualquier cosa.
Utilizamos NAnt con bastante éxito como herramienta de compilación, pero * no * como analizador de dependencias. Como usted dijo, NAnt no tiene un buen rendimiento en ese sentido. Simplemente lo usamos para llamar a msdev y bjam. – MattyT