Можно ли настроить конфигурацию сборки для автоматического добавления суффиксов для целевой платформы? - PullRequest
8 голосов
/ 14 декабря 2011

возможно ли настроить (в идеале из GUI) Build Configuration для автоматического добавления суффиксов к выходным файлам в соответствии с целевой платформой?

Я имею в виду, например, проект библиотеки с именем Project, и я хотел бы получить

Project.dll - when I build the project for 32-bit platform
Project64.dll - when I build the project for 64-bit platform

Спасибо

Ответы [ 2 ]

13 голосов
/ 14 декабря 2011

Как ни странно, вчера я пытался сделать то же самое для исполняемого файла моего приложения.Я пришел к выводу, что невозможно изменить имя выходного файла.Единственный способ повлиять на имя выходного файла - это директива {$E}, которая управляет расширением вывода, а не тем, что вам нужно.

Обновление

Спасибо @TOndrej за указание на директиву $LIBSUFFIX.Похоже, что это нельзя изменить с помощью параметров проекта IDE для библиотек, хотя есть такая поддержка пакетов.Тем не менее, он действительно работает, когда включен в исходный код вашего пакета.Включите это в файл библиотеки .dpr.

{$IFDEF WIN64}
  {$LIBSUFFIX '64'}
{$ENDIF}

Это не влияет на проекты, которые создают исполняемые файлы (например, приложения VCL, службы и т. Д.), И поэтому я считаю, что единственное решение в этих случаяхдействие после сборки.

3 голосов
/ 14 февраля 2014

Вы также можете использовать событие сборки для переименования исполняемого файла. В событии post build в опциях проекта вы можете сделать что-то вроде этого:

ren $(OUTPUTPATH) $(OUTPUTNAME)$(Platform).exe

Это даст вам что-то вроде:

ExampleProgramWin64.exe

или

ExampleProgramWin32.exe

Это означает, что вы не можете отладить его, так как IDE не знает, что оно было переименовано, поэтому, возможно, лучше сделать копию.

copy $(OUTPUTPATH) $(OUTPUTDIR)\$(OUTPUTNAME)$(Platform).exe
...