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. 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 build,
fornecendo um mapeamento da ação para extra_action
.
Os argumentos dessa regra associam as mneumônicas de ação às
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.
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
que esse action_listener precisa adicionar ao gráfico do 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 as mneumônicas e as ações delas não mudarão. |
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. Use aspects.
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 sombre 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 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 ocultada.
Ela também tem acesso a todos os arquivos de entrada aos quais a ação original tem acesso.
Consulte extra_actions_base.proto para saber 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 |
Um nome exclusivo para o destino. Você pode se referir a essa regra porlabel no argumento extra_actions
das regras action_listener .
|
cmd
|
Semelhante ao atributo cmd de genrule 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 esse extra_action .
Quando verdadeiro (falso padrão), a extra_action pode presumir que as saídas da ação original estão disponíveis como parte das entradas. |
tools
|
tool para esta regra.
Consulte a definição de dependências para mais informações.
O sistema de build garante que esses pré-requisitos sejam criados antes de executar o
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. |