native.cc_library: O módulo nativo está disponível apenas na fase de carregamento, ou seja, para macros, não para implementações de regras. Os atributos ignorarão valores None e os tratarão como se o atributo não estivesse definido.As seguintes funções também estão disponíveis:
Membros
- existing_rule
- existing_rules
- exports_files
- glob
- package_group
- package_name
- repository_name
- Subpacotes
existing_rule
unknown native.existing_rule(name)
None se não houver instância de regra com esse nome.Aqui, um objeto semelhante a um dicionário imutável significa um objeto x profundamente imutável, compatível com iteração semelhante a dict, len(x), name in x, x[name], x.get(name), x.items(), x.keys() e x.values().
Se a flag --noincompatible_existing_rules_immutable_view estiver definida, um novo dict mutável será retornado com o mesmo conteúdo.
O resultado contém uma entrada para cada atributo, com exceção dos particulares (com nomes que não começam com uma letra) e alguns tipos de atributos legados irrepresentáveis. Além disso, o dict contém entradas para o name e o kind da instância da regra (por exemplo, 'cc_binary').
Os valores do resultado representam valores de atributo da seguinte maneira:
- Os atributos do tipo str, int e bool são representados como estão.
- Os rótulos são convertidos em strings no 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 dicts são convertidos em dicts novos e mutáveis. Os elementos são convertidos recursivamente da mesma maneira.
- Os valores
selectsã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 computados não podem ser calculados até a fase de análise.
Se possível, evite usar essa função. Isso torna os arquivos BUILD frágeis e dependentes da ordem. Além disso, saiba que ela difere sutilmente das duas outras conversões de valores de atributos de regras do formato interno para Starlark: uma usada por padrões computados e outra usada por ctx.attr.foo.
Parâmetros
| Parâmetro | Descrição |
|---|---|
name
|
obrigatório O nome do destino. |
existing_rules
unknown native.existing_rules()
existing_rule(name).Aqui, um objeto semelhante a um dicionário imutável significa um objeto x profundamente imutável, compatível com iteração semelhante a dict, len(x), name in x, x[name], x.get(name), x.items(), x.keys() e x.values().
Se a flag --noincompatible_existing_rules_immutable_view estiver definida, um novo dict mutável será retornado com o mesmo conteúdo.
Observação: se possível, evite usar essa função. Isso torna os arquivos BUILD frágeis e dependentes da ordem. Além disso, se a flag --noincompatible_existing_rules_immutable_view estiver definida, essa função poderá ser muito cara, especialmente se for chamada dentro de uma repetição.
exports_files
None native.exports_files(srcs, visibility=None, licenses=None)
Parâmetros
| Parâmetro | Descrição |
|---|---|
srcs
|
sequence of strings
obrigatórioA lista de arquivos a serem exportados. |
visibility
|
sequence; or None
padrão = NenhumUma declaração de visibilidade pode ser especificada. Os arquivos serão visíveis para os destinos especificados. Se nenhuma visibilidade for especificada, os arquivos vão ficar visíveis para todos os pacotes. |
licenses
|
sequence of strings; or None
padrão = NenhumLicenças a serem especificadas. |
massa
sequence native.glob(include=[], exclude=[], exclude_directories=1, allow_empty=unbound)
- Corresponde a pelo menos um padrão em
include. - Não corresponde a nenhum padrão em
exclude([]padrão).
exclude_directories estiver ativado (definido como 1), os arquivos do diretório de tipo serão omitidos dos resultados (o padrão é 1).
Parâmetros
| Parâmetro | Descrição |
|---|---|
include
|
sequence of strings
padrão = []A lista de padrões glob a serem incluídos. |
exclude
|
sequence of strings
padrão = []A lista de padrões glob a serem excluídos. |
exclude_directories
|
padrão = 1 Uma sinalização para excluir diretórios ou não. |
allow_empty
|
padrão = não vinculado Se os padrões glob não correspondem a nada. Se "allow_empty" for "False", cada padrão de inclusão individual precisa corresponder a algo, e o resultado final não pode estar vazio (depois que as correspondências dos padrões de "excluir") forem excluídas. |
package_group
None native.package_group(name, packages=[], includes=[])
visibility.
Parâmetros
| Parâmetro | Descrição |
|---|---|
name
|
obrigatório O nome exclusivo desta regra. |
packages
|
sequence of strings
padrão = []Uma enumeração completa dos pacotes neste grupo. |
includes
|
sequence of strings
padrão = []Outros grupos de pacotes incluídos neste. |
package_name
string native.package_name()
some/package/BUILD, o valor dele será some/package. Se o arquivo BUILD chamar uma função definida em um arquivo .bzl, package_name() corresponderá ao pacote de arquivos BUILD do autor da chamada. Essa função é equivalente à variável descontinuada PACKAGE_NAME.
repository_name
string native.repository_name()
local_repository(name='local', path=...) do ESPAÇO DE TRABALHO, ela será definida como @local. Nos pacotes no repositório principal, ele será definido como @. Essa função é equivalente à variável descontinuada REPOSITORY_NAME.
subpacotes
sequence native.subpackages(include, exclude=[], allow_empty=False)
Parâmetros
| Parâmetro | Descrição |
|---|---|
include
|
sequence of strings
obrigatórioA lista de padrões glob a serem incluídos na verificação de subpacotes. |
exclude
|
sequence of strings
padrão = []A lista de padrões glob a serem excluídos da verificação de subpacotes. |
allow_empty
|
padrão = Falso Se falharemos 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() é superflora. Se for definido como verdadeiro, a função será executada com sucesso nesse caso. |