2009-12-03 11 views
13

¿Alguien ha logrado compilar allí Delphi 6 & 7 (NO ningún Delphi> 7) proyecto usando la línea de comando?¿Cómo compilo mi proyecto delphi en la línea de comando?

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

Estoy buscando instrucciones paso a paso.

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

Los enlaces también son muy apreciados.

Gat

Respuesta

4

FinalBuilder hace que sea muy fácil. Darle una oportunidad.

14

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, navego 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. Al ejecutar dcc32.exe sin parámetros se 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 de proyecto cfg como el dcc32.cfg común en el directorio Delphi contienen configuraciones importantes. Para obtener información acerca de cómo afectan a la construcción, ver, por ejemplo, this link on Delphi Wikia.

+3

Hablando la wiki de Delphi: también hay una página sobre exactamente este tema: http://delphi.wikia.com/wiki/Compile_from_Commandline que acabo de extender. – dummzeuch

7

Para automatización de compilación, uso Apache Ant, que es a software tool for automating software build processes. 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 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) la secuencia de comandos:

<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> 

gratuito de código abierto IC (Continua Integración) servidores como Hudson/Jenkins apoyan Apache Ant scripts de creación listo 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.

+1

se ve bien ... por favor brinde más explicación – gath

+0

Mi respuesta incluye dos enlaces a la página principal del proyecto y el artículo de Wikipedia. ¿Tienes una pregunta específica? – mjn

+1

Sí, este es un buen camino a seguir. He hecho algo similar con NAnt, que es un puerto .NET de Ant. –

1

Sugeriría la combinación de NAnt y dcc32, pero también está Juancolo Añez "WAnt - A Pascal-Friendly Build Tool". 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.

+0

Estoy usando CruiseControl.NET con NAnt. ¿Cuál es el problema con NAnt por lo que usaría WAnt en su lugar? – mghie

+0

Cuando comencé a usar WAnt, el soporte original para construir el proyecto Delphi y ejecutar la prueba DUnit me pareció más atractivo. Como dije, probaría NAnt si comenzara de cero. –

+0

Espero que todavía nos apeguemos a Delphi 6 y 7 ... – gath

3

Usted puede construir todo utilizando esta línea de comandos:

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

Deja esta línea en un archivo .bat por lo que no tiene que escribir siempre.Echar un vistazo a las opciones de línea de comandos que se ejecutan esto:

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

Por cierto: -Q es de compilación tranquilo 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 dof2cfg executable 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: Delphi 7 compilador de línea de comandos tiene un error muy extraño. Si su camino es muy largo, fallará con un error inescrutable: una violación de acceso sin información significativa. Si falla sin ningún motivo razonable, intente reducir la ruta completa y el tamaño del nombre de archivo.

+1

Acabo de escribir y subir bdsproj2cfg a CodeCentral, que hace lo mismo con los archivos .bdsproj utilizados por Delphi 2005 y 2006. En caso de que alguien lo necesite ... – dummzeuch

0

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

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

Cuestiones relacionadas