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