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
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 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. |