Delphi 2007 (или 2009) события сборки связаны с созданием конфигураций? - PullRequest
4 голосов
/ 28 марта 2009

Можно ли добавлять события сборки только для конкретной конфигурации сборки в Delphi 2007?

Я использую 2007, но мне было бы интересно, что вы можете сделать и в 2009 году.

Приветствие Sam

Ответы [ 4 ]

4 голосов
/ 26 февраля 2010

Да!

Как вы можете иметь отдельные определения в каждой конфигурации сборки. Вы можете проверить, определяет ли ваш проект условную обработку сборки.

Я использую что-то подобное:

echo $(DEFINES) | find "RELEASE"> nul
if not errorlevel 1 goto
release

echo $(DEFINES) | find "DEBUG" > nul
if not errorlevel 1 goto debug

goto end

:release
echo Processing RELEASE Build:
...
goto end

:debug
echo Processing DEBUG Build:
..
goto end

:end
3 голосов
/ 29 марта 2009

Нет.

У вас могут быть настройки (ресурса) компилятора для каждой конфигурации сборки в Delphi 2009. Но это не относится к другим параметрам.

Вы можете подделать его, но это займет некоторое время:

  1. В предварительной сборке удалите файлы conf * .dcu.
  2. Определите отладку для конфигурации отладки.
  3. Добавьте в файл проекта следующее:

Код:

uses
  ..
{$IFDEF DEBUG}
  confDebug,
{$ELSE}
  confRelease,
{$ENDIF}
  ..
  1. Теперь позвольте шагу после сборки проверить наличие confDebug.dcu или confRelease.dcu, чтобы определить, какая конфигурация сборки используется.

Это немного громоздко, но вы можете делать, что хотите.

1 голос
/ 15 июня 2014

Попробуйте это:

if $(Config) == Release do_something

Здесь Вы можете найти дополнительную информацию

0 голосов
/ 01 августа 2018

При использовании XE я сократил его до чего-то еще более простого, если вам интересно:

goto $(Config)

:Release
compil32 /cc f:\dev\MyProject\Installer\MyProject.iss"
etc.

:Debug

Это собирает мой установщик, только когда я установил Конфигурацию сборки на Выпуск. Если вы хотите стать более любопытным, вы можете позвонить Дженкинсу и позволить ему взять на себя предварительные задачи. В Delphi 10.x вам больше не нужен этот трюк.

...