Compilando um projeto Delphi pela linha de comando
Escrito por Carlos B. Feitoza Filho | |
Categoria: Artigos | |
Categoria Pai: Addicted 2 Delphi! | |
Acessos: 13826 |
Seja você um desenvolvedor de componentes ou um programador convencional lidando com gerenciamento de versões ou com a compilação de vários projetos pertencentes a um sistema maior, certamente você já deve ter pensado em automatizar a tarefa de construir (build) um projeto Delphi a partir da linha de comandos.
Se você nunca foi atrás de uma solução para isso, saiba que a Internet possui várias e várias fontes para o assunto e esta aqui é apenas mais uma delas. A diferença é que eu irei direto ao ponto, e isso pode ser tanto uma vantagem quanto uma desvantagem. Se você busca alguma explicação profunda sobre todos os parâmetros e opções que podem ser usados você está no lugar errado, pois o intuito aqui é fazer você compilar de forma simples e rápida seus projetos a partir da linha de comandos.
Antes de começar, quero explicar que existem duas formas de realizar a compilação de linha de comando, dependendo de qual versão de Delphi você estiver usando.
Delphi 1 até o Delphi 7
Nestas versões do Delphi cada projeto consiste de um arquivo .dpr que contém a lista de todas as units deste projeto, um arquivo .dof com opções de compilação e um arquivo .cfg que contém exatamente o mesmo conteúdo do arquivo .dof, mas em um formato diferente e utilizável pelo compilador de linha de comando (dcc32.exe). Se você está satisfeito com as configurações de compilação usadas pela IDE (normalmente você estará!) tudo que você precisa fazer para compilar seu projeto é executar a seguinte linha de comando:
dcc32 meuprojeto.dpr -B
Obviamente a pasta bin do Delphi precisa estar no path do sistema, caso contrário você precisará executar este comando diretamente da pasta bin e passar o caminho completo do arquivo .dpr na linha de comando. Eu prefiro colocar a pasta bin no path para simplificar os comandos e digitar menos.
O arquivo .cfg precisa estar na mesma pasta que o arquivo .dpr e precisa ter o mesmo nome dele. Por falar em arquivo .cfg, é bom que se saiba que o arquivo .cfg é criado pela IDE a partir do arquivo .dof e é atualizado toda vez que se executa uma compilação por meio da IDE. A IDE altera o arquivo .dof com as opções de compilação e antes de compilar um arquivo .cfg é modificado/criado a partir do arquivo .dof, por isso, pode ser que não exista o arquivo .cfg e se você não quiser abrir a IDE para compilar seu projeto a fim de criar um arquivo .cfg, você poderá usar uma ferramenta chamada dof2cfg para realizar esta tarefa.
Delphi 9 e Delphi 10
Também conhecidos pelos seus nomes comerciais Delphi 2005 e Delphi 2006 (ou Turbo Delphi), respectivamente, estas foram as primeiras versões a abolir o uso dos arquivos .dof, substituindo-os pelos arquivos .bdsproj, que são arquivos XML em um formato proprietário da Borland. Apesar desta mudança no formato do arquivo de configurações, estas versões do Delphi ainda geram um arquivo .cfg a partir do arquivo .bdsproj, da mesma forma que os Delphis anteriores faziam com o arquivo .dof, logo, a forma de compilar via linha de comando para estas versões de Delphi é exatamente a mesma forma utilizada com os Delphis anteriores.
Vale ressaltar que o Turbo Delphi Explorer (gratuito) não vem com o compilador de linha de comandos (dcc32.exe), portanto não é possível compilar via linha de comandos se você tem esta versão do Delphi. Já quem tem uma licença do Turbo Delphi Professional pode baixar o compilador de linha de comando e usá-lo normalmente.
Tal como a ferramenta dof2cfg usada em versões anteriores do Delphi, existe a ferramenta bdsproj2cfg que é capaz de gerar um arquivo .cfg a partir de um arquivo .bdsproj.
Delphi 11 e posteriores
A partir do Delphi 11 (Delphi 2007) a Codegear mudou o formato do arquivo de configurações novamente e alterou sua extensão de .bdsproj para .dproj. Isso foi necessário para compatibilizá-lo com o Microsoft Build (msbuild.exe). O arquivo .dproj também é um arquivo XML, mas em formato diferente de seu antecessor. Ele agora é um "make file" compatível com o MSBuild, mesmo assim, são necessárias algumas configurações adicionais para que o MSBuild consiga lidar com os fontes do Delphi e felizmente desde essa versão existe um arquivo de lote chamado rsvars.bat na pasta bin do Delphi. Basta executá-lo antes de executar o MSBuild, assim:
call rsvars.bat
msbuild meuprojeto.dproj
Conclusão
Como eu havia dito no início, este artigo não tem pretensão de explicar opções de linha de comando, seja do DCC32, seja do MSBuild. Ele é apenas um guia introdutório de referência direta. Se você quiser mais informações basta pesquisar a respeito das duas ferramentas.