Métodos disponíveis em arquivos BUILD. Consulte também a Build Encyclopedia para ver mais funções e regras de build, que também podem ser usadas em arquivos BUILD.
Membros
- depset
- existing_rule
- existing_rules
- exports_files
- glob
- module_name
- module_version
- package
- package_default_visibility
- package_group
- package_name
- package_relative_label
- repo_name
- repository_name
- selecione
- subpackages
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
é uma lista de elementos diretos do conjunto de dependências, e o parâmetro transitive
é uma lista de conjuntos de dependências cujos elementos se tornam elementos indiretos do conjunto de dependências criado. A ordem em que os elementos são retornados quando o conjunto de dependências é convertido em uma lista é especificada pelo parâmetro order
. Consulte a Visão geral dos depsets para mais informações.
Todos os elementos (diretos e indiretos) de um conjunto de dependências precisam ser do mesmo tipo, conforme obtido pela expressão type(x)
.
Como um conjunto baseado em hash é usado para eliminar duplicatas durante a iteração, todos os elementos de um conjunto de dependências precisam ser hasháveis. No entanto, essa invariante não é verificada de forma consistente em todos os construtores. Use a flag --incompatible_always_check_depset_elements para ativar a verificação consistente. Esse será o comportamento padrão em versões futuras. Consulte Problema 10313.
Além disso, os elementos precisam ser imutáveis, mas essa restrição será reduzida no futuro.
A ordem do conjunto de dependências criado precisa ser compatível com a ordem dos conjuntos de dependências transitive
. A ordem "default"
é compatível com qualquer outra ordem, e todas as outras são compatíveis apenas entre si.
Parâmetros
Parâmetro | Descrição |
---|---|
direct
|
sequence ou None ; o padrão é None . Uma lista de elementos diretos de um conjunto de dependências. |
order
|
string;
o padrão é "default" A estratégia de travessia para o novo conjunto de dependências. Consulte aqui os valores possíveis. |
transitive
|
sequência de depsets ou None ; o padrão é None . Uma lista de depsets cujos elementos se tornarão elementos indiretos do depset. |
existing_rule
unknown existing_rule(name)
None
se não houver uma instância de regra com esse nome.Aqui, um objeto imutável semelhante a um dicionário significa um objeto profundamente imutável x
que oferece suporte à iteração semelhante a um dicionário, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
e x.values()
.
O resultado contém uma entrada para cada atributo, exceto os particulares (cujos nomes não começam com uma letra) e alguns tipos de atributos legados não representáveis. Além disso, o dict contém entradas para name
e kind
da instância da regra (por exemplo, 'cc_binary'
).
Os valores do resultado representam valores de atributos da seguinte forma:
- Atributos do tipo str, int e bool são representados como estão.
- Os rótulos são convertidos em strings do formato
':foo'
para destinos no mesmo pacote ou'//pkg:name'
para destinos em um pacote diferente. - As listas são representadas como tuplas, e os dicionários são convertidos em novos dicionários mutáveis. Os elementos deles são convertidos recursivamente da mesma forma.
- Os valores de
select
são retornados com o conteúdo transformado conforme descrito acima. - Os atributos para os quais nenhum valor foi especificado durante a instanciação da regra e cujo valor padrão é calculado são excluídos do resultado. Os padrões calculados não podem ser computados até a fase de análise.
Se possível, use essa função apenas em funções de implementação de macros simbólicas finalizadoras de regras. O uso dessa função em outros contextos não é recomendado e será desativado em uma versão futura do Bazel. Isso torna os arquivos BUILD
frágeis e dependentes da ordem. Além disso, ele difere sutilmente das outras duas conversões de valores de atributos de regra do formulário interno para Starlark: uma usada por padrões calculados e a outra usada por ctx.attr.foo
.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
string;
required O nome do destino. |
existing_rules
unknown existing_rules()
existing_rule(name)
.Aqui, um objeto imutável semelhante a um dicionário significa um objeto profundamente imutável x
que oferece suporte à iteração semelhante a um dicionário, len(x)
, name in x
, x[name]
, x.get(name)
, x.items()
, x.keys()
e x.values()
.
Se possível, use essa função apenas em funções de implementação de macros simbólicas finalizadoras de regras. O uso dessa função em outros contextos não é recomendado e será desativado em uma versão futura do Bazel. Isso torna os arquivos BUILD
frágeis e dependentes da ordem.
exports_files
None
exports_files(srcs, visibility=None, licenses=None)
Parâmetros
Parâmetro | Descrição |
---|---|
srcs
|
sequence de strings;
required A lista de arquivos a serem exportados. |
visibility
|
sequence ou None . O padrão é None . Uma declaração de visibilidade pode ser especificada. Os arquivos vão ficar visíveis para os destinos especificados. Se nenhuma visibilidade for especificada, os arquivos vão ficar visíveis para todos os pacotes. |
licenses
|
sequência de strings ou None . O padrão é None . Licenças a serem especificadas. |
glob
sequence glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- Corresponde a pelo menos um padrão em
include
. - Não corresponde a nenhum dos padrões em
exclude
(padrão[]
).
exclude_directories
estiver ativado (definido como 1
), os arquivos do tipo diretório serão omitidos dos resultados (padrão 1
).
Parâmetros
Parâmetro | Descrição |
---|---|
include
|
sequence de strings;
o padrão é [] A lista de padrões glob a serem incluídos. |
exclude
|
sequence de strings;
o padrão é [] A lista de padrões glob a serem excluídos. |
exclude_directories
|
int;
o padrão é 1 Uma flag que indica se os diretórios devem ser excluídos ou não. |
allow_empty
|
O padrão é unbound Define se permitimos que padrões glob não correspondam a nada. Se "allow_empty" for False, cada padrão de inclusão individual precisará corresponder a algo, e o resultado final não poderá estar vazio (depois que as correspondências dos padrões de exclusão forem excluídas). |
module_name
string module_name()
module.name
visto em module_ctx.modules
.
Pode retornar None
.
module_version
string module_version()
module.version
visto em module_ctx.modules
.
Pode retornar None
.
pacote
unknown package(**kwargs)
load()
.
Parâmetros
Parâmetro | Descrição |
---|---|
kwargs
|
obrigatório Consulte a função package() na Enciclopédia de build para ver os argumentos aplicáveis.
|
package_default_visibility
List package_default_visibility()
default_visibility
de package()
, estendido para incluir o próprio pacote.
package_group
None
package_group(name, packages=[], includes=[])
visibility
.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
string;
required O nome exclusivo dessa regra. |
packages
|
sequência de strings;
o padrão é [] Uma enumeração completa de pacotes neste grupo. |
includes
|
sequência de strings; o padrão é [] Outros grupos de pacotes incluídos neste. |
package_name
string package_name()
some/package/BUILD
, o valor será some/package
. Se o arquivo BUILD chamar uma função definida em um arquivo .bzl, package_name()
vai corresponder ao pacote do arquivo BUILD de chamada. O valor será sempre uma string vazia para o pacote raiz.
package_relative_label
Label package_relative_label(input)
BUILD
para o qual a macro atual está sendo executada). Se a entrada já for um Label
, ela será retornada sem alterações.Essa função só pode ser chamada ao avaliar um arquivo BUILD e as macros que ele chama direta ou indiretamente. Ela não pode ser chamada, por exemplo, em uma função de implementação de regra.
O resultado dessa função é o mesmo valor Label
que seria produzido ao transmitir a string especificada a um atributo com valor de rótulo de um destino declarado no arquivo BUILD.
Observação de uso:a diferença entre essa função e Label() é que Label()
usa o contexto do pacote do arquivo .bzl
que o chamou, não o pacote do arquivo BUILD
. Use Label()
quando precisar se referir a uma meta fixa codificada na macro, como um compilador. Use package_relative_label()
quando precisar normalizar uma string de rótulo fornecida pelo arquivo BUILD para um objeto Label
. Não há como converter uma string em um Label
no contexto de um pacote que não seja o arquivo BUILD ou o arquivo .bzl de chamada. Por isso, as macros externas sempre preferem transmitir objetos "Label" para macros internas em vez de strings de rótulo.)
Parâmetros
Parâmetro | Descrição |
---|---|
input
|
string ou Label;
required A string de rótulo de entrada ou o objeto Label. Se um objeto de rótulo for transmitido, ele será retornado como está. |
repo_name
string repo_name()
repository_name
string repository_name()
--+incompatible_enable_deprecated_label_apis
Descontinuado. Prefira usar
repo_name
, que não contém o sinal de arroba inicial espúrio, mas se comporta de maneira idêntica.O nome canônico do repositório que contém o pacote em avaliação, com um único arroba (@
) como prefixo. Por exemplo, em pacotes que são chamados pela estrofe WORKSPACE local_repository(name='local', path=...)
, ele será definido como @local
. Em pacotes no repositório principal, ele será definido como @
.
selecionar
unknown select(x, no_match_error='')
select()
é a função auxiliar que torna um atributo de regra configurável. Consulte a enciclopédia de builds para mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
dict;
required Um dicionário que mapeia condições de configuração para valores. Cada chave é um rótulo ou uma string de rótulo que identifica uma instância de config_setting ou constraint_value. Consulte a documentação sobre macros para saber quando usar um rótulo em vez de uma string. |
no_match_error
|
string;
o padrão é '' Erro personalizado opcional a ser informado se nenhuma condição corresponder. |
subpacotes
sequence subpackages(include, exclude=[], allow_empty=False)
Parâmetros
Parâmetro | Descrição |
---|---|
include
|
sequence de strings;
required A lista de padrões glob a serem incluídos na verificação de subpacotes. |
exclude
|
sequence de strings;
o padrão é [] A lista de padrões glob a serem excluídos da verificação de subpacotes. |
allow_empty
|
bool;
o padrão é False Se vamos falhar se a chamada retornar uma lista vazia. Por padrão, uma lista vazia indica um possível erro no arquivo BUILD, em que a chamada para subpackages() é supérflua. Definir como "true" permite que essa função seja bem-sucedida nesse caso. |