name | Имя; обязательно Уникальное имя для этой цели. |
deps | Список меток; значение по умолчанию [] Список целей, от которых зависит эта цель. |
srcs | Список меток; значение по умолчанию [] Список файлов исходного кода на C, C++, Objective-C и Objective-C++, файлов заголовков и/или файлов исходного кода ассемблера (`.s`, `.S` или `.asm`), которые обрабатываются для создания целевой библиотеки. Это ваши файлы, занесенные в систему контроля версий, а также любые сгенерированные файлы. Файлы исходного кода компилируются в файлы .o с помощью Clang. Файлы заголовков могут включаться/импортироваться любым файлом исходного кода или файлом заголовка в атрибуте srcs этой цели, но не файлами заголовков в атрибуте hdrs или любыми целями, которые зависят от этой правила. Кроме того, можно указать предварительно скомпилированные файлы .o как srcs. Убедитесь в согласовании архитектуры предоставленных файлов .o и архитектуры сборки, чтобы избежать ошибок линковщика, связанных с отсутствием символов. |
hdrs | Список меток; значение по умолчанию [] Список файлов заголовков C, C++, Objective-C и Objective-C++, опубликованных этой библиотекой для включения в исходные файлы зависимых правил. Эти заголовки описывают публичный интерфейс библиотеки и будут доступны для включения в исходных файлах в этом правиле или в зависимых правилах. Заголовки, которые не предназначены для включения клиентом этой библиотеки, должны быть перечислены в атрибуте srcs вместо этого.
Эти файлы заголовков будут скомпилированы отдельно от исходного кода, если включена поддержка модулей.
|
alwayslink | Булево; значение по умолчанию False Если 1, любой пакет или бинарник, который зависит (прямо или косвенно) от этой библиотеки, будет подключать все файлы .o для файлов, перечисленных в srcs и non_arc_srcs, даже если некоторые из них не содержат символов, ссылающихся на бинарник. Это полезно, если ваш код не явно вызывается кодом в бинарнике, например, если ваш код регистрируется для получения обратного вызова, предоставляемого какой-либо службой. |
copts | Список строк; значение по умолчанию [] Дополнительные флаги для компилятора. Подлежат замене "переменных Makefile" и токенизации оболочки Bourne. Эти флаги будут применяться только к этой цели, а не к целям, от которых она зависит, или к целям, которые зависят от нее. Обратите внимание, что для сгенерированного проекта Xcode пути к каталогам, указанные с помощью флагов "-I" в copts, анализируются, префикс "$(WORKSPACE_ROOT)/" добавляется, если это относительные пути, и добавляются в пути поиска заголовков для связанной цели Xcode.
|
defines | Список строк; значение по умолчанию [] Дополнительные флаги -D для компилятора. Они должны быть в формате KEY=VALUE или просто KEY, и передаются не только компилятору для этой цели (как и copts), но и всем objc_ зависимым целям этой цели. Подлежат замене "переменных Makefile" и токенизации оболочки Bourne. |
enable_modules | Булево; значение по умолчанию False Включает поддержку модулей clang (через -fmodules). Установка значения 1 позволит вам @import системных заголовков и других целей: @import UIKit; @import path_to_package_target; |
implementation_deps | Список меток; значение по умолчанию [] Список других библиотек, от которых зависит целевая библиотека. В отличие от deps, заголовки и пути включения этих библиотек (и всех их транзитивных зависимостей) используются только для компиляции этой библиотеки, а не библиотек, которые зависят от нее. Библиотеки, указанные с помощью implementation_deps, по-прежнему подключаются к бинарным целям, которые зависят от этой библиотеки. |
includes | Список строк; значение по умолчанию [] Список #include/#import путей поиска, которые нужно добавить к этой цели и всем зависимым целям. Это для поддержки сторонних и открытых библиотек, которые не указывают весь путь к рабочему пространству в своих #import/#include операциях. Пути интерпретируются относительно каталога пакета, и корни genfiles и bin (например, blaze-genfiles/pkg/includedir и blaze-out/pkg/includedir) включаются помимо фактического корня клиента.
В отличие от COPTS, эти флаги добавляются для этого правила и каждого правила, которое от него зависит. (Примечание: не правила, от которых он зависит!) Будьте очень осторожны, так как это может иметь далеко идущие последствия. В случае сомнений добавьте флаги "-iquote" в COPTS вместо этого.
|
linkopts | Список строк; значение по умолчанию [] Дополнительные флаги для линковщика. |
module_map | Метка; значение по умолчанию None настраиваемая карта модулей Clang для этой цели. Использование настраиваемой карты модулей не рекомендуется. Большинство пользователей должны использовать карты модулей, сгенерированные Bazel. Если указано, Bazel не будет генерировать карту модулей для этой цели, но передаст предоставленную карту модулей компилятору. |
module_name | Строка; значение по умолчанию "" Устанавливает имя модуля для этой цели. По умолчанию имя модуля — это путь к цели со всеми специальными символами, заменёнными на _, например, //foo/baz:bar может импортироваться как foo_baz_bar. |
non_arc_srcs | Список меток; значение по умолчанию [] Список файлов Objective-C, которые обрабатываются для создания целевой библиотеки и НЕ используют ARC. Файлы в этом атрибуте обрабатываются очень похоже на файлы в атрибуте srcs, но компилируются без включенной поддержки ARC. |
pch | Метка; значение по умолчанию None Файл заголовка, который должен быть добавлен в начало каждого компилируемого файла исходного кода (как с ARC, так и без). Использование файлов pch в файлах BUILD активного не рекомендуется, и это следует считать устаревшим. Поскольку файлы pch на самом деле не предварительно скомпилированы, это не повышает скорость сборки, а просто является глобальной зависимостью. С точки зрения эффективности сборки, включение необходимых данных непосредственно в исходные файлы там, где они нужны, на самом деле является лучшим решением. |
sdk_dylibs | Список строк; значение по умолчанию [] Имена SDK-библиотек .dylib для подключения. Например, "libz" или "libarchive". "libc++" включается автоматически, если бинарник содержит какие-либо исходные файлы C++ или Objective-C++ в дереве зависимостей. При линковке бинарника используются все библиотеки, имена которых указаны в графе транзитивных зависимостей этого бинарника. |
sdk_frameworks | Список строк; значение по умолчанию [] Имена SDK-фреймворков для подключения (например, "AddressBook", "QuartzCore"). При линковке бинарника Apple верхнего уровня подключаются все SDK-фреймворки, перечисленные в графе транзитивных зависимостей этого бинарника.
|
sdk_includes | Список строк; значение по умолчанию [] Список #include/#import путей поиска, которые нужно добавить к этой цели и всем зависимым целям, где каждый путь относится к $(SDKROOT)/usr/include. |
stamp | Булево; значение по умолчанию False |
textual_hdrs | Список меток; значение по умолчанию [] Список файлов C, C++, Objective-C и Objective-C++, которые включаются в качестве заголовков файлами исходного кода в этом правиле или пользователями этой библиотеки. В отличие от hdrs, эти файлы не будут компилироваться отдельно от исходного кода. |
weak_sdk_frameworks | Список строк; значение по умолчанию [] Имена SDK-фреймворков для слабого подключения. Например, "MediaAccessibility". В отличие от фреймворков, подключаемых по умолчанию, символы из слабо подключенных фреймворков не вызывают ошибку, если они отсутствуют во время выполнения. |