Métodos globais disponíveis em todos os arquivos .bzl.
Membros
- analysis_test_transition
- aspecto
- configuration_field
- depset
- exec_group
- module_extension
- provedor
- repository_rule
- regra
- Selecione
- sub-regra
- tag_class
- visibilidade
analysis_test_transition
transition analysis_test_transition(settings)
Cria uma transição de configuração a ser aplicada às dependências de uma regra de teste de análise. Esta transição só pode ser aplicada em atributos de regras com analysis_test = True
. Essas regras têm recursos limitados (por exemplo, o tamanho da árvore de dependências é limitado). Portanto, as transições criadas usando essa função têm um escopo potencial limitado em comparação com as transições criadas usando transition()
.
Essa função foi projetada principalmente para facilitar a biblioteca principal do framework de teste de análise (em inglês). Consulte a documentação (ou implementação) dele para conhecer as práticas recomendadas.
Parâmetros
Parâmetro | Descrição |
---|---|
settings
|
obrigatório Um dicionário contendo informações sobre as definições de configuração que devem ser definidas por essa transição de configuração. As chaves são rótulos de configuração de build, e os valores são os novos valores pós-transição. Todas as outras configurações não foram alteradas. Use-o para declarar definições de configuração específicas que um teste de análise requer que seja definido para ser aprovado. |
aspecto
Aspect aspect(implementation, attr_aspects=[], attrs={}, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None, subrules=[])Cria um novo aspecto. O resultado dessa função precisa ser armazenado em um valor global. Consulte a introdução aos aspectos para mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório Uma função do Starlark que implementa esse aspecto, com exatamente dois parâmetros: Target (o destino ao qual o aspecto é aplicado) e ctx (o contexto da regra de onde o destino é criado). Os atributos do destino estão disponíveis no campo ctx.rule . Essa função é avaliada durante a fase de análise para cada aplicação de um aspecto em um objetivo.
|
attr_aspects
|
sequência de strings
o padrão é [] Lista de nomes de atributos. O aspecto é propagado com as dependências especificadas nos atributos de um destino com esses nomes. Os valores comuns aqui incluem deps e exports . A lista também pode conter uma única string "*" para ser propagada em todas as dependências de um destino.
|
attrs
|
dict;
o padrão é {} Um dicionário declarando todos os atributos do aspecto. Ele é mapeado de um nome de atributo para um objeto de atributo, como `attr.label` ou `attr.string` (consulte o módulo attr). Os atributos de aspecto estão disponíveis para a implementação funcionar como campos do parâmetro ctx . Atributos implícitos que começam com Os atributos explícitos precisam ser do tipo |
required_providers
|
o padrão é [] Esse atributo permite que o aspecto limite sua propagação apenas aos destinos cujas regras anunciam os provedores necessários. O valor precisa ser uma lista que contenha provedores individuais ou listas de provedores, mas não ambos. Por exemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] é um valor válido, mas [FooInfo, BarInfo, [BazInfo, QuxInfo]] não.Uma lista de provedores não aninhados será automaticamente convertida em uma lista com uma lista de provedores. Ou seja, Para tornar algumas regras (por exemplo, |
required_aspect_providers
|
o padrão é [] Esse atributo permite que esse aspecto inspecione outros aspectos. O valor precisa ser uma lista que contenha provedores individuais ou listas de provedores, mas não ambos. Por exemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] é um valor válido, mas [FooInfo, BarInfo, [BazInfo, QuxInfo]] não.Uma lista de provedores não aninhados será automaticamente convertida em uma lista com uma lista de provedores. Ou seja, Para tornar outro aspecto (por exemplo, |
provides
|
o padrão é [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir do valor de retorno qualquer um dos tipos de provedores listados aqui. No entanto, a função de implementação pode retornar provedores adicionais não listados aqui. Cada elemento da lista é um objeto |
requires
|
sequência de aspectos;
o padrão é [] Lista de aspectos que precisam ser propagados antes deste aspecto. |
fragments
|
sequência de strings
o padrão é [] Lista de nomes de fragmentos de configuração que o aspecto exige na configuração de destino. |
host_fragments
|
sequência de strings
o padrão é [] Lista de nomes de fragmentos de configuração que o aspecto exige na configuração do host. |
toolchains
|
sequência
o padrão é [] Se definido, o conjunto de conjuntos de ferramentas exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Os conjuntos de ferramentas são encontrados ao verificar a plataforma atual e fornecidos à implementação da regra via ctx.toolchain .
|
incompatible_use_toolchain_transition
|
o padrão é False Obsoleto, ele não está mais em uso e precisa ser removido. |
doc
|
string; ou None
o padrão é None Uma descrição do aspecto que pode ser extraída por ferramentas de geração de documentação. |
apply_to_generating_rules
|
o padrão é False Se for verdadeiro, o aspecto será aplicado, quando aplicado a um arquivo de saída, à regra de geração desse arquivo. Por exemplo, suponha que um aspecto se propaga de forma transitiva pelo atributo "deps" e é aplicado ao destino "alpha". Suponha que `alpha` tenha `deps = [':beta_output']`, em que `beta_output` é uma saída declarada de um destino `beta`. Suponha que "beta" tenha um "charlie" de destino como um dos "deps" dele. Se "apply_to_generated_rules=True" para o aspecto, ele será propagado por "alpha", "beta" e "charlie". Se for falso, o aspecto será propagado apenas para "alfa". Falso por padrão. |
exec_compatible_with
|
sequência de strings
o padrão é [] Uma lista de restrições na plataforma de execução que se aplicam a todas as instâncias deste aspecto. |
exec_groups
|
dict; ou None
o padrão é None Ditado do nome do grupo de execução (string) para exec_group s. Se definido, permite que os aspectos executem ações em várias plataformas de execução dentro de uma única instância. Consulte a documentação dos grupos de execução para mais informações.
|
subrules
|
sequência de Sub-regrass;
o padrão é [] Experimental: lista de sub-regras usadas por este aspecto. |
configuration_field
LateBoundDefault configuration_field(fragment, name)Refere-se a um valor padrão vinculado tardiamente para um atributo do tipo label. Um valor tem data de término se ela exigir que a configuração seja criada antes de determinar o valor. Qualquer atributo que use isso como um valor precisa ser privado.
Exemplo de uso:
Definindo um atributo de regra:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Acessando na implementação da regra:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parâmetros
Parâmetro | Descrição |
---|---|
fragment
|
obrigatório O nome de um fragmento de configuração que contém o valor vinculado tardiamente. |
name
|
obrigatório O nome do valor a ser recebido do fragmento de configuração. |
Depset
depset depset(direct=None, order="default", *, transitive=None)Cria um depset. O parâmetro
direct
é uma lista de elementos diretos do componente, e o parâmetro transitive
é uma lista de dependências cujos elementos se tornam elementos indiretos do ambiente criado. A ordem em que os elementos são retornados quando o dispositivo é convertido em uma lista é especificada pelo parâmetro order
. Consulte a Visão geral de escopos para mais informações.
Todos os elementos (diretos e indiretos) de um dispositivo 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 depset precisam ser passíveis de hash. No entanto, essa invariante não é verificada de forma consistente em todos os construtores. Usar a flag --incompatible_always_check_depset_elementos para ativar a verificação consistente; esse será o comportamento padrão em versões futuras. consulte o problema 10313 (link em inglês).
Além disso, os elementos precisam ser imutáveis atualmente, embora essa restrição seja flexibilizada no futuro.
A ordem da desativação criada precisa ser compatível com a ordem das dependências de transitive
. O pedido de "default"
é compatível com qualquer outro pedido. Todos os outros pedidos são compatíveis somente com ele mesmo.
Parâmetros
Parâmetro | Descrição |
---|---|
direct
|
sequência ou None
o padrão é None Uma lista de elementos diretos de um dispositivo. |
order
|
o padrão é "default" Estratégia de travessia para a nova implantação. Veja os valores possíveis aqui. |
transitive
|
sequência de depsets; ou None ;
o padrão é None Uma lista de dispositivos com elementos que se tornarão elementos indiretos deles. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])Cria um grupo de execução que pode ser usado para criar ações para uma plataforma de execução específica durante a implementação da regra.
Parâmetros
Parâmetro | Descrição |
---|---|
toolchains
|
sequência
o padrão é [] O conjunto de conjuntos de ferramentas exigido por esse grupo de execução. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. |
exec_compatible_with
|
sequência de strings
o padrão é [] Uma lista de restrições na plataforma de execução. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)Cria uma nova extensão de módulo. Armazene-o em um valor global para que possa ser exportado e usado em um arquivo MODULE.bazel.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório A função que implementa essa extensão de módulo. É preciso usar um único parâmetro, module_ctx . A função é chamada uma vez no início de uma compilação para determinar o conjunto de repositórios disponíveis.
|
tag_classes
|
o padrão é {} Um dicionário para declarar todas as classes de tag usadas pela extensão. Ela é mapeada do nome da classe de tag para um objeto tag_class .
|
doc
|
string; ou None
o padrão é None Uma descrição da extensão do módulo que pode ser extraída por ferramentas que geram documentação. |
environ
|
sequência de strings
o padrão é [] Fornece uma lista de variáveis de ambiente da qual esta extensão de módulo depende. Se uma variável de ambiente dessa lista mudar, a extensão será reavaliada. |
os_dependent
|
o padrão é False Indica se a extensão depende do SO ou não |
arch_dependent
|
o padrão é False Indica se a extensão depende da arquitetura ou não |
provider
unknown provider(doc=None, *, fields=None, init=None)Define um símbolo de provedor. O provedor pode ser instanciado ao chamá-lo ou usado diretamente como chave para recuperar uma instância desse provedor de um destino. Exemplo:
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Consulte Regras (provedores) para acessar um guia completo sobre como usar provedores.
Retorna um valor chamável Provider
se init
não for especificado.
Se init
for especificado, retornará uma tupla de dois elementos: um valor chamável Provider
e um valor chamável do construtor bruto. Consulte Regras (Inicialização personalizada de provedores personalizados) e a discussão sobre o parâmetro init
abaixo para ver mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
doc
|
string; ou None
o padrão é None Uma descrição do provedor que pode ser extraída por ferramentas de geração de documentação. |
fields
|
sequência de strings ou dict; ou None ;
o padrão é None Se especificado, restringe o conjunto de campos permitidos. Os valores possíveis são:
|
init
|
chamável; ou None
o padrão é None Um callback opcional para pré-processamento e validação dos valores de campo do provedor durante a instanciação. Se init for especificado, provider() retornará uma tupla de dois elementos: o símbolo do provedor normal e um construtor bruto.A seguir, há uma descrição precisa; consulte Regras (inicialização personalizada de provedores) para ter uma discussão intuitiva e casos de uso. Permita que
init não é fornecido, uma chamada para o próprio símbolo P atua como uma chamada para a função de construtor padrão c . Em outras palavras, P(*args, **kwargs) retorna c(*args, **kwargs) . Por exemplo,MyInfo = provider() m = MyInfo(foo = 1)fará com que m seja uma instância MyInfo com m.foo == 1 .No entanto, no caso em que
Observação: as etapas acima implicam que um erro vai ocorrer se Dessa forma, o callback Quando MyInfo, _new_myinfo = provider(init = ...) |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc=None)Cria uma nova regra de repositório. Armazene-o em um valor global para que possa ser carregado e chamado no arquivo WORKSPACE.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório a função que implementa a regra. É preciso ter um único parâmetro, repository_ctx . A função é chamada durante a fase de carregamento para cada instância da regra.
|
attrs
|
dict; ou None
o padrão é None dicionário para declarar todos os atributos da regra. Ele é mapeado de um nome de atributo para um objeto de atributo (consulte o módulo attr). Atributos que começam com _ são particulares e podem ser usados para adicionar uma dependência implícita de um rótulo a um arquivo. Uma regra de repositório não pode depender de um artefato gerado. O atributo name é adicionado implicitamente e não pode ser especificado.
|
local
|
o padrão é False Indique que essa regra busca tudo no sistema local e precisa ser reavaliada a cada busca. |
environ
|
sequência de strings
o padrão é [] Descontinuado. Este parâmetro foi suspenso. Migre para repository_ctx.getenv .Fornece uma lista de variáveis de ambiente das quais esta regra de repositório depende. Se uma variável de ambiente nessa lista mudar, o repositório será buscado novamente. |
configure
|
o padrão é False Indicar que o repositório inspeciona o sistema para fins de configuração |
remotable
|
o padrão é False Experimental. Esse parâmetro é experimental e pode ser alterado a qualquer momento. Não dependa disso. Para ativar esse recurso experimental, defina ---experimental_repo_remote_exec Compatível com a execução remota |
doc
|
string; ou None
o padrão é None Uma descrição da regra do repositório que pode ser extraída por ferramentas de geração de documentação. |
regra
callable rule(implementation, *, test=unbound, attrs={}, outputs=None, executable=unbound, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])Cria uma nova regra que pode ser chamada de um arquivo BUILD ou uma macro para criar destinos.
As regras precisam ser atribuídas a variáveis globais em um arquivo .bzl. o nome da variável global é o nome da regra.
As regras de teste precisam ter um nome que termine em _test
, e todas as outras regras não podem ter esse sufixo. Essa restrição se aplica somente a regras, não a seus destinos.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório função Starlark que implementa essa regra precisa ter exatamente um parâmetro: ctx. A função é chamada durante a fase de análise para cada instância da regra. Ele pode acessar os atributos fornecidos pelo usuário. Ele precisa criar ações para gerar todas as saídas declaradas. |
test
|
bool;
o padrão é unbound Define se a regra é de teste, ou seja, se pode ser objeto de um comando blaze test . todas as regras de teste são automaticamente consideradas executáveis; é desnecessário (e não recomendado) definir explicitamente executable = True para uma regra de teste. O valor padrão é False . Consulte a página Regras para mais informações.
|
attrs
|
dict;
o padrão é {} dicionário para declarar todos os atributos da regra. Ele é mapeado de um nome de atributo para um objeto de atributo (consulte o módulo attr). Atributos que começam com _ são particulares e podem ser usados para adicionar uma dependência implícita em um rótulo. O atributo name é adicionado implicitamente e não pode ser especificado. Os atributos visibility , deprecation , tags , testonly e features são adicionados implicitamente e não podem ser substituídos. A maioria das regras precisa de poucos atributos. Para limitar o uso da memória, a função de regra impõe um limite no tamanho das atribuições.
|
outputs
|
dict; ou None ou função
o padrão é None Descontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com ---incompatible_no_rule_outputs_param . Use essa sinalização para verificar se seu código é compatível com a remoção iminente. Esse parâmetro foi descontinuado. Migre as regras para usar OutputGroupInfo ou attr.output . Um esquema para definir saídas pré-declaradas. Ao contrário dos atributos O valor desse argumento é um dicionário ou uma função de callback que produz um dicionário. O callback funciona de maneira semelhante aos atributos de dependência calculados: os nomes de parâmetro da função são comparados aos atributos da regra. Por exemplo, se você transmitir Cada entrada no dicionário cria uma saída pré-declarada em que a chave é um identificador e o valor é um modelo de string que determina o rótulo da saída. Na função de implementação da regra, o identificador se torna o nome do campo usado para acessar o
Na prática, o marcador de substituição mais comum é |
executable
|
bool;
o padrão é unbound Indica se a regra é considerada executável, ou seja, se pode ser objeto de um comando blaze run . O padrão é False . Consulte a página Regras para mais informações.
|
output_to_genfiles
|
o padrão é False Se verdadeiro, os arquivos serão gerados no diretório genfiles em vez de no diretório bin. A menos que você precise para compatibilidade com as regras existentes (por exemplo, ao gerar arquivos de cabeçalho para C++), não defina essa flag. |
fragments
|
sequência de strings
o padrão é [] Lista de nomes dos fragmentos de configuração que a regra exige na configuração de destino. |
host_fragments
|
sequência de strings
o padrão é [] Lista de nomes dos fragmentos de configuração que a regra exige na configuração do host. |
_skylark_testable
|
o padrão é False (Experimental) Se for "true", esta regra vai expor as ações para inspeção pelas regras que dependem dela usando um provedor Actions . O provedor também fica disponível para a própria regra chamando ctx.created_actions().Essa opção só deve ser usada para testar o comportamento do tempo de análise das regras do Starlark. Essa sinalização pode ser removida no futuro. |
toolchains
|
sequência
o padrão é [] Se definido, o conjunto de conjuntos de ferramentas exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Os conjuntos de ferramentas são encontrados ao verificar a plataforma atual e fornecidos à implementação da regra via ctx.toolchain .
|
incompatible_use_toolchain_transition
|
o padrão é False Obsoleto, ele não está mais em uso e precisa ser removido. |
doc
|
string; ou None
o padrão é None Uma descrição da regra que pode ser extraída por ferramentas de geração de documentação. |
provides
|
o padrão é [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir do valor de retorno qualquer um dos tipos de provedores listados aqui. No entanto, a função de implementação pode retornar provedores adicionais não listados aqui. Cada elemento da lista é um objeto |
exec_compatible_with
|
sequência de strings
o padrão é [] Uma lista de restrições na plataforma de execução que se aplicam a todos os destinos deste tipo de regra. |
analysis_test
|
o padrão é False Se verdadeiro, a regra será tratada como um teste de análise. Observação: as regras de teste de análise são definidas principalmente usando a infraestrutura fornecida nas principais bibliotecas do Starlark. Consulte Testes para ver orientações. Se uma regra for definida como uma regra de teste de análise, ela poderá usar as transições de configuração definidas com analysis_test_transition nos atributos, mas com algumas restrições:
|
build_setting
|
BuildSetting; ou None
o padrão é None Se definido, descreve o tipo de build setting dessa regra. Consulte o módulo config . Se esse valor for definido, um atributo obrigatório chamado "build_setting_default" é automaticamente adicionado a esta regra, com um tipo correspondente ao valor passado aqui.
|
cfg
|
o padrão é None Se definido, aponta para a transição de configuração que a regra aplicará à própria configuração antes da análise. |
exec_groups
|
dict; ou None
o padrão é None Ditado do nome do grupo de execução (string) para exec_group s. Se definido, permite que as regras executem ações em várias plataformas de execução dentro de um único destino. Consulte a documentação dos grupos de execução para mais informações.
|
initializer
|
o padrão é None Experimental: a função Stalark inicializando os atributos da regra. A função é chamada no tempo de carregamento para cada instância da regra. Ele é chamado com É preciso retornar um dicionário dos nomes dos atributos para os valores desejados. Os atributos não retornados não são afetados. Retornar Os inicializadores são avaliados antes dos valores padrão especificados em uma definição de atributo. Consequentemente, se um parâmetro na assinatura do inicializador contiver um valor padrão, ele substituirá o padrão da definição do atributo (exceto se retornar Da mesma forma, se um parâmetro na assinatura do inicializador não tiver um padrão, ele se tornará obrigatório. Nesses casos, é recomendável omitir configurações padrão/obrigatórias em uma definição de atributo. É uma prática recomendada usar No caso de regras estendidas, todos os inicializadores são chamados de filhos para ancestrais. Cada inicializador recebe apenas os atributos públicos que ele conhece. |
parent
|
o padrão é None Experimental: a regra Stalark que é estendida. Ao serem definidos, os atributos públicos são mesclados com os provedores anunciados. A regra corresponde a executable e test do pai. Os valores de fragments , toolchains , exec_compatible_with e exec_groups são mesclados. Os parâmetros legados ou descontinuados não podem ser definidos. A transição de configuração cfg do pai é aplicada após a configuração de entrada desta regra.
|
extendable
|
bool; ou Rótulo; ou string; ou None ;
o padrão é None Experimental: um marcador de uma lista de permissões que define quais regras podem estender esta regra. Também é possível definir como verdadeiro/falso para sempre permitir/proibir a extensão. O padrão do Bazel é sempre permitir extensões. |
subrules
|
sequência de Sub-regrass;
o padrão é [] Experimental: lista de subregras usadas por esta regra. |
select
unknown select(x, no_match_error='')
select()
é a função auxiliar que torna um atributo de regra configurável. Consulte a enciclopédia de criação para mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
obrigatório Um dicionário que mapeia condições de configuração para valores. Cada chave é um Label ou uma string de rótulo que identifica uma instância "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
|
o padrão é '' Erro personalizado opcional a ser informado se nenhuma condição corresponder. |
sub-regra
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])Constrói uma nova instância de uma sub-regra. O resultado dessa função precisa ser armazenado em uma variável global antes de ser usado.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
function;
obrigatório A função Starlark que implementa essa sub-regra |
attrs
|
dict;
o padrão é {} Um dicionário para declarar todos os atributos (privados) da sub-regra. As subregras só podem ter atributos particulares com tipo de rótulo (ou seja, rótulo ou lista de rótulos). Os valores resolvidos que correspondem a esses rótulos são transmitidos automaticamente pelo Bazel para a função de implementação da sub-regra como argumentos nomeados. Assim, a função de implementação é necessária para aceitar parâmetros nomeados que correspondam aos nomes dos atributos. Estes são os tipos desses valores:
|
toolchains
|
sequência
o padrão é [] Se definido, o conjunto de conjuntos de ferramentas exigido por essa sub-regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Os conjuntos de ferramentas são encontrados ao verificar a plataforma atual e fornecidos à implementação da sub-regra via ctx.toolchains .
|
fragments
|
sequência de strings
o padrão é [] Lista de nomes dos fragmentos de configuração que a sub-regra exige na configuração de destino. |
subrules
|
sequência de Sub-regrass;
o padrão é [] Lista de outras subregras exigidas por esta sub-regra. |
tag_class
tag_class tag_class(attrs={}, *, doc=None)Cria um novo objeto tag_class, que define um esquema de atributos para uma classe de tags, que são objetos de dados que podem ser usados por uma extensão de módulo.
Parâmetros
Parâmetro | Descrição |
---|---|
attrs
|
o padrão é {} Um dicionário para declarar todos os atributos dessa classe de tag. Ele é mapeado de um nome de atributo para um objeto de atributo (consulte o módulo attr). |
doc
|
string; ou None
o padrão é None Uma descrição da classe de tag que pode ser extraída por ferramentas que geram documentação. |
visibilidade
None
visibility(value)
Define a visibilidade de carregamento do módulo .bzl que está sendo inicializado.
A visibilidade de carregamento de um módulo determina se outros arquivos BUILD e .bzl podem ou não carregá-lo. Isso é diferente da visibilidade do destino do arquivo de origem .bzl subjacente, que determina se o arquivo pode aparecer como uma dependência de outros destinos. A visibilidade de carga funciona no nível de pacotes: para carregar um módulo, o arquivo que está fazendo o carregamento precisa estar em um pacote que tenha recebido visibilidade para o módulo. Um módulo sempre pode ser carregado dentro do próprio pacote, independentemente da visibilidade.
O visibility()
só pode ser chamado uma vez por arquivo .bzl e somente no nível superior, não dentro de uma função. O estilo recomendado é colocar essa chamada imediatamente abaixo das instruções load()
e de qualquer lógica breve necessária para determinar o argumento.
Se a flag --check_bzl_visibility
for definida como falsa, as violações de visibilidade de carregamento vão emitir avisos, mas não vão causar uma falha no build.
Parâmetros
Parâmetro | Descrição |
---|---|
value
|
obrigatório Uma lista de strings de especificação de pacote ou uma única string de especificação de pacote. As especificações de pacote seguem o mesmo formato de
O "@" sintaxe não é permitida; todas as especificações são interpretadas em relação ao repositório do módulo atual. Se As flags |