Reglas
j2objc_library
j2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, features, jre_deps, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Esta regla usa J2ObjC para traducir el código fuente de Java en Objective-C, que luego se pueden usar como dependencias de objc_library y objc_binary las reglas de firewall. Puedes encontrar información detallada acerca de J2ObjC en la Sitio de J2ObjC
Las marcas de transpilación J2ObjC personalizadas se pueden especificar con la marca de compilación
--j2objc_translation_flags
en la línea de comandos.
Ten en cuenta que los archivos traducidos incluidos en el destino j2objc_library se compilar usando la configuración de compilación predeterminada, que es la misma que la de las fuentes Una regla objc_library sin opciones de compilación especificadas en los atributos.
Además, se anula la duplicación del código generado a nivel del destino, no del fuente. Si tienes dos diferentes destinos de Java que incluyen los mismos archivos de origen de Java, es posible que veas un error de símbolo duplicado en el momento de la vinculación. La forma correcta de resolver este problema es mover los archivos fuente de Java compartidos a un objetivo común separado del que se puede confiar.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
j2objc_library , java_library
Destinos java_import y java_proto_library que contienen
Archivos Java que se transpilarán a Objective-C.
Todos los objetivos de La traducción de J2ObjC funciona de manera diferente según el tipo de fuente de origen de Java.
archivos incluidos en el cierre transitivo. Por cada archivo fuente .java incluido en
Los usuarios pueden importar los archivos de encabezado generados por J2ObjC en su código. Las rutas de importación de
Estos archivos son la ruta de acceso relativa de raíz de los artefactos originales de Java. Por ejemplo:
La ruta de importación de
Si las reglas proto_library están en el cierre transitivo de esta regla, los proto J2ObjC también
generarse, compilarse y vincularse a nivel binario. Para proto
|
entry_classes
|
--j2objc_dead_code_removal
está activada. Las clases Java deben especificarse en sus nombres canónicos, como se define en
el Java
Especificación de lenguaje.
Cuando se especifica la marca --j2objc_dead_code_removal , se muestra la lista de clases de entrada
se recopilarán de forma transitiva y se usarán como puntos de entrada para realizar un análisis de código no muerto.
Luego, las clases no usadas se quitarán del paquete de aplicación ObjC final.
|
jre_deps
|
j2objc_library . Solo la funcionalidad principal de JRE está vinculada de forma predeterminada.
|
objc_import
objc_import(name, 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)
Esta regla encapsula una biblioteca estática ya compilada en forma de un
.a
. También permite exportar encabezados y recursos usando la misma
atributos admitidos por objc_library
.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
hdrs
|
Estos encabezados describen la interfaz pública para la biblioteca y serán se pusieron a disposición de las fuentes en esta regla o en fuentes las reglas de firewall. Encabezados que no deben ser incluidos por un cliente de esta biblioteca se debe indicar en el atributo srcs en su lugar. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
srcs y non_arc_srcs , incluso si algunos no contienen
a los que hace referencia el objeto binario.
Esto es útil si no se llama explícitamente a tu código en
el objeto binario, p.ej., si tu código se registra para recibir alguna devolución de llamada
proporcionados por algún servicio.
|
archives
|
.a proporcionados a los objetivos de Objective-C que
depender de este objetivo.
|
includes
|
#include/#import rutas de búsqueda para agregar a este destino
y todos los objetivos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no
especificar la ruta del lugar de trabajo completa en la
Declaraciones #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete.
Archivos genfile y raíces bin (p.ej., A diferencia de COPTS, estas marcas se agregan a esta regla. y cada regla que depende de él. (Nota: No depende de las reglas de las que depende). Sé esto puede tener efectos de largo alcance. Si tienes dudas, agrega “-iquote” a COPTS. |
sdk_dylibs
|
|
sdk_frameworks
|
Cuando se vincula un objeto binario de Apple de nivel superior, se enumeran todos los frameworks del SDK que se incluyen en el objeto binario de ese objeto el gráfico de dependencias transitivos están vinculados. |
sdk_includes
|
#include/#import rutas de búsqueda para agregar a este destino
y todos los destinos dependientes, en los que cada ruta es relativa
$(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, runtime_deps, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, visibility, weak_sdk_frameworks)
Esta regla produce una biblioteca estática a partir de los archivos fuente de Objective-C proporcionados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
|
srcs
|
|
hdrs
|
Estos encabezados describen la interfaz pública para la biblioteca y serán se pusieron a disposición de las fuentes en esta regla o en fuentes las reglas de firewall. Encabezados que no deben ser incluidos por un cliente de esta biblioteca se debe indicar en el atributo srcs en su lugar. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
srcs y non_arc_srcs , incluso si algunos no contienen
a los que hace referencia el objeto binario.
Esto es útil si no se llama explícitamente a tu código en
el objeto binario, p.ej., si tu código se registra para recibir alguna devolución de llamada
proporcionados por algún servicio.
|
copts
|
Ten en cuenta que, en el proyecto de Xcode generado, las rutas de acceso a directorios especificadas con “-I” marcas en Los archivos copts se analizan y se anteponen con "$(WORKSPACE_ROOT)/" si son rutas relativas a las rutas de búsqueda de encabezados para el destino de Xcode asociado. |
defines
|
-D adicionales para pasar al compilador. Deben estar en
el formulario KEY=VALUE o simplemente KEY , y son
se pasa no solo al compilador para este destino (como copts
sí), sino también a todos los objc_ dependientes de este objetivo.
Con la sustitución "Make variable" y
Asignación de token de shell de Bourne.
|
enable_modules
|
|
implementation_deps
|
deps , los encabezados y las rutas de acceso de inclusión de estas bibliotecas (y todas sus
dependencias transitivas) solo se usan para compilar esta biblioteca, no las bibliotecas que
dependen de él. Las bibliotecas especificadas con implementation_deps siguen vinculadas
en objetivos binarios que dependen de esta biblioteca.
|
includes
|
#include/#import rutas de búsqueda para agregar a este destino
y todos los objetivos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no
especificar la ruta del lugar de trabajo completa en la
Declaraciones #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete.
Archivos genfile y raíces bin (p.ej., A diferencia de COPTS, estas marcas se agregan a esta regla. y cada regla que depende de él. (Nota: No depende de las reglas de las que depende). Sé esto puede tener efectos de largo alcance. Si tienes dudas, agrega “-iquote” a COPTS. |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
runtime_deps
|
|
sdk_dylibs
|
|
sdk_frameworks
|
Cuando se vincula un objeto binario de Apple de nivel superior, se enumeran todos los frameworks del SDK que se incluyen en el objeto binario de ese objeto el gráfico de dependencias transitivos están vinculados. |
sdk_includes
|
#include/#import rutas de búsqueda para agregar a este destino
y todos los destinos dependientes, en los que cada ruta es relativa
$(SDKROOT)/usr/include
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
available_xcodes
available_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Una instancia de regla xcode_config
puede depender de dos destinos de esta regla para
indicar las versiones de Xcode disponibles de forma remota y local.
Esto permite seleccionar una versión oficial de uno de los códigos disponibles colectivamente.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
default
|
|
versions
|
|
xcode_config
xcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
La compilación --xcode_version_config
puede hacer referencia a un solo destino de esta regla.
marca para traducir la marca --xcode_version
a una versión oficial aceptada de Xcode.
Esto permite seleccionar una versión oficial de Xcode entre varios alias registrados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
default
|
xcode_version proporcionado en los siguientes casos:
no se especificó la marca de compilación xcode_version . Esto es obligatorio si existe
versions . Es posible que no se establezca si remote_versions o
Se estableció local_versions .
|
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version aceptado(s) |
xcode_version
xcode_version(name, default_ios_sdk_version, default_macos_sdk_version, default_tvos_sdk_version, default_watchos_sdk_version, deprecation, distribs, features, licenses, tags, testonly, version, visibility)
Representa una única versión oficial de Xcode con alias aceptables para esa versión.
Consulta la regla xcode_config
.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
default_ios_sdk_version
|
ios_sdk_version anulará el valor especificado aquí.
|
default_macos_sdk_version
|
macos_sdk_version anulará el valor especificado aquí.
|
default_tvos_sdk_version
|
tvos_sdk_version anulará el valor especificado aquí.
|
default_watchos_sdk_version
|
watchos_sdk_version anulará el valor especificado aquí.
|
version
|
|