Rótulo

Reportar um problema Ver a fonte Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Um identificador de destino BUILD.

Para cada instância Label l, a representação de string str(l) tem a propriedade Label(str(l)) == l, independente de onde a chamada Label() ocorre.

Quando transmitidos como argumentos posicionais para print() ou fail(), Label usam uma representação de string otimizada para legibilidade humana. Essa representação usa um nome de repositório aparente da perspectiva do repositório principal, se possível.

Membros

Rótulo

Label Label(input)

Converte uma string de rótulo em um objeto Label no contexto do pacote em que o arquivo de origem .bzl de chamada está. Se o valor fornecido já for um Label, ele será retornado sem alterações.

Para macros, uma função relacionada, native.package_relative_label(), converte a entrada em um Label no contexto do pacote que está sendo construído. Use essa função para imitar a conversão de string para rótulo feita automaticamente por atributos de regra com valor 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á.

nome

string Label.name

O nome da segmentação referida por este rótulo. Por exemplo:
Label("@@foo//pkg/foo:abc").name == "abc"

pacote

string Label.package

O nome do pacote que contém o destino a que este rótulo se refere, sem o nome do repositório. Por exemplo:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"

relativo

Label Label.relative(relName)

Experimental. Essa API é experimental e pode mudar a qualquer momento. Não dependa dele. É possível ativar em caráter experimental definindo --+incompatible_enable_deprecated_label_apis
Descontinuado. Esse método se comporta de maneira surpreendente quando usado com um argumento que contém um nome de repositório aparente. Prefira Label.same_package_label(), native.package_relative_label() ou Label().

Resolve um rótulo absoluto (começa com //) ou relativo ao pacote atual. Se esse rótulo estiver em um repositório remoto, o argumento será resolvido em relação a ele. Se o argumento contiver um nome de repositório, o rótulo atual será ignorado e o argumento será retornado como está, exceto se o nome do repositório estiver no mapeamento atual. Os rótulos reservados também serão retornados como estão.
Por exemplo:

Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux")
Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux")
Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux")
Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public")
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")

Se o mapeamento de repositório transmitido for {'@other' : '@remapped'}, o seguinte remapeamento vai ocorrer:

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

Parâmetros

Parâmetro Descrição
relName string; required
O rótulo que será resolvido em relação a este.

repo_name

string Label.repo_name

O nome canônico do repositório que contém o destino a que este rótulo se refere, sem arrobas iniciais (@). Por exemplo,
Label("@@foo//bar:baz").repo_name == "foo"

same_package_label

Label Label.same_package_label(target_name)

Cria um rótulo no mesmo pacote que este rótulo com o nome de destino especificado.

Parâmetros

Parâmetro Descrição
target_name string; required
O nome de destino do novo rótulo.

workspace_name

string Label.workspace_name

Experimental. Essa API é experimental e pode mudar a qualquer momento. Não dependa dele. É possível ativar em caráter experimental definindo --+incompatible_enable_deprecated_label_apis
Descontinuado. O nome do campo "nome do espaço de trabalho" é inadequado aqui. Use Label.repo_name, que tem o mesmo comportamento.

O nome canônico do repositório que contém o destino a que este rótulo se refere, sem arrobas iniciais (@). Por exemplo,

Label("@@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

Retorna a raiz de execução do repositório que contém o destino referenciado por este rótulo, em relação ao execroot. Por exemplo:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"