Создание макросов событий в Delphi XE
В соответствии с файлом справки Delphi, когда я открываю диалоговое окно для добавления событий сборки к моим параметрам проекта, в диалоговом окне должен отображаться список макросов (заполнителей), которые я могу использовать в командной строке для события сборки. Когда я пытаюсь это сделать в Delphi XE, список макросов пуст. Файл справки не говорит, какие макросы доступны (что я мог найти).
Итак, какие макросы доступны? Прямо сейчас мне нужен макрос для полного пути к скомпилированному файлу .exe
(post-build) и полному пути к файлу .dproj
. Но я хотел бы иметь полный список доступных макросов для дальнейшего использования.
Ответы
Ответ 1
Мне пришлось вернуться к D2010, чтобы придумать этот список:
BDS The environment variable $(BDS)
DEFINES The project conditional defines
DIR The environment variable $(DIR)
INCLUDEPATH The project include path
INPUTDIR The input file directory
INPUTEXT The input file extension
INPUTFILENAME The input file name, with extension
INPUTPATH The input file full path
LOCALCOMMAND Local command entered by user in project manager
OUTPUTDIR The output file directory
OUTPUTEXT The output file extension
OUTPUTFILENAME The output file name, with extension
OUTPUTNAME The output file name, without extension
OUTPUTPATH The output file full path
Path The environment variable $(PATH)
PROJECTDIR The project directory
PROJECTEXT The project extension
PROJECTFILENAME The project file name, with extension
PROJECTNAME The project name
PROJECTPATH The project file full path
SAVE Save the input file to disk before it compiled
SystemRoot The environment variable $(SYSTEMROOT)
WINDIR The environment variable $(WINDIR)
Ответ 2
Для начала я думаю, что тот, который вам нужен, - $(PROJECTPATH), который будет полным именем файла DPROJ, включая его путь.
Это ошибка в RAD XE. Я тоже это видел. Это ушло для меня в Обновление 1. Подождите. Я имею в виду, это регресс в обновлении 1, который не был в RTM.
Это скребок от Delphi 2009:
![enter image description here]()
Ответ 3
У меня есть обновление 1, но все еще не видно, однако...
Для выходного файла используйте "$ (OUTPUTDIR) $(OUTPUTFILENAME)"
и в файле проекта используется "$ (ProjectDir) $(ProjectFileName)"
Вы можете найти список доступных макросов (если они не отображаются в среде IDE) в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Borland.Delphi.Targets(получен из Каковы свойства уровня проекта MSBuild для Delphi?)
Внутри этого файла находится следующая область на моей машине...
<!-- Build event properties settable in the IDE -->
<ProjectName>$(MSBuildProjectName)</ProjectName>
<ProjectFilename>$(MSBuildProjectFile)</ProjectFilename>
<ProjectExt>$(MSBuildProjectExtension)</ProjectExt>
<ProjectDir>$(MSBuildProjectDirectory)</ProjectDir>
<ProjectPath>$(MSBuildProjectFullPath)</ProjectPath>
<InputPath>@(DelphiCompile->'%(FullPath)')</InputPath>
<InputDir>@(DelphiCompile->'%(RootDir)%(Directory)')</InputDir>
<InputName>@(DelphiCompile->'%(Filename)')</InputName>
<InputExt>@(DelphiCompile->'%(Extension)')</InputExt>
<InputFilename>@(DelphiCompile->'%(Filename)%(Extension)')</InputFilename>
<OutputPath>@(_DependencyCheckOutputName->'%(FullPath)')</OutputPath>
<OutputDir>@(_DependencyCheckOutputName->'%(RootDir)%(Directory)')</OutputDir>
<OutputName>@(_DependencyCheckOutputName->'%(Filename)')</OutputName>
<OutputExt>@(_DependencyCheckOutputName->'%(Extension)')</OutputExt>
<OutputFilename>@(_DependencyCheckOutputName->'%(Filename)%(Extension)')</OutputFilename>
НТН