Правила
j2objc_library
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Это правило использует J2ObjC для трансляции Java-исходных файлов в Objective-C, которые затем могут быть использованы в качестве зависимостей правил objc_library и objc_binary. Подробную информацию о самом J2ObjC можно найти на сайте J2ObjC.
Настраиваемые флаги трансляции J2ObjC можно указать с помощью флага сборки --j2objc_translation_flags в командной строке.
Обратите внимание, что переведённые файлы, включённые в цель j2objc_library, будут скомпилированы с использованием конфигурации компиляции по умолчанию, той же конфигурации, что и для исходных файлов правила objc_library без указанных в атрибутах параметров компиляции.
Кроме того, сгенерированный код дедублицируется на уровне целей, а не на уровне исходных файлов. Если у вас есть две разные Java-цели, включающие одни и те же Java-исходные файлы, вы можете столкнуться с ошибкой дублирования символов во время линковки. Правильный способ решения этой проблемы — поместить общие Java-исходные файлы в отдельную общую цель, от которой можно зависеть.
Аргументы
| Атрибуты | |
|---|---|
name | Имя; обязательно Уникальное имя для этой цели. |
deps | Список меток; значение по умолчанию j2objc_library, java_library, java_import и java_proto_library целей, содержащих Java-файлы, которые необходимо перевести в Objective-C. Все Трансляция J2ObjC работает по-разному в зависимости от типа исходных Java-файлов, включенных в транзитивное замыкание. Для каждого исходного файла .java, включенного в Пользователи могут импортировать сгенерированные J2ObjC-заголовки в свой код. Пути импорта этих файлов — это пути, относительные к корню исходных Java-артефактов. Например, Если правила proto_library находятся в транзитивном замыкании этого правила, J2ObjC-прототипы также будут сгенерированы, скомпилированы и подключены на уровне бинарного файла. Для прото |
entry_classes | Список строк; значение по умолчанию --j2objc_dead_code_removal
. Java-классы должны быть указаны в своих канонических именах, как определено в Спецификации языка Java. Когда указан флаг --j2objc_dead_code_removal, список входных классов будет собираться транзитивно и использоваться в качестве точек входа для анализа мёртвого кода. Неиспользуемые классы будут удалены из окончательного пакета приложения Objective-C. |
jre_deps | Список меток; значение по умолчанию j2objc_library. По умолчанию подключаются только основные функции JRE. |
objc_import
objc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, features, includes, licenses, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, visibility, weak_sdk_frameworks)
Это правило инкапсулирует уже скомпилированную статическую библиотеку в виде файла .a. Оно также позволяет экспортировать заголовки и ресурсы, используя те же атрибуты, что и objc_library.
Аргументы
| Атрибуты | |
|---|---|
name | Имя; обязательно Уникальное имя для этой цели. |
deps | Список меток; значение по умолчанию |
hdrs | Список меток; значение по умолчанию Эти заголовки описывают публичный интерфейс библиотеки и будут доступны для включения источниками в этом правиле или в зависимых правилах. Заголовки, не предназначенные для включения клиентом этой библиотеки, должны быть перечислены в атрибуте srcs. Эти заголовки будут скомпилированы отдельно от исходного кода, если включены модули. |
alwayslink | Булево; значение по умолчанию srcs и non_arc_srcs, даже если некоторые из них не содержат символы, ссылающиеся на бинарник. Это полезно, если ваш код не вызывается явно кодом в бинарнике, например, если ваш код регистрируется для получения какого-либо обратного вызова, предоставляемого какой-либо службой. |
archives | Список меток; обязательно Список файлов.a, предоставляемых целям Objective-C, которые зависят от этой цели. |
includes | Список строк; значение по умолчанию #include/#import путей поиска, которые нужно добавить к этой цели и всем зависимым целям. Это необходимо для поддержки сторонних и открытых библиотек, которые не указывают весь путь рабочей области в своих #import/#include инструкциях. Пути интерпретируются относительно каталога пакета, и каталоги genfiles и bin (например, В отличие от COPTS, эти флаги добавляются для этого правила и для каждого правила, от которого оно зависит. (Примечание: не правила, от которых оно зависит!) Будьте очень осторожны, так как это может иметь далеко идущие последствия. В случае сомнений, добавьте флаги «-iquote» в COPTS вместо этого. |
sdk_dylibs | Список строк; значение по умолчанию |
sdk_frameworks | Список строк; значение по умолчанию При линковке верхнего уровня Apple-бинарника подключаются все фреймворки SDK, перечисленные в транзитивной диаграмме зависимостей этого бинарника. |
sdk_includes | Список строк; значение по умолчанию #include/#import путей поиска, которые нужно добавить к этой цели и всем зависимым целям, где каждый путь относителен к $(SDKROOT)/usr/include. |
textual_hdrs | Список меток; значение по умолчанию |
weak_sdk_frameworks | Список строк; значение по умолчанию |
objc_library
objc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, implementation_deps, includes, licenses, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
Это правило генерирует статическую библиотеку из предоставленных исходных файлов Objective-C.