native.cc_library
Ten en cuenta que el módulo nativo solo está disponible en la fase de carga (es decir, para macros, no para implementaciones de reglas). Los atributos ignorarán los valores None
y los tratarán como si no se hubiera establecido el atributo.Las siguientes funciones también están disponibles:
Miembros
- existing_rule
- existing_rules
- exports_files
- glob
- package_group
- package_name
- repository_name
- subpaquetes
existing_rule
unknown native.existing_rule(name)
None
si no existe una instancia de regla con ese nombre.En este caso, un objeto inmutable similar a un dict significa un objeto profundamente inmutable x
que admite iteraciones similares a las de un diccionario: len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
y x.values()
.
Si se establece la marca --noincompatible_existing_rules_immutable_view
, en su lugar, muestra un nuevo dict mutable con el mismo contenido.
El resultado contiene una entrada para cada atributo, excepto los privados (cuyos nombres no comienzan con una letra) y algunos tipos de atributos heredados que no se pueden representar. Además, contiene entradas para name
y kind
de la instancia de la regla (por ejemplo, 'cc_binary'
).
Los valores del resultado representan los valores de los atributos de la siguiente manera:
- Los atributos de tipo str, int y bool se representan tal como están.
- Las etiquetas se convierten en cadenas con el formato
':foo'
para destinos en el mismo paquete o'//pkg:name'
para destinos en un paquete diferente. - Las listas se representan como tuplas, y los diccionarios se convierten en diccionarios nuevos y mutables. Sus elementos se convierten de manera recurrente de la misma manera.
- Los valores de
select
se muestran con su contenido transformado como se describió anteriormente. - Se excluyen del resultado los atributos para los que no se especificó ningún valor durante la creación de instancias de la regla y cuyo valor predeterminado se calcula. (Los valores predeterminados calculados no se pueden calcular hasta la fase de análisis).
Si es posible, evita usar esta función. Hace que los archivos BUILD se vuelvan frágiles y dependen del orden. Además, ten en cuenta que difiere sutilmente de las otras dos conversiones de valores de atributos de reglas de formato interno a Starlark: una se usa por valores predeterminados calculados y la otra se usa por ctx.attr.foo
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
obligatorio El nombre del destino. |
existing_rules
unknown native.existing_rules()
existing_rule(name)
.En este caso, un objeto inmutable similar a un dict significa un objeto profundamente inmutable x
que admite iteraciones similares a las de un diccionario: len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
y x.values()
.
Si se establece la marca --noincompatible_existing_rules_immutable_view
, en su lugar, muestra un nuevo dict mutable con el mismo contenido.
Nota: Si es posible, evita usar esta función. Hace que los archivos BUILD se vuelvan frágiles y dependen del orden. Además, si se establece la marca --noincompatible_existing_rules_immutable_view
, esta función puede ser muy costosa, en especial si se la llama dentro de un bucle.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)
Parámetros
Parámetro | Descripción |
---|---|
srcs
|
sequence of strings ;
obligatorioLa lista de archivos para exportar. |
visibility
|
sequence; or None ;
predeterminado = NingunoSe puede especificar una declaración de visibilidad. Los archivos serán visibles para los destinos especificados. Si no se especifica la visibilidad, los archivos serán visibles para todos los paquetes. |
licenses
|
sequence of strings; or None ;
predeterminado = NingunoLicencias que se especificarán. |
glob
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- Coincide con al menos un patrón en
include
. - No coincide con ninguno de los patrones de
exclude
(valor predeterminado:[]
).
exclude_directories
(configurado en 1
), los archivos de tipo de directorio se omitirán de los resultados (valor predeterminado: 1
).
Parámetros
Parámetro | Descripción |
---|---|
include
|
sequence of strings ;
predeterminado = []La lista de patrones glob que se incluirán. |
exclude
|
sequence of strings ;
predeterminado = []La lista de patrones glob que se excluirán. |
exclude_directories
|
predeterminado = 1 Una marca para excluir directorios o no. |
allow_empty
|
predeterminado = no delimitado Si permitimos que los patrones glob no coincidan con nada. Si `allow_empty` es falso, cada patrón de inclusión individual debe coincidir con algún elemento y también el resultado final no debe estar vacío (después de excluir las coincidencias de los patrones `excluir`). |
package_group
None native.package_group(name, packages=[], includes=[])
visibility
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
obligatorio El nombre único de esta regla. |
packages
|
sequence of strings ;
predeterminado = []Una enumeración completa de los paquetes en este grupo. |
includes
|
sequence of strings ;
predeterminado = []Otros grupos de paquetes que se incluyen en este. |
package_name
string native.package_name()
some/package/BUILD
, su valor será some/package
. Si el archivo Build llama a una función definida en un archivo .bzl, package_name()
coincidirá con el paquete de archivos BUILD del llamador. Esta función es equivalente a la variable obsoleta PACKAGE_NAME
.
repository_name
string native.repository_name()
local_repository(name='local', path=...)
de WORKSPACE, se establecerá como @local
. En los paquetes del repositorio principal, se establecerá como @
. Esta función es equivalente a la variable obsoleta REPOSITORY_NAME
.
subpaquetes
sequence native.subpackages(include, exclude=[], allow_empty=False)
Parámetros
Parámetro | Descripción |
---|---|
include
|
sequence of strings ;
obligatorioLa lista de patrones glob que se incluirán en el análisis de subpaquetes. |
exclude
|
sequence of strings ;
predeterminado = []La lista de patrones glob que se excluirán del análisis de subpaquetes. |
allow_empty
|
predeterminado = Falso Si se produce un error si la llamada muestra una lista vacía De forma predeterminada, la lista vacía indica un posible error en el archivo BUILD, en el que la llamada a subpackages() es superflous. Establecer el valor en verdadero permite que esta función se ejecute correctamente en ese caso. |