terminal Programmazione

Compilare un progetto Delphi da riga di comando

calendar_today personTeam EGSOFT schedule5 min di lettura

Perché compilare fuori dall'IDE

Aprire l'IDE di Delphi per ogni build va benissimo durante lo sviluppo, ma diventa un limite quando serve automatizzare il rilascio: uno script di build eseguito da un server, una pipeline di integrazione continua, o semplicemente la comodità di lanciare una compilazione completa con un doppio clic su un file .bat, senza dover aprire manualmente il progetto.

Preparare l'ambiente con rsvars.bat

Prima di poter usare i compilatori da riga di comando, va impostato l'ambiente eseguendo lo script rsvars.bat, presente nella cartella bin dell'installazione di RAD Studio. Questo script imposta le variabili d'ambiente necessarie (percorsi dei compilatori, librerie, pacchetti) affinché i comandi successivi funzionino correttamente in quella sessione del terminale.

dcc32 e dcc64: i compilatori diretti

Per compilare direttamente un progetto Windows si usano i compilatori dcc32.exe (per il target a 32 bit) e dcc64.exe (per il target a 64 bit), passando come parametro il file sorgente del progetto (.dpr). Alcuni switch utili: -B forza una ricompilazione completa di tutte le unit anche se non modificate, -Q attiva la modalità silenziosa riducendo l'output a schermo, e -CC genera un eseguibile in modalità console anziché GUI. Questo approccio è rapido ma lavora a livello di singolo progetto, senza considerare configurazioni di build più complesse gestite dall'IDE.

MSBuild: il metodo più completo

Dall'adozione del formato progetto .dproj (basato su XML, lo stesso formato usato da Visual Studio), Delphi si integra con MSBuild, lo strumento di build standard dell'ecosistema Microsoft. Compilare un progetto con MSBuild permette di rispettare fedelmente le configurazioni definite nell'IDE — Debug o Release, piattaforma Win32 o Win64, percorsi di output personalizzati — con un comando del tipo msbuild NomeProgetto.dproj /p:config=Release /p:platform=Win64. È l'approccio consigliato per qualsiasi pipeline di build automatizzata, perché replica esattamente ciò che accadrebbe compilando dall'IDE con la stessa configurazione selezionata.

Un semplice script di rilascio

Un pattern comune è creare un file .bat che richiama in sequenza rsvars.bat e poi il comando MSBuild con la configurazione desiderata, reindirizzando l'output su un file di log per poterlo controllare anche dopo la chiusura della finestra. Aggiungendo un controllo sul codice di uscita del comando (variabile %ERRORLEVEL% in un file .bat), lo script può interrompere automaticamente il processo di rilascio se la compilazione fallisce, evitando di distribuire per errore una build non aggiornata.

Integrazione con strumenti di CI

Poiché sia dcc32/dcc64 che MSBuild sono eseguibili a riga di comando che restituiscono un codice di uscita standard, si integrano senza difficoltà in qualsiasi strumento di integrazione continua (Jenkins, Azure DevOps, GitHub Actions con un runner Windows) semplicemente richiamandoli come uno step della pipeline, esattamente come si farebbe con qualsiasi altro compilatore da riga di comando.

terminalAltri articoli su Programmazione grid_viewTutti gli articoli
Scrivici su WhatsApp