Regras
action_listener
action_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. Usar aspectos como alternativa.
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 as ações mnemônicas para
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 |
Um nome exclusivo para o destino. |
extra_actions
|
extra_action destinos
este action_listener precisa ser adicionado ao gráfico de build.
Por exemplo: [ "//my/tools:analyzer" ] :
|
mnemonics
|
action_listener precisa ouvir
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
extra_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. Usar aspectos como alternativa.
Uma regra extra_action
não produz saídas significativas
quando especificado como um destino de build normal. Em vez disso, ele permite que os desenvolvedores de ferramentas
para inserir outras ações no gráfico de build que sombreiam as ações existentes.
Consulte action_listener
para ver mais 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 recebe
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á acompanhando.
Ele também tem acesso a todos os arquivos de entrada que a ação original pode acessar.
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 colocadas no sandbox e devem ser projetadas para lidar com isso.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para o destino. Você pode se referir a essa regra usandolabel no argumento extra_actions
de regras de action_listener .
|
cmd
|
Como o atributo genrule cmd com o seguinte diferenças:
|
out_templates
|
extra_action .
O modelo pode usar as seguintes variáveis:
|
requires_action_output
|
extra_action requer a saída do
ação original seja presente como entrada para este extra_action .
Quando verdadeiro (o padrão é falso), a extra_action pode assumir que o as saídas da ação original estão disponíveis como parte das entradas. |
tools
|
tool dependências para esta regra.
Veja a definição de dependências para mais informações imprecisas ou inadequadas.
O sistema de build garante que esses pré-requisitos sejam criados antes de executar o
Comando Todas as ferramentas e suas dependências de dados estão consolidadas em uma única árvore em que o comando pode usar caminhos relativos. O diretório de trabalho a raiz da árvore unificada. |