2010-01-29 9 views
5

No soy un gran admirador de herramientas como Ant, pero son ciertamente útiles. En un proyecto actual de C++, no tengo ningún proceso de compilación automatizado. Simplemente construyo mi directorio de trabajo usando Visual Studio, abro la carpeta/bin y la envío para su instalación. El proyecto es lo suficientemente pequeño, pero funciona bien, pero depende totalmente de que conozca el proyecto al revés.Automatización de proceso de compilación simple en Windows

Me gustaría un sistema que puede hacer pasos como:

  • actualización de múltiples directorios de trabajo a una versión SVN (o por defecto a la cabeza)
  • doxygen plazo (o herramienta similar) para obtener API docs hasta la fecha
  • cometen los documentos de la API a algún repositorio SVN
  • construcción de varios proyectos en el orden correcto
  • copia algunas cosas acerca, eliminar archivos no deseados
  • archivos de paquetes/carpetas en un zip/carpeta con el nombre basado en una versión especificada por el usuario, o que se encuentran desde un archivo/SVN

libre es importante. Fácil de usar es otro. Windows es esencial, y eso no incluye las opciones de cygwin.

Se me pasó por la mente que probablemente podría hacer esto usando un archivo .bat, ¿es eso una opción viable en lo que todavía es un proyecto bastante pequeño (1-4 desarrolladores)?

+0

Nada específico de C++ aquí - etiqueta eliminada y título cambiado. –

+0

Hmm, supongo. Me puse a pensar, ¿es independiente el idioma objetivo de Ant? –

+0

Lo es. Incluso tiene una especie de extensión para construir proyectos C++. –

Respuesta

3

cmake es la herramienta de elección para cualquier sistema operativo en estos días. Nada más se acerca. Debe escribir una descripción de alto nivel de su código y cmake generará la solución/proyectos VS y makefiles para todos los equipos o cygwin.

NSIS: toneladas de código abierto/cerrado proyectos de código utilizan NSIS para crear instaladores para Windows - no está mal, y el constructor se pueden ejecutar fácilmente desde la línea de comandos - para que pueda integrarlo con cmake.

+0

Ya tengo una solución/proyectos VS, cuidadosamente configurados. ¿Jugará bien con eso? –

+0

Bueno, cmake querría generar su propia solución y proyectos: puede sintonizar muchas cosas a nivel abstracto. Probablemente tendrá que portar la configuración a cmake. –

+0

Oh. Eso suena un poco molesto. Me gustaría una herramienta que funcione con mis proyectos existentes, no uno que me obligue a comenzar de nuevo. Aún así, vale la pena echarle un vistazo. –

2

Si utiliza Visual Studio (solo) de todos modos, podría usar su proceso de compilación incorporado en modo de proceso por lotes (escriba devenv /? en su cmd). Eso sería suficiente para construir su proyecto C++ y resolverá todas las dependencias C++, que son la parte más difícil.

Otras cosas que podría realizar fácilmente desde el script por lotes.

También lea este 2 artículos:

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2

+0

Interesado en los pensamientos de otras personas sobre este tipo de solución ... es una opción que tenía en mente después de ver que algunas aplicaciones comerciales grandes y estables basan su compilación/implementación en archivos .BAT simples. –

+0

Yo diría que esta solución no escala muy bien. Pero para casos de uso * realmente simples, debería ser suficiente. –

+0

Diría que se escala bastante bien si tiene todo en proyectos de VS.Net.Lo usamos para un proyecto ~ 1MLOC. Si estaba tratando con proyectos aún más grandes, también hay opciones adicionales, como Incredibuild para construcciones distribuidas. –

1

Si usted tiene una caja de repuesto de sobra me gustaría sugerir Nant y [CruiseControl.net]. No es necesario que lo use necesariamente para una integración continua. Puede configurar sus compilaciones para que se ejecuten [solo cuando se fuercen]. Ambos son de código abierto, tienen soporte nativo para SVN y son bastante fáciles de usar. He usado Nant & CruiseControl.Net para cada cosa que ha enumerado excepto la tarea doxygen. Incluso sin la caja de repuesto, sugeriría usar Nant para automatizar su salida de lo que parece ser una larga serie de tareas manuales.

1

Visual Studio todavía se envía con una copia de Nmake, que es una herramienta clásica de compilación por reglas de dependencia. Puedo construir tus proyectos de Visual Studio usando devenv, y también puedo hacer muchas otras cosas. Cualquier cosa que pueda hacer con una línea de comando, puede hacerlo con nmake. Y tiene un lenguaje macro bastante bueno.

4

Hudson es muy fácil de instalar, instalar y ejecutar, y no tiene problemas para ejecutarse en un entorno de Windows. No tiene que usarlo para una integración continua, hará compilaciones solo cuando se lo indique.

Hudson tiene soporte nativo para ejecutar scripts de lotes de Windows y funcionará felizmente con NANT o cmake a través de complementos. Si aún no hay un complemento para algo que desea hacer, puede hacerlo fácilmente, si normalmente se puede hacer desde la línea de comandos.

Tenga en cuenta: el proyecto Hudson ha sido renombrada Jenkins

+0

+1 para Hudson. Dado que tiene archivos de proyecto VS.Net, puede compilarlos desde la línea de comando con 'devenv' o' msbuild', por lo que será muy rápido configurar un sistema de compilación automático llamando a un script por lotes con Hudson. –

Cuestiones relacionadas