delphi command-line compilation

¿Cómo compilo mi proyecto delphi en la línea de comando?



command-line compilation (6)

Para versiones posteriores de Delphi, esto se debe cambiar a:

"C: / Archivos de programa (x86) / Embarcadero / RAD Studio / 8.0 / bin / DCC32.exe" -h

¿Alguien ha logrado alguna vez compilar allí el proyecto Delphi 6 & 7 (NO ningún Delphi> 7) usando la línea de comando?

¡Todas las instrucciones que veo no son muy claras sobre qué es exactamente lo que hay que ir a dónde!

Estoy buscando instrucciones paso a paso.

Las respuestas deben estar limitadas a Delphi 6 y 7, entiendo que Delphi2006 y> usan MSBuild, lo cual es mucho más fácil.

Los enlaces también son muy apreciados.

Gath


Sugeriría la combinación de NAnt y dcc32, pero también está la "herramienta de compilación amigable con pasatiempo WAnt - Juancarlo Añez " . He estado usando una versión modificada del 1.x en lugar del 2.x alpha. Dado que es de código abierto, podría extender el código al registro de salida en XML con el mismo formato que NAnt, por lo que puedo integrarlo con CruiseControl.NET.



Esto no es difícil de hacer Tengo una instalación estándar de Delphi 5 en mi máquina aquí, y cuando abro un símbolo del sistema, dcc32.exe thrddemo.dpr al directorio $(DELPHI)/Demos/Threads e ingreso dcc32.exe thrddemo.dpr la aplicación se basa en la línea de comando.

Para su propio proyecto, puede que necesite agregar algunos modificadores para incluir directorios de archivos, directorios de salida, definiciones o cosas similares. La ejecución de dcc32.exe sin parámetros proporciona una lista de conmutadores y parámetros. Todo está descrito en la documentación, también.

Para la repetibilidad, debe crear un archivo por lotes o un Makefile normal.

Tenga en cuenta que tanto el archivo cfg del proyecto como el dcc32.cfg común en el directorio Delphi contienen ajustes importantes. Para obtener información acerca de cómo afectan a la construcción, consulte, por ejemplo, este enlace en Delphi Wikia .


Puedes construir todo usando esta línea de comando:

"C:/Program Files/Borland/Delphi7/Bin/DCC32.exe" -Q -B your-project.dpr

Coloque esta línea en un archivo .bat para que no tenga que escribirla siempre. Echa un vistazo a las opciones de línea de comandos que ejecutan esto:

"C:/Program Files/Borland/Delphi7/Bin/DCC32.exe" -h

Por cierto: -Q es compilación silenciosa y -B reconstruirá todo. Si quieres una compilación más rápida, no uses -B.

Utilizará todas las opciones en su archivo-project.cfg. Encontré este ejecutable dof2cfg muy útil. Con él puedo editar el archivo de texto .dof y propagar el cambio a la línea de comando e IDE. No es necesario abrir el para cada proyecto.

Advertencia importante: el compilador de línea de comandos Delphi 7 tiene un error muy extraño. Si su camino es muy largo, fallará con un error inescrutable: una violación de acceso sin ninguna información significativa. Si falla sin ningún motivo razonable, intente reducir la ruta completa y el tamaño del nombre de archivo.


Para la automatización de compilación, utilizo Apache Ant , que es una herramienta de software para automatizar los procesos de compilación de software . Lo uso para todos mis proyectos, desde Delphi 6 hasta Delphi 2009, y Free Pascal.

Las cosas que puede hacer "fuera de la caja" incluyen generación de suma de comprobación MD5, creación de archivo ZIP, búsqueda / reemplazo de texto (útil para la generación de encabezado de derechos de autor), ejecución de sentencias SQL, procesamiento XSLT.

Por ejemplo, para compilar todos los proyectos con Delphi 6, esto es (una parte de) el script:

<target name="compile_d6"> <!-- Compile with Delphi 6 --> <apply executable="${d6}/Bin/dcc32" failonerror="true" output="build-d6.log" > <!-- rebuild quiet --> <arg value="-B"/> <arg value="-Q"/> <!-- file paths --> <arg value="-I${source};${indy10}/Lib/System"/> <arg value="-O${source};${indy10}/D6;${jcl}/d6"/> <arg value="-U${source};${indy10}/D6;${jcl}/d6"/> <!-- all *.dpr files in current directory --> <fileset dir="."> <patternset><include name="*.dpr"/></patternset> </fileset> </apply> </target>

Los servidores gratuitos de código abierto CI (Continuous Integration) como Hudson / Jenkins son compatibles con los scripts de compilación de Apache Ant listos para usar, lo que significa que puede hacer que construyan el proyecto automáticamente cada vez que verifique un cambio en el repositorio de origen.