Métodos disponibles en los archivos BUILD. Consulta también la Enciclopedia de compilación para obtener funciones y reglas de compilación adicionales, que también se pueden usar en archivos BUILD.
Miembros
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- seleccionar
- subpaquetes
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
es una lista de elementos directos del conjunto de dependencias, y el parámetro transitive
es una lista de conjuntos de dependencias cuyos elementos se convierten en elementos indirectos del conjunto de dependencias creado. El orden en el que se muestran los elementos cuando el conjunto de dependencias se convierte en una lista se especifica con el parámetro order
. Consulta la descripción general de los conjuntos de dependencias para obtener más información.
Todos los elementos (directos e indirectos) de un conjunto de dependencias deben ser del mismo tipo, como se obtiene con la expresión type(x)
.
Dado que se usa un conjunto basado en hash para eliminar duplicados durante la iteración, todos los elementos de un conjunto de dependencias deben poder generar un hash. Sin embargo, actualmente, esta invariante no se verifica de manera coherente en todos los constructores. Usa la marca --incompatible_always_check_depset_elements para habilitar una verificación coherente. Este será el comportamiento predeterminado en versiones futuras. Consulta el problema 10313.
Además, los elementos deben ser inmutables, aunque esta restricción se relajará en el futuro.
El orden del conjunto de dependencias creado debe ser compatible con el orden de sus conjuntos de dependencias transitive
. El pedido "default"
es compatible con cualquier otro pedido, y todos los demás pedidos solo son compatibles entre sí.
Parámetros
Parámetro | Descripción |
---|---|
direct
|
sequence o None ;
el valor predeterminado es None Es una lista de elementos directos de un conjunto de dependencias. |
order
|
cadena;
el valor predeterminado es "default" Es la estrategia de recorrido para el nuevo conjunto de dependencias. Consulta aquí para conocer los valores posibles. |
transitive
|
secuencia de depset o None ;
El valor predeterminado es None Es una lista de depsets cuyos elementos se convertirán en elementos indirectos del depset. |
existing_rule
unknown existing_rule(name)
None
si no existe una instancia de regla con ese nombre.Aquí, un objeto inmutable similar a un diccionario significa un objeto x
profundamente inmutable que admite la iteración similar a un diccionario, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
y x.values()
.
El resultado contiene una entrada para cada atributo, a excepción de 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 atributo 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, usa esta función solo en las funciones de implementación de macros simbólicas del finalizador de reglas. No se recomienda el uso de esta función en otros contextos y se inhabilitará en una versión futura de Bazel. Esto hace que los archivos BUILD
sean frágiles y dependan del orden. Además, ten en cuenta que difiere sutilmente de las otras dos conversiones de valores de atributos de reglas del formato interno a Starlark: una que usan los valores predeterminados calculados y la otra que usa ctx.attr.foo
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
string; required El nombre del objetivo. |
existing_rules
unknown existing_rules()
existing_rule(name)
mostraría.Aquí, un objeto inmutable similar a un diccionario significa un objeto x
profundamente inmutable que admite la iteración similar a un diccionario, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
y x.values()
.
Si es posible, usa esta función solo en las funciones de implementación de macros simbólicas del finalizador de reglas. No se recomienda el uso de esta función en otros contextos y se inhabilitará en una versión futura de Bazel. Hace que los archivos BUILD
sean frágiles y dependen del orden.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
Parámetros
Parámetro | Descripción |
---|---|
srcs
|
secuencia de cadenas;
obligatorio Es la lista de archivos que se exportarán. |
visibility
|
secuencia o None ;
el valor predeterminado es None Se 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
|
secuencia de string o None . El valor predeterminado es None Licencias que se especificarán. |
glob
sequence 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
([]
predeterminado).
exclude_directories
está habilitado (configurado en 1
), se omitirán los archivos de tipo directorio de los resultados (1
predeterminado).
Parámetros
Parámetro | Descripción |
---|---|
include
|
secuencia de strings; el valor predeterminado es [] Es la lista de patrones glob que se incluirán. |
exclude
|
Secuencia de cadenas.
El valor predeterminado es [] . Es la lista de patrones glob que se excluirán. |
exclude_directories
|
int;
El valor predeterminado es 1 Es una marca que indica si se deben excluir directorios o no. |
allow_empty
|
El valor predeterminado es unbound Indica si permitimos que los patrones glob no coincidan con nada. Si "allow_empty" es False, cada patrón de inclusión individual debe coincidir con algo y el resultado final no debe estar vacío (después de que se excluyan las coincidencias de los patrones "exclude"). |
module_name
string module_name()
module.name
que se ve en module_ctx.modules
.
Puede mostrar None
.
module_version
string module_version()
module.version
que se ve en module_ctx.modules
.
Puede mostrar None
.
package_group
None
package_group(name, packages=[], includes=[])
visibility
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
cadena;
obligatorio Es el nombre único de esta regla. |
packages
|
Secuencia de cadenas.
El valor predeterminado es [] . Es una enumeración completa de los paquetes de este grupo. |
includes
|
Secuencia de cadenas.
El valor predeterminado es [] . Otros grupos de paquetes que se incluyen en este. |
package_name
string 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 del archivo BUILD del llamador.
package_relative_label
Label package_relative_label(input)
BUILD
para el que se ejecuta la macro actual). Si la entrada ya es un Label
, se muestra sin cambios.Solo se puede llamar a esta función mientras se evalúa un archivo BUILD y las macros que llama directa o indirectamente. No se la puede llamar (por ejemplo) en una función de implementación de reglas.
El resultado de esta función es el mismo valor Label
que se produciría si se pasara la cadena determinada a un atributo con valor de etiqueta de un destino declarado en el archivo BUILD.
Nota de uso: La diferencia entre esta función y Label() es que Label()
usa el contexto del paquete del archivo .bzl
que la llamó, no el paquete del archivo BUILD
. Usa Label()
cuando necesites hacer referencia a un objetivo fijo que esté codificado en la macro, como un compilador. Usa package_relative_label()
cuando necesites normalizar una cadena de etiqueta que proporciona el archivo BUILD a un objeto Label
. (No hay forma de convertir una cadena en un Label
en el contexto de un paquete que no sea el archivo BUILD o el archivo .bzl de llamada. Por esa razón, las macros externas siempre deben preferir pasar objetos Label a macros internas en lugar de cadenas de etiquetas.
Parámetros
Parámetro | Descripción |
---|---|
input
|
cadena o Etiqueta;
obligatorio Es la cadena de la etiqueta de entrada o el objeto Label. Si se pasa un objeto Label, se muestra tal como está. |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis
Obsoleto. En su lugar, prefiere usar
repo_name
, que no contiene el signo @ inicial falso, pero se comporta de manera idéntica en otros aspectos.Es el nombre canónico del repositorio que contiene el paquete que se está evaluando actualmente, con un solo signo @ (@
) como prefijo. Por ejemplo, en los paquetes que la estrofa local_repository(name='local', path=...)
de WORKSPACE, se establecerá como @local
. En los paquetes del repositorio principal, se establecerá como @
.
seleccionar
unknown select(x, no_match_error='')
select()
es la función auxiliar que hace que un atributo de regla sea configurable. Consulta la enciclopedia de compilaciones para obtener más detalles.
Parámetros
Parámetro | Descripción |
---|---|
x
|
dict; obligatorio Es un dict que asigna condiciones de configuración a los valores. Cada clave es una etiqueta o una cadena de etiqueta que identifica una instancia de config_setting o constraint_value. Consulta la documentación sobre macros para saber cuándo usar una etiqueta en lugar de una cadena. |
no_match_error
|
string; el valor predeterminado es '' Es un error personalizado opcional para informar si no coincide ninguna condición. |
subpaquetes
sequence subpackages(include, exclude=[], allow_empty=False)
Parámetros
Parámetro | Descripción |
---|---|
include
|
secuencia de cadenas;
obligatorio Es la lista de patrones glob que se incluirán en el análisis de subpaquetes. |
exclude
|
Secuencia de cadenas.
El valor predeterminado es [] . Es la lista de patrones glob que se excluirán del análisis de subpaquetes. |
allow_empty
|
bool; el valor predeterminado es False Indica 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 superflua. Establecer el valor en verdadero permite que esta función se ejecute correctamente en ese caso. |