Создание макросов событий в 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>

НТН