Задание этапов настраиваемого построения

Обновлен: Ноябрь 2007

Этап настраиваемого построения предоставляет конструируемой системе сведения, которые ей нужны для создания выходных файлов из входных файлов. Этап настраиваемого построения прикрепляется к своему входному файлу. Он содержит команды, которые необходимо выполнить, список выходных файлов, созданных этими командами и (возможно) описание команды.

Общие сведения об этапах настраиваемого построения см. в разделе Сведения об этапах настраиваемого построения и событиях построения.

Задание этапа настраиваемого построения

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Задание свойств проекта C++.

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

  3. В обозревателе решений выберите входной файл для этапа настраиваемого построения.

    Если папка Этап настраиваемого построения не отображается, выбранный файл имеет связанный с ним этап по умолчанию. Например, C-файлы и CPP-файлы имеют этап по умолчанию для вызова компилятора. Чтобы переопределить настройку по умолчанию, измените свойство Tool, находящееся в папке Параметры конфигурации.

  4. Определите свойства, связанные с этапом настраиваемого построения.

    • В поле Дополнительные зависимости задайте дополнительные файлы, кроме файла, для которого определяется этап настраиваемого построения (файл, связанный с этапом настраиваемого построения неявно рассматривается как входной файл для этапа). Наличие дополнительных входных файлов не является обязательным для этапа настраиваемого построения. Если имеются несколько дополнительных входов, разделяйте их точкой с запятой.

      Если дата файла Дополнительные зависимости позже даты создания входного файла, будет выполняться настраиваемое правило построения. Если все файлы Дополнительные зависимости старше входного файла, и входной файл старше файла Выходные данные, этап настраиваемого построения не выполняется.

      Например, предположим, имеется этап настраиваемого построения, который воспринимает файл MyInput.x как входной и создает файл MyInput.cpp, и что MyInput.x включает файл заголовка MyHeader.h. Можно задать MyHeader.h как входную зависимость от MyInput.x, а система построения будет строить файл MyInput.cpp, если он устарел по отношению к файлам MyInput.x или MyHeader.h.

      Входные зависимости могут также гарантировать, что этапы настраиваемого построения находятся в нужном порядке. В предыдущем примере предположим, что файл MyHeader.h в действительности является выходным файлом этапа настраиваемого построения. Поскольку MyHeader.h является зависимостью от MyInput.x, система построения вначале строит файл Myheader.h перед выполнением этапа настраиваемого построения на файле MyInput.x.

    • В поле Командная строка задайте синтаксис настраиваемого правила построения. Этот синтаксис может включать любую команду, допустимую в командной строке или в BAT-файле. Можно использовать Макросы для команд и свойств построения для указания расположения для файлов или получения фактического имени входного файла в случае множественного выделения. Перед именем пакетного файла необходимо указывать call для обеспечения выполнения всех последующих команд.

    • В поле Описание введите описание этапа настраиваемого построения. Это будет выводиться в окно Выходные данные, если система построения обрабатывает этот этап.

    • В поле Выходные данные укажите имя выходного файла. Эта запись является обязательной, поскольку без значения этого свойства этап настраиваемого построения не будет выполняться. Если этап настраиваемого построения имеет несколько входных файлов, разделяйте имена файлов точкой с запятой.

      Именем выходного файла должно быть имя, указанное в свойстве Командная строка. Система построения проекта будет искать файл и проверять дату его создания. Если дата создания файла позже даты создания входного файла, либо если файл не найден, этап настраиваемого построения выполняется. Если все файлы Дополнительные зависимости старше входного файла, и входной файл старше файла Выходные данные, этап настраиваемого построения не выполняется.

Если необходимо, чтобы система построения работала на выходной файл, созданный этапом настраиваемого построения, необходимо вручную добавить его в проект. Этап настраиваемого построения обновляет файл во время построения.

Пример

Предположим, что необходимо включить в проект файл с именем parser.l. Нужно, чтобы лексический анализатор обработал parser.l для создания C-файла с тем же базовым именем (parser.c).

Вначале файлы parser.l и parser.c добавляются в проект. Если файлы не существуют, добавляется ссылка на файлы. Пользователь создает этап настраиваемого построения для parser.l и вводит следующее в свойство Команды.

lexer $(InputPath) .\$(InputName).c

Эта команда запустит лексический анализатор для файла parser.l и направит выходной файл parser.c в каталог проекта.

В свойстве Выходные данные введите следующее:

.\$(InputName).c

При построении проекта система построения сравнивает метки времени файлов parser.l и parser.c. Если файл parser.l более ранний, или если parser.c не существует, система построения выполняет свойство Команда, чтобы обновить файл parser.c. Поскольку parser.c также добавлен в проект, система построения продолжит затем компилировать файл parser.c.

См. также

Ссылки

Устранение неполадок, связанных с этапами настраиваемого построения и событиями построения

Другие ресурсы

Макросы для команд и свойств построения