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 archivos fuente de Java a Objective-C, que luego se pueden usar como dependencias de las reglas objc_library y objc_binary. Puedes encontrar información detallada sobre J2ObjC en el sitio de J2ObjC.
Las marcas de transpilación personalizadas de J2ObjC 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 usando la configuración de compilación predeterminada, la misma configuración que para las fuentes de 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 a nivel del origen. Si tienes dos objetivos Java diferentes que incluyen los mismos archivos fuente 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 de origen de Java compartidos a un destino común independiente en el que se pueda depender.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
j2objc_library , java_library ,
java_import y java_proto_library que contienen
archivos Java para transpilar a Objective-C.
Se traducirán y compilarán todos los objetivos La traducción de J2ObjC funciona de manera diferente según el tipo de archivos de origen Java de origen que se incluyen 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 para estos archivos son la ruta relativa raíz de los artefactos originales de Java. Por ejemplo,
Si las reglas proto_library tienen el cierre transitivo de esta regla, los protos J2ObjC también se generarán, compilarán y vincularán a nivel binario. Para el proto |
entry_classes
|
--j2objc_dead_code_removal
está activada. Las clases de Java se deben especificar en sus nombres canónicos, como 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 recopila de forma transitiva y se usa como puntos de entrada para realizar un análisis de código muerto.
Las clases no utilizadas 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 archivo .a
. También permite exportar encabezados y recursos mediante los mismos atributos compatibles con objc_library
.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
hdrs
|
Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para su inclusión mediante fuentes en esta regla o en reglas dependientes. Los encabezados que no deben incluirse por un cliente de esta biblioteca deben enumerarse 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 al que hace referencia el objeto binario.
Esto resulta útil si tu código no se llama explícitamente mediante código en el objeto binario, p.ej., si se registra para recibir una devolución de llamada proporcionada por algún servicio.
|
archives
|
.a que se proporcionan a los destinos de Objective-C
que dependen de este destino.
|
includes
|
#include/#import para agregar a este destino y a todos los destinos dependientes.
El objetivo de esto es admitir bibliotecas de terceros y de código abierto que no
especifican la ruta de acceso completa 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 genfiles y las raíces binarias (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y para cada regla que depende de ella. (Nota: No son las reglas de las que depende). Ten mucho cuidado, ya que esto puede tener efectos de gran alcance. Si tienes dudas, agrega las marcas "-iQuote" a COPTS. |
sdk_dylibs
|
|
sdk_frameworks
|
Cuando se vincula un objeto binario de Apple de nivel superior, se vinculan todos los frameworks del SDK que se indican en el gráfico de dependencias transitivas de ese objeto binario. |
sdk_includes
|
#include/#import para agregar a este destino y a todos los destinos dependientes, en la que cada ruta de acceso está relacionada con $(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 de origen de Objective-C especificados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
deps
|
|
srcs
|
|
hdrs
|
Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para su inclusión mediante fuentes en esta regla o en reglas dependientes. Los encabezados que no deben incluirse por un cliente de esta biblioteca deben enumerarse 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 al que hace referencia el objeto binario.
Esto resulta útil si tu código no se llama explícitamente mediante código en el objeto binario, p.ej., si se registra para recibir una devolución de llamada proporcionada por algún servicio.
|
copts
|
Ten en cuenta que, para el proyecto de Xcode generado, las rutas de directorio especificadas con las marcas “-I” en copts se analizan, se les antepone “$(WORKSPACE_ROOT)/” si son rutas relativas y se agregan a las rutas de búsqueda de encabezados del destino de Xcode asociado. |
defines
|
-D adicionales para pasar al compilador Deben tener el formato KEY=VALUE o simplemente KEY , y se pasan no solo al compilador para este destino (como sucede con copts ), sino también a todos los objc_ dependencias de este destino.
Sujeto a la sustitución "Make variable" y la tokenización de shell Bourne.
|
enable_modules
|
|
implementation_deps
|
deps , las rutas de inclusión y los encabezados de estas bibliotecas (y todas sus dependencias transitivas) solo se utilizan para la compilación de esta biblioteca, y no las bibliotecas que dependen de ella. Las bibliotecas especificadas con implementation_deps siguen vinculadas en objetivos binarios que dependen de esta biblioteca.
|
includes
|
#include/#import para agregar a este destino y a todos los destinos dependientes.
El objetivo de esto es admitir bibliotecas de terceros y de código abierto que no
especifican la ruta de acceso completa 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 genfiles y las raíces binarias (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y para cada regla que depende de ella. (Nota: No son las reglas de las que depende). Ten mucho cuidado, ya que esto puede tener efectos de gran alcance. Si tienes dudas, agrega las marcas "-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 vinculan todos los frameworks del SDK que se indican en el gráfico de dependencias transitivas de ese objeto binario. |
sdk_includes
|
#include/#import para agregar a este destino y a todos los destinos dependientes, en la que cada ruta de acceso está relacionada con $(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 objetivos de esta regla para indicar las versiones de Xcode disponibles de forma remota y local.
Esto permite seleccionar una versión oficial de Xcode entre los Xcode disponibles en conjunto.
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 marca de compilación --xcode_version_config
puede hacer referencia a un solo destino de esta regla para traducir la marca --xcode_version
a una versión oficial de Xcode aceptada.
Esto permite seleccionar una versión oficial de Xcode entre un número de alias registrados.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. |
default
|
xcode_version proporcionado si no se especifica ninguna marca de compilación xcode_version . Es obligatorio si se configura algún versions . Es posible que esto no esté configurado si se configuran remote_versions o 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_visionos_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 de Xcode.
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_visionos_sdk_version
|
visionos_sdk_version anulará el valor especificado aquí.
|
default_watchos_sdk_version
|
watchos_sdk_version anulará el valor especificado aquí.
|
version
|
|