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
não produz saída.
Em vez disso, ele permite que os desenvolvedores de ferramentas insiram
extra_action
s no sistema de build,
fornecendo um mapeamento de ação para extra_action
.
Os argumentos dessa regra mapeiam mnemônicos de ação para
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 essa segmentação. |
extra_actions
|
Lista de rótulos; obrigatório Uma lista de destinosextra_action
que 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" ] .
Os mnemônicos 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
Acessar a 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 regular. Em vez disso, ele permite que os desenvolvedores de ferramentas
insiram outras ações no gráfico de build que ocultam as ações atuais.
Consulte action_listener
para saber
como ativar extra_action
s.
As extra_action
s são executadas como uma linha de comando. A ferramenta de linha de comando tem
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 está sendo sombreada.
Ela também tem acesso a todos os arquivos de entrada a que a ação original tem acesso.
Consulte extra_actions_base.proto
para detalhes sobre os dados armazenados no buffer de protocolo. Cada arquivo proto
contém uma mensagem ExtraActionInfo.
Assim como todas as outras ações, as ações extras são isoladas e precisam ser projetadas para isso.
Argumentos
Atributos | |
---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. É possível consultar essa regra comlabel no argumento extra_actions das regras action_listener .
|
cmd
|
String; obrigatório O comando a ser executado.Como o atributo genrule cmd, mas 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 essa 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 para essa 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 dependências de dados delas são consolidadas em uma única árvore, em que o comando pode usar caminhos relativos. O diretório de trabalho será a raiz dessa árvore unificada. |