Reglas
j2objc_library
Ver fuente de la reglaj2objc_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 archivos fuente Java a Objective-C, que luego puede usarse como dependencias de objc_library y objc_binary. Puedes obtener información detallada sobre J2ObjC en el 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 un destino j2objc_library se compilarán con la configuración de compilación predeterminada, que es la misma que para las fuentes de una regla objc_library sin opciones de compilación especificadas en atributos.
Además, se anula la duplicación de código generado en el nivel objetivo, no en el nivel de la fuente. Si tienes dos destinos Java diferentes que incluyen los mismos archivos fuente de Java, es posible que veas un error de símbolo duplicado en el momento del vínculo. La forma correcta de resolver este problema es mover los archivos de origen de Java compartidos a un destino común separado del que se pueda confiar.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para esta orientación. |
deps
|
j2objc_library , java_library , java_import y java_proto_library que contienen archivos Java que se transpilarán a Objective-C.
Se traducirán y compilarán todos los destinos La traducción J2ObjC funciona de manera diferente según el tipo de archivos de origen de Java incluidos en el cierre transitivo. Para cada archivo fuente .java incluido en el archivo Los usuarios pueden importar a su código los archivos de encabezados generados por J2ObjC. Las rutas de importación para estos archivos son la ruta relativa a la raíz de los artefactos de Java originales. Por ejemplo,
Si las reglas proto_library se encuentran en el cierre de transición de esta regla, los protos J2ObjC también se generarán, compilarán y vincularán en el nivel binario. Para el proto |
entry_classes
|
--j2objc_dead_code_removal
está activada. Las clases Java se deben especificar en sus nombres canónicos según se define en la especificación del lenguaje Java.
Cuando se especifica la marca --j2objc_dead_code_removal , la lista de clases de entrada se recopilará de forma transitiva y se usará como puntos de entrada para realizar un análisis de código muerto.
Luego, se quitarán las clases que no se usen del paquete de aplicación final de ObjC.
|
jre_deps
|
j2objc_library . Solo la funcionalidad principal de JRE está vinculada de forma predeterminada.
|
importación_obj
Ver fuente de la reglaobjc_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 archivo .a
. También permite exportar encabezados y recursos con los mismos atributos admitidos por objc_library
.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para esta orientación. |
hdrs
|
Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para su inclusión por fuentes en esta regla o en reglas dependientes. En el caso de los encabezados que no se pretenden incluir en un cliente de esta biblioteca, deben incluirse en el atributo srcs. Estos 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 símbolos a los que el objeto binario haga referencia.
Esto es útil si el código no llama explícitamente a tu código en
el objeto binario; p.ej., si tu código se registra para recibir algún callback
proporcionado por algún servicio.
|
archives
|
.a proporcionados a objetivos de Objective-C que dependen de este objetivo.
|
includes
|
#include/#import rutas de búsqueda para agregar a este destino, y a todas las que dependen de él.
El objetivo de esto es admitir bibliotecas de terceros y de código abierto que no especifiquen toda la ruta del lugar de trabajo en sus declaraciones #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y los archivos genfile y raíz (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y todas las reglas que dependen de ella. Nota: No son las reglas de las que dependen. Ten mucho cuidado, ya que puede tener efectos de gran alcance. Cuando tengas dudas, agrega las marcas “-iquote” a COPTS en su lugar. |
sdk_dylibs
|
|
sdk_frameworks
|
Cuando se vincula un objeto binario de nivel superior de Apple, se vinculan todos los marcos de trabajo del SDK enumerados en el gráfico de dependencia transitivo de ese objeto binario. |
sdk_includes
|
#include/#import para agregar a este destino, y a todas las orientaciones dependientes, donde cada ruta se relaciona con $(SDKROOT)/usr/include .
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
biblioteca_objc
Ver fuente de la reglaobjc_library(name, deps, srcs, data, hdrs, alwayslink, compatible_with, copts, defines, deprecation, distribs, enable_modules, exec_compatible_with, exec_properties, features, 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)
Esta regla produce una biblioteca estática a partir de los archivos de origen de Objective-C especificados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para esta orientación. |
deps
|
|
srcs
|
|
hdrs
|
Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para su inclusión por fuentes en esta regla o en reglas dependientes. En el caso de los encabezados que no se pretenden incluir en un cliente de esta biblioteca, deben incluirse en el atributo srcs. Estos 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 símbolos a los que el objeto binario haga referencia.
Esto es útil si el código no llama explícitamente a tu código en
el objeto binario; p.ej., si tu código se registra para recibir algún callback
proporcionado por algún servicio.
|
copts
|
Ten en cuenta que, para el proyecto de Xcode generado, se analizan las rutas de directorio que se especifican con las marcas “-I” en copias, y se les agrega “$(WORKSPACE_ROOT)/” si son rutas relativas y se agregan a las rutas de búsqueda de encabezado del destino de Xcode asociado. |
defines
|
-D para pasar al compilador. Tienen el formato KEY=VALUE o, simplemente, KEY , y se pasan no solo al compilador para este destino (como copts ), sino también a todos los objc_ este elemento.
Sujeto a la sustitución "Make variable" y la asignación de token de Shell Bourne.
|
enable_modules
|
|
includes
|
#include/#import rutas de búsqueda para agregar a este destino, y a todas las que dependen de él.
El objetivo de esto es admitir bibliotecas de terceros y de código abierto que no especifiquen toda la ruta del lugar de trabajo en sus declaraciones #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y los archivos genfile y raíz (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y todas las reglas que dependen de ella. Nota: No son las reglas de las que dependen. Ten mucho cuidado, ya que puede tener efectos de gran alcance. Cuando tengas dudas, agrega las marcas “-iquote” a COPTS en su lugar. |
linkopts
|
|
module_map
|
|
module_name
|
|
non_arc_srcs
|
|
pch
|
|
sdk_dylibs
|
|
sdk_frameworks
|
Cuando se vincula un objeto binario de nivel superior de Apple, se vinculan todos los marcos de trabajo del SDK enumerados en el gráfico de dependencia transitivo de ese objeto binario. |
sdk_includes
|
#include/#import para agregar a este destino, y a todas las orientaciones dependientes, donde cada ruta se relaciona con $(SDKROOT)/usr/include .
|
textual_hdrs
|
|
weak_sdk_frameworks
|
|
códigos_disponibles
Ver fuente de la reglaavailable_xcodes(name, default, deprecation, distribs, features, licenses, tags, testonly, versions, visibility)
Dos instancias de esta regla pueden depender de una instancia de regla xcode_config
para indicar las versiones de Xcode disponibles de forma remota y local.
Esto permite seleccionar una versión oficial de los códigos Xcode disponibles de forma colectiva.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para esta orientación. |
default
|
|
versions
|
|
configuración de xcode
Ver fuente de la reglaxcode_config(name, default, deprecation, distribs, features, licenses, local_versions, remote_versions, tags, testonly, versions, visibility)
Se puede hacer referencia a un único destino de esta regla mediante la marca de compilación --xcode_version_config
para traducir la marca --xcode_version
a una versión de xcode oficial aceptada.
Esto permite seleccionar una versión oficial de Xcode de varios alias registrados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para esta orientación. |
default
|
xcode_version proporcionado si no se especifica una marca de compilación xcode_version . Esto es obligatorio si se configura cualquier versions . Esto no se puede establecer si se configura remote_versions o local_versions .
|
local_versions
|
xcode_version |
remote_versions
|
xcode_version |
versions
|
xcode_version aceptado(s) |
versión_xcode
Ver fuente de la reglaxcode_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 esta orientación. |
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
|
|