В этом разделе определены различные термины и понятия, общие для многих функций или правил построения.
Содержание
- Токенизация оболочки Bourne
- Расширение меток
- Типичные атрибуты, определённые большинством правил построения
- Атрибуты, общие для всех правил построения
- Атрибуты, общие для всех правил тестирования (*_test)
- Атрибуты, общие для всех правил бинарных файлов (*_binary)
- Настраиваемые атрибуты
- Неявные выходные цели
Токенизация оболочки Bourne
Некоторые строковые атрибуты некоторых правил разделяются на несколько слов в соответствии с правилами токенизации оболочки Bourne: необрамлённые пробелы разделяют отдельные слова, а одинарные и двойные кавычки и обратные слэши используются для предотвращения токенизации.
Атрибуты, которые подвержены этой токенизации, явно указаны в их определениях в этом документе.
Атрибуты, подлежащие расширению переменных «Make» и токенизации оболочки Bourne, обычно используются для передачи произвольных параметров компиляторам и другим инструментам. Примеры таких атрибутов — cc_library.copts и java_library.javacopts. Вместе эти подстановки позволяют одной строковой переменной расширяться в список параметров, специфичных для конфигурации.
Расширение меток
Некоторые строковые атрибуты очень немногих правил подвержены расширению меток: если эти строки содержат допустимую метку как подстроку, например, //mypkg:target, и эта метка является объявленной предпосылкой текущего правила, она расширяется в путь к файлу, представленному целью //mypkg:target.
Примеры атрибутов включают genrule.cmd и cc_binary.linkopts. Подробности могут значительно отличаться в каждом случае, например, в отношении того, расширяются ли относительные метки; как обрабатываются метки, расширяющиеся до нескольких файлов и т.д. Обратитесь к документации атрибута правила для получения подробной информации.
Типичные атрибуты, определённые большинством правил построения
В этом разделе описываются атрибуты, которые определены многими правилами построения, но не всеми.
| Атрибут | Описание |
|---|---|
data |
Файлы, необходимые этому правилу во время выполнения. Может перечислять файлы или цели правил. В общем, разрешает любые цели. Значения по умолчанию и файлы runtimes целей в атрибуте Новые правила должны определять атрибут |
deps |
Зависимости для этой цели. В общем случае следует перечислять только цели правил. (Хотя некоторые правила позволяют перечислять файлы непосредственно в Правила, специфичные для языка, обычно ограничивают перечисленные цели теми, у которых есть определённые провайдеры. Точные семантические значения того, что означает зависимость цели от другой с использованием Чаще всего зависимость |
licenses |
Список строк типа лицензии, которые должны использоваться для этой конкретной цели. Это часть устаревшего API лицензирования, который Bazel больше не использует. Не используйте это. |
srcs |
Файлы, обрабатываемые или включаемые этим правилом. В общем случае перечисляет файлы напрямую, но может перечислять цели правил (например, Правила, специфичные для языка, часто требуют, чтобы перечисленные файлы имели определённые расширения файлов. |
Атрибуты, общие для всех правил построения
В этом разделе описываются атрибуты, которые неявно добавляются ко всем правилам построения.