Reglas
j2objc_library
Ver la 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 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 con 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, el código generado se quita de duplicados a nivel del destino, no del código fuente. Si tienes dos objetivos de Java diferentes que incluyen los mismos archivos fuente de Java, es posible que veas un error de símbolo duplicado en el tiempo de vinculación. La forma correcta de resolver este problema es mover los archivos de origen de Java compartidos a un objetivo común independiente del que se pueda depender.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
deps
|
Es una lista de etiquetas. El valor predeterminado es j2objc_library , java_library , java_import y java_proto_library que contienen archivos Java para transpilarlos a Objective-C.
Se traducirán y compilarán todos los destinos La traducción de J2ObjC funciona de manera diferente según el tipo de archivos fuente de Java que se incluyen en la clausura transitiva. Para 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 a la raíz de los artefactos de Java originales. Por ejemplo,
Si las reglas de proto_library están en el cierre transitivo de esta regla, los protos de J2ObjC también se generarán, compilarán y vincularán a nivel binario. Para proto |
entry_classes
|
Es una lista de cadenas. El valor predeterminado es --j2objc_dead_code_removal
está activada. Las clases de Java deben especificarse con 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 recopilará de forma transitiva y se usará como puntos de entrada para realizar el análisis de código muerto.
Luego, se quitarán las clases que no se usen del paquete de app de ObjC final.
|
jre_deps
|
Es una lista de etiquetas. El valor predeterminado es j2objc_library . Solo la funcionalidad principal de JRE está vinculada de forma predeterminada.
|
objc_import
Ver la fuente de la reglaobjc_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)
Esta regla encapsula una biblioteca estática ya compilada en forma de un archivo .a
. También permite exportar encabezados y recursos con los mismos atributos que admite objc_library
.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
deps
|
Es una lista de etiquetas. El valor predeterminado es |
hdrs
|
Es una lista de etiquetas. El valor predeterminado es Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para que las fuentes los incluyan en esta regla o en reglas dependientes. Los encabezados que no están destinados a ser incluidos por un cliente de esta biblioteca deben aparecer en el atributo srcs. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
Es un valor booleano; el valor predeterminado es srcs y non_arc_srcs , incluso si algunos no contienen símbolos a los que hace referencia el binario.
Esto es útil si el código en el objeto binario no llama explícitamente a tu código, p.ej., si tu código se registra para recibir alguna devolución de llamada que proporciona algún servicio.
|
archives
|
Es una lista de etiquetas obligatoria. Es la lista de archivos.a proporcionados a los destinos de Objective-C que dependen de este destino.
|
includes
|
Es una lista de cadenas. El valor predeterminado es #include/#import que se agregarán a este objetivo y a todos los objetivos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no especifican toda la ruta de acceso del espacio de trabajo en sus sentencias #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y se incluyen las raíces de genfiles y bin (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y 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 marcas “-iquote” a COPTS. |
sdk_dylibs
|
Es una lista de cadenas. El valor predeterminado es |
sdk_frameworks
|
Es una lista de cadenas. El valor predeterminado es Cuando se vincula un binario de Apple de nivel superior, se vinculan todos los frameworks de SDK que se enumeran en el gráfico de dependencias transitivas de ese binario. |
sdk_includes
|
Es una lista de cadenas. El valor predeterminado es #include/#import que se agregarán a este destino y a todos los destinos dependientes, en los que cada ruta de acceso es relativa a $(SDKROOT)/usr/include .
|
textual_hdrs
|
Es una lista de etiquetas. El valor predeterminado es |
weak_sdk_frameworks
|
Es una lista de cadenas. El valor predeterminado es |
objc_library
Ver la 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, 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)
Esta regla produce una biblioteca estática a partir de los archivos de origen de Objective-C determinados.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
deps
|
Es una lista de etiquetas. El valor predeterminado es |
srcs
|
Es una lista de etiquetas. El valor predeterminado es |
hdrs
|
Es una lista de etiquetas. El valor predeterminado es Estos encabezados describen la interfaz pública de la biblioteca y estarán disponibles para que las fuentes los incluyan en esta regla o en reglas dependientes. Los encabezados que no están destinados a ser incluidos por un cliente de esta biblioteca deben aparecer en el atributo srcs. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
Es un valor booleano; el valor predeterminado es srcs y non_arc_srcs , incluso si algunos no contienen símbolos a los que hace referencia el binario.
Esto es útil si el código en el objeto binario no llama explícitamente a tu código, p.ej., si tu código se registra para recibir alguna devolución de llamada que proporciona algún servicio.
|
copts
|
Es una lista de cadenas. El valor predeterminado es Ten en cuenta que, para el proyecto Xcode generado, las rutas de acceso de directorio especificadas con marcas "-I" en copts se analizan, se anteponen con "$(WORKSPACE_ROOT)/" si son rutas de acceso relativas y se agregan a las rutas de acceso de búsqueda de encabezados para el destino de Xcode asociado. |
defines
|
Es una lista de cadenas. El valor predeterminado es -D adicionales para pasar al compilador. Deben estar en el formato KEY=VALUE o simplemente KEY y se pasan no solo al compilador de este destino (como lo hacen copts ), sino también a todos los elementos objc_ que dependen de este destino.
Sujeto a la sustitución de "Make variable" y la tokenización de Bourne shell.
|
enable_modules
|
Es un valor booleano; el valor predeterminado es |
implementation_deps
|
Es una lista de etiquetas. El valor predeterminado es deps , los encabezados y las rutas de inclusión de estas bibliotecas (y todas sus dependencias transitivas) solo se usan para la compilación de esta biblioteca, no para las bibliotecas que dependen de ella. Las bibliotecas especificadas con implementation_deps aún están vinculadas en los destinos binarios que dependen de esta biblioteca.
|
includes
|
Es una lista de cadenas. El valor predeterminado es #include/#import que se agregarán a este objetivo y a todos los objetivos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no especifican toda la ruta de acceso del espacio de trabajo en sus sentencias #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y se incluyen las raíces de genfiles y bin (p.ej., A diferencia de COPTS, estas marcas se agregan para esta regla y 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 marcas “-iquote” a COPTS. |
linkopts
|
Es una lista de cadenas. El valor predeterminado es |
module_map
|
Etiqueta (Label); el valor predeterminado es |
module_name
|
Cadena; el valor predeterminado es |
non_arc_srcs
|
Es una lista de etiquetas. El valor predeterminado es |
pch
|
Etiqueta (Label); el valor predeterminado es |
sdk_dylibs
|
Es una lista de cadenas. El valor predeterminado es |
sdk_frameworks
|
Es una lista de cadenas. El valor predeterminado es Cuando se vincula un binario de Apple de nivel superior, se vinculan todos los frameworks de SDK que se enumeran en el gráfico de dependencias transitivas de ese binario. |
sdk_includes
|
Es una lista de cadenas. El valor predeterminado es #include/#import que se agregarán a este destino y a todos los destinos dependientes, en los que cada ruta de acceso es relativa a $(SDKROOT)/usr/include .
|
textual_hdrs
|
Es una lista de etiquetas. El valor predeterminado es |
weak_sdk_frameworks
|
Es una lista de cadenas. El valor predeterminado es |
available_xcodes
Ver la fuente de la reglaavailable_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 de los Xcodes disponibles de forma colectiva.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
default
|
Etiqueta; no configurable; obligatorio Es la versión predeterminada de Xcode para esta plataforma. |
versions
|
Es una lista de etiquetas no configurables. El valor predeterminado es |
xcode_config
Ver la fuente de la reglaxcode_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 objetivo de esta regla para traducir la marca --xcode_version
en una versión oficial aceptada de Xcode.
Esto permite seleccionar una versión oficial de Xcode entre una serie de alias registrados.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
default
|
Etiqueta; no configurable; el valor predeterminado es xcode_version proporcionado si no se especifica ninguna marca de compilación xcode_version . Esto es obligatorio si se configura algún versions . Es posible que no se establezca si se establece remote_versions o local_versions .
|
local_versions
|
Etiqueta; no configurable; el valor predeterminado es xcode_version que están disponibles a nivel local
Se usan junto con local_versions para seleccionar una versión mutuamente disponible. Es posible que no se establezca si se establece versions .
|
remote_versions
|
Etiqueta; no configurable; el valor predeterminado es xcode_version que están disponibles de forma remota
Se usan junto con remote_versions para seleccionar una versión mutuamente disponible. Es posible que no se establezca si se establece versions .
|
versions
|
Es una lista de etiquetas no configurables. El valor predeterminado es xcode_version aceptados que se pueden usar.
Si el valor de la marca de compilación xcode_version coincide con uno de los alias o el número de versión de cualquiera de los destinos xcode_version determinados, se usará el destino coincidente. Es posible que no se establezca si se establece remote_versions o local_versions .
|
xcode_version
Ver la fuente de la reglaxcode_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 sola versión oficial de Xcode con alias aceptables para esa versión.
Consulta la regla xcode_config
.
Argumentos
Atributos | |
---|---|
name |
Nombre: Obligatorio Un nombre único para este objetivo. |
default_ios_sdk_version
|
Cadena; no configurable; el valor predeterminado es ios_sdk_version anulará el valor especificado aquí.
|
default_macos_sdk_version
|
Cadena; no configurable; el valor predeterminado es macos_sdk_version anulará el valor especificado aquí.
|
default_tvos_sdk_version
|
Cadena; no configurable; el valor predeterminado es tvos_sdk_version anulará el valor especificado aquí.
|
default_visionos_sdk_version
|
Cadena; no configurable; el valor predeterminado es visionos_sdk_version anulará el valor especificado aquí.
|
default_watchos_sdk_version
|
Cadena; no configurable; el valor predeterminado es watchos_sdk_version anulará el valor especificado aquí.
|
version
|
Cadena; no configurable; obligatoria Es el número de versión oficial de una versión de Xcode. |