Exemplo real de script de build para Delphi

June 6, 2010

No último post da série sobre integração contínua com Hudson e Delphi, mostrei como criar um script para automatizar o build de projetos Delphi. Aqui vou mostrar um exemplo real, que utilizo para compilar meus componentes.

@echo off
call "%D2010_ROOT%\bin\rsvars.bat"

echo ******************************
echo *** Compilando componentes ***
echo ******************************
msbuild Src\Componentes.dproj /p:config=Release
if %ERRORLEVEL% neq 0 Exit /b 1

echo ****************************************
echo *** Compilando pacote de design time ***
echo ****************************************
msbuild Src\ComponentesDsn.dproj /p:config=Release

Aqui não coloquei o caminho para o Delphi diretamente no script, ao invés disso eu faço referência através de uma variável de ambiente que eu criei, chamada D2010_ROOT. Na minha máquina, ela aponta para “C:\Arquivos de programas\Embarcadero\RAD Studio\7.0\”, sendo que eu posso rodar esse mesmo script em uma máquina com o Delphi instalado em outro caminho (Por exemplo, em um Windows em inglês, onde haverá “Program files” ao invés de “Arquivos de programas”), bastando ter a variável de ambiente declarada no Windows com o valor apropriado.

Isso abre espaço para uma recomendação: Nunca trabalhar com caminhos fixos nos projetos, pois isso pode eventualmente trazer problemas no projeto. Exemplo: Meus projetos Delphi estão todos localizados em “D:\Desenvolvimento\Delphi\Projetos\”, mas eu não posso ter esse caminho hard-coded dentro do meu projeto (mesmo que eu decida adotar o padrão de sempre trabalhar com essas pastas em qualquer máquina onde eu esteja) pois, por exemplo, isso me traria problemas com o Hudson (ele faz o check-out do projeto em uma pasta à escolha dele, ele não segue o seu padrão).

2 Responses to “Exemplo real de script de build para Delphi”

  1. Eu gostaria de saber como fazer com o Delphi 2006. Não tenho o rsvars.bat na minha máquina, como usar o MSBUILD integrado com o HUDSON e o Delphi 2006??

  2. Raphaela,
    A integração do Delphi com o msbuild começou no Delphi 2007. No seu caso, você terá que executar diretamente o compilador de linha de comando do Delphi (dcc32).

    Para maiores detalhes, veja a minha resposta ao comentario da Gisela em http://blog.magnomachado.com.br/?p=25, pois se trata do mesmo problema.

Leave a Reply

Spam protection by WP Captcha-Free