Regras
ação_listener
Ver 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. Use aspects.
Uma regra action_listener
não produz nenhuma saída.
Em vez disso, ele permite que os desenvolvedores de ferramentas insiram
extra_action
s no sistema de compilação,
fornecendo um mapeamento de ação para extra_action
.
Os argumentos desta regra mapeiam mnemônicas de ação para
extra_action
.
Ao especificar a opção
--experimental_action_listener=<label>
,
o build usará a action_listener
especificada para inserir
extra_action
s no gráfico.
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 esse destino. |
extra_actions
|
extra_action que esse action_listener precisa adicionar ao gráfico de build.
Por exemplo: [ "//my/tools:analyzer" ] .
|
mnemonics
|
action_listener precisa detectar, por exemplo, [ "Javac" ] .
A mnemônica não é uma interface pública. Não há garantia de que os elementos mnemônicos e as ações deles não mudarão. |
ação_adicional
Ver 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. Use aspects.
Uma regra extra_action
não produz uma saída significativa
quando especificada como um destino de build normal. Em vez disso, ele permite que os desenvolvedores de ferramentas
insiram mais ações no gráfico de build que acompanham as ações existentes.
Consulte action_listener
para ver detalhes
sobre como ativar extra_action
s.
Os extra_action
s são executados 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á monitorando.
Ele também tem acesso a todos os arquivos de entrada que a ação original pode acessar.
Consulte extra_actions_base.proto
para saber mais sobre os dados armazenados no buffer de protocolo. Cada arquivo proto
contém uma mensagem ExtraActionInfo.
Assim como todas as outras ações, as outras são realizadas no sandbox e precisam ser projetadas para isso.
Argumentos
Atributos | |
---|---|
name |
Um nome exclusivo para esse destino. É possível consultar essa regra porlabel no argumento extra_actions
das regras action_listener .
|
cmd
|
Semelhante a genrule cmd attribute com as seguintes diferenças:
|
out_templates
|
extra_action .
O modelo pode usar as seguintes variáveis:
|
requires_action_output
|
extra_action exige que a saída da
ação original esteja presente como entrada para essa extra_action .
Quando verdadeiro (falso padrão), a extra_action pode presumir que as saídas da ação original estejam disponíveis como parte das entradas. |
tools
|
tool para esta regra.
Para mais informações, consulte a definição de dependências.
O sistema de compilação garante que esses pré-requisitos sejam criados antes da execução do comando
Todas as ferramentas e as dependências de dados 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. |