Reglas
j2objc_library
Ver el código fuente de la reglaj2objc_library(name, deps, compatible_with, deprecation, distribs, entry_classes, exec_compatible_with, exec_properties, features, jre_deps, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Esta regla usa J2ObjC para traducir archivos de origen de Java a Objective-C, que luego se puede 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 J2ObjC personalizadas se pueden especificar mediante 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, que es la misma que la de 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 del fuente. Si tienes dos destinos de Java diferentes 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 destino común separado en el que se pueda confiar.
Argumentos
Atributos | |
---|---|
name |
Name; obligatorio Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es 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 destinos La traducción de J2ObjC funciona de manera diferente según el tipo de archivos fuente Java de origen 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,
Si las reglas proto_library se encuentran en el cierre transitivo de esta regla, los protos J2ObjC también se generarán, compilarán y vincularán a nivel binario. Para |
entry_classes
|
Lista de cadenas; el valor predeterminado es --j2objc_dead_code_removal
está activada. Las clases de Java deben especificarse en sus nombres canónicos, como se define en la especificación de 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 no alcanzado.
Luego, las clases no usadas se quitarán del paquete de aplicación ObjC final.
|
jre_deps
|
Lista de etiquetas; el valor predeterminado es j2objc_library . Solo la funcionalidad principal de JRE está vinculada de forma predeterminada.
|
objc_import
Ver el código fuente de la reglaobjc_import(name, deps, hdrs, alwayslink, archives, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, includes, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, tags, target_compatible_with, testonly, textual_hdrs, toolchains, 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 |
Name; obligatorio Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es |
hdrs
|
Lista de etiquetas; el valor predeterminado es 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. Los encabezados que no sean incluidos por un cliente de esta biblioteca se deben enumerar en el atributo srcs en su lugar. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
Booleano; el valor predeterminado es srcs y non_arc_srcs , incluso si algunos no contienen símbolos 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 se registra para recibir alguna devolución de llamada que proporciona algún servicio.
|
archives
|
Lista de etiquetas; obligatorio Es la lista de archivos.a proporcionados a los objetivos de Objective-C que dependen de este destino.
|
includes
|
Lista de cadenas; el valor predeterminado es #include/#import para agregar a este destino y todos los destinos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no especifican la ruta de acceso completa del espacio de trabajo en sus sentencias #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y las raíces gen. y bin (p. ej., A diferencia de COPTS, estas marcas se agregan para esta regla y cada regla que depende de ella. (Nota: No depende de las reglas de las que depende). Ten mucho cuidado, ya que esto puede tener efectos de largo alcance. Si tienes dudas, agrega marcas "-iquote" a COPTS. |
sdk_dylibs
|
Lista de cadenas; el valor predeterminado es |
sdk_frameworks
|
Lista de cadenas; el valor predeterminado es 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 dependencia transitivo de ese objeto binario. |
sdk_includes
|
Lista de cadenas; el valor predeterminado es #include/#import para agregar a este destino y todos los destinos dependientes, en los que cada ruta está relacionada con $(SDKROOT)/usr/include .
|
textual_hdrs
|
Lista de etiquetas; el valor predeterminado es |
weak_sdk_frameworks
|
Lista de cadenas; el valor predeterminado es |
objc_library
Ver el código 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, linkopts, module_map, module_name, non_arc_srcs, pch, restricted_to, sdk_dylibs, sdk_frameworks, sdk_includes, stamp, 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 |
Name; obligatorio Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es |
srcs
|
Lista de etiquetas; el valor predeterminado es |
hdrs
|
Lista de etiquetas; el valor predeterminado es 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. Los encabezados que no sean incluidos por un cliente de esta biblioteca se deben enumerar en el atributo srcs en su lugar. Se compilarán por separado de la fuente si los módulos están habilitados. |
alwayslink
|
Booleano; el valor predeterminado es srcs y non_arc_srcs , incluso si algunos no contienen símbolos 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 se registra para recibir alguna devolución de llamada que proporciona algún servicio.
|
copts
|
Lista de cadenas; el valor predeterminado es Ten en cuenta que, en el proyecto de Xcode generado, las rutas de acceso a directorios 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 búsqueda del encabezado para el destino de Xcode asociado. |
defines
|
Lista de cadenas; el valor predeterminado es -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_ dependientes de este objetivo.
Sujeto a la sustitución "Make variable" y a la asignación de token de shell de Bourne.
|
enable_modules
|
Booleano; el valor predeterminado es |
implementation_deps
|
Lista de etiquetas; el valor predeterminado es deps , los encabezados y las rutas de acceso de inclusión de estas bibliotecas (y todas sus dependencias transitivas) solo se usan para la compilación de esta biblioteca, y no para las bibliotecas que dependen de ella. Las bibliotecas especificadas con implementation_deps siguen vinculadas en objetivos binarios que dependen de ella.
|
includes
|
Lista de cadenas; el valor predeterminado es #include/#import para agregar a este destino y todos los destinos dependientes.
Esto es para admitir bibliotecas de terceros y de código abierto que no especifican la ruta de acceso completa del espacio de trabajo en sus sentencias #import/#include .
Las rutas de acceso se interpretan en relación con el directorio del paquete, y las raíces gen. y bin (p. ej., A diferencia de COPTS, estas marcas se agregan para esta regla y cada regla que depende de ella. (Nota: No depende de las reglas de las que depende). Ten mucho cuidado, ya que esto puede tener efectos de largo alcance. Si tienes dudas, agrega marcas "-iquote" a COPTS. |
linkopts
|
Lista de cadenas; el valor predeterminado es |
module_map
|
Etiqueta; el valor predeterminado es |
module_name
|
String; el valor predeterminado es |
non_arc_srcs
|
Lista de etiquetas; el valor predeterminado es |
pch
|
Etiqueta; el valor predeterminado es |
sdk_dylibs
|
Lista de cadenas; el valor predeterminado es |
sdk_frameworks
|
Lista de cadenas; el valor predeterminado es 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 dependencia transitivo de ese objeto binario. |
sdk_includes
|
Lista de cadenas; el valor predeterminado es #include/#import para agregar a este destino y todos los destinos dependientes, en los que cada ruta está relacionada con $(SDKROOT)/usr/include .
|
stamp
|
Booleano; el valor predeterminado es |
textual_hdrs
|
Lista de etiquetas; el valor predeterminado es |
weak_sdk_frameworks
|
Lista de cadenas; el valor predeterminado es |