Сборка проектов Delphi из консоли

В этой заметке показано как собирать проекты Delphi с помощью bat-файла. Компиляция из консоли часто используется для сборки релизной версииopen in new window.

Файлы проектов Delphi (.dproj) совместимы с системой сборки MSBuild. Разные версии Delphi требуют разную версия MSBuild поэтому сначала желательно обновить Microsoft .NET Framework.

Также успешная сборка требует специально установленных переменных окружения. Переменные отличаются у каждой версии Delphi. Специальный файл rsvars.bat устанавливает их, он находится в bin, рядом c bds.exe.

Delphi может быть установлен в любой каталог, запишем путь к rsvars.bat в системную переменнуюopen in new window чтобы скрипт выполнялся независимо от того на какой машине выполняется.

Для примера системные переменные для Delphi 2010 и XE6

delphi2010_path = C:\Program Files (x86)\Embarcadero\Studio\14.0\bin delphiXE6_path = C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin

Скрипт для сборки

:: Устанавливаем текущую директорию - путь к файлу скрипта :: Это нужно из-за того что для файлов проектов используются :: относительные пути и скрипт должен выполнятся одинаково :: независимо от того где и как он запускается. cd %~dp0

:: Устанавливаем переменные для сборки Delphi 2010 call "%delphi2010_path%rsvars.bat"

:: Запускаем команду Clean для - удаление результатов :: предыдущей сборки (dcu, exe) c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe "Project1.dproj" /target:Clean /p:config="Release"

:: Если произошла ошибка то сразу выходим не выполняя :: следующие команды
if not %ERRORLEVEL% == 0 exit %ERRORLEVEL%

:: Собираем проекта, кофигурация сборки Release c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe "Project1.dproj" /target:Build /p:config="Release" if not %ERRORLEVEL% == 0 exit %ERRORLEVEL%

:: Устанавливаем переменные для сборки XE6 call "%delphiXE6_path%rsvars.bat"

c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe "ProjectXE6.dproj" /target:Clean /p:config="Release" if not %ERRORLEVEL% == 0 exit %ERRORLEVEL% c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe "ProjectXE6.dproj" /target:Build /p:config="Release" if not %ERRORLEVEL% == 0 exit %ERRORLEVEL%

Пример на GitHubopen in new window

Последниее изменение: 24.08.2023, 06:42:55