Regras
action_listener
Exibir origem da regraaction_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
AVISO:as ações extras foram descontinuadas. Em vez disso, use aspectos.
Uma regra action_listener
por si só não produz nenhuma saída.
Em vez disso, ele permite que os desenvolvedores de ferramentas insiram
extra_action
s no sistema de build,
fornecendo um mapeamento da ação para extra_action
.
Os argumentos desta regra mapeiam os recursos mnemônicos de ação para as regras extra_action
.
Ao especificar a opção
--experimental_action_listener=<label>
,
o build vai usar o action_listener
especificado para inserir
extra_action
s no gráfico de build.
Exemplo
action_listener( name = "index_all_languages", mnemonics = [ "Javac", "CppCompile", "Python", ], extra_actions = [":indexer"], ) action_listener( name = "index_java", mnemonics = ["Javac"], extra_actions = [":indexer"], ) extra_action( name = "indexer", tools = ["//my/tools:indexer"], cmd = "$(location //my/tools:indexer)" + "--extra_action_file=$(EXTRA_ACTION_FILE)", )
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. |
extra_actions
|
Lista de rótulos, obrigatório Uma lista de destinosextra_action
que esse action_listener precisa adicionar ao gráfico de build.
Por exemplo, [ "//my/tools:analyzer" ] .
|
mnemonics
|
Lista de strings, obrigatório Uma lista de mnemônicas de ação que esteaction_listener precisa detectar. Por exemplo, [ "Javac" ] .
As mnemônicas não são uma interface pública. Não há garantia de que os recursos mnemônicos e as ações deles não vão mudar. |
extra_action
Exibir origem da regraextra_action(name, data, cmd, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, out_templates, requires_action_output, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
AVISO:as ações extras foram descontinuadas. Em vez disso, use aspectos.
Uma regra extra_action
não produz nenhuma saída significativa
quando especificada como um destino de build normal. Em vez disso, ele permite que os desenvolvedores de ferramentas
insiram outras ações no gráfico de build que sombreiam as ações existentes.
Consulte action_listener
para ver detalhes
sobre como ativar extra_action
s.
As extra_action
s são executadas como uma linha de comando. A ferramenta de linha de comando consegue acesso a um arquivo que contém um buffer de protocolo como $(EXTRA_ACTION_FILE) com informações detalhadas sobre a ação original que ele está ocultando.
Ele também tem acesso a todos os arquivos de entrada que a ação original pode acessar.
Consulte extra_actions_base.proto para ver detalhes sobre os dados armazenados dentro do buffer de protocolo. Cada arquivo proto
contém uma mensagem ExtraActionInfo.
Assim como todas as outras ações, as ações extras são colocadas no sandbox e devem ser projetadas para lidar com isso.
Argumentos
Atributos | |
---|---|
name |
Nome, obrigatório Um nome exclusivo para o destino. Você pode se referir a essa regra usandolabel no argumento extra_actions
das regras action_listener .
|
cmd
|
String, obrigatório Comando a ser executado.Como o atributo genrule cmd com as seguintes diferenças:
|
out_templates
|
Lista de strings. O padrão é extra_action .
O modelo pode usar as seguintes variáveis:
|
requires_action_output
|
Booleano. O padrão é extra_action exige que a saída da ação original esteja presente como entrada para esse extra_action .
Quando verdadeiro (o padrão é falso), a extra_action pode presumir que as saídas da ação original estão disponíveis como parte das entradas. |
tools
|
Lista de rótulos. O padrão é tool dependências para esta regra.
Consulte a definição de dependências para ver mais informações.
O sistema de build garante que esses pré-requisitos sejam criados antes da execução do comando
Todas as ferramentas e as respectivas dependências de dados são consolidadas em uma única árvore, dentro da qual o comando pode usar caminhos relativos. O diretório de trabalho será a raiz da árvore unificada. |