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 dicionário 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 só podem ser computados na 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
|
sequence 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 de rótulo 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. Se --incompatible_resolve_select_keys_eagerly estiver ativado, as chaves serão resolvidas em objetos Label relativos ao pacote do arquivo que contém essa chamada para select .
|
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. |