Reglas
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)
ADVERTENCIA: Las acciones adicionales dejaron de estar disponibles. Usa aspectos en su lugar.
Una regla action_listener
no produce ningún resultado en sí misma.
En cambio, permite que los desarrolladores de herramientas
extra_action
en el sistema de compilación,
si proporciona una asignación de la acción a extra_action
Los argumentos de esta regla asignan mnemónicos de acciones a
Reglas extra_action
.
Con la especificación de la opción
--experimental_action_listener=<label>
,
la compilación usará el action_listener
especificado para insertar
extra_action
en el gráfico de compilación.
Ejemplo
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 |
Un nombre único para este destino. |
extra_actions
|
extra_action objetivos
que debería agregar action_listener al gráfico de compilación.
P.ej., [ "//my/tools:analyzer" ]
|
mnemonics
|
action_listener
p.ej., [ "Javac" ]
Los mnemónicos no son una interfaz pública. No hay garantía de que los mnemónicos y sus acciones no cambien. |
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)
ADVERTENCIA: Las acciones adicionales dejaron de estar disponibles. Usa aspectos en su lugar.
Una regla extra_action
no produce ningún resultado significativo
cuando se especifica como un objetivo de compilación normal. En cambio, permite que los desarrolladores
para insertar acciones adicionales en el gráfico de compilación que modelen las acciones existentes.
Consulta action_listener
para obtener más información.
sobre cómo habilitar extra_action
.
Los extra_action
se ejecutan como una línea de comandos. La herramienta de línea de comandos
acceso a un archivo que contiene un búfer de protocolo como $(EXTRA_ACTION_FILE)
con información detallada sobre la acción original que observa.
También tiene acceso a todos los archivos de entrada a los que tiene acceso la acción original.
Consulta extra_actions_base.proto.
para obtener detalles sobre los datos almacenados dentro del búfer de protocolo. Cada archivo proto
contiene un mensaje ExtraActionInfo.
Al igual que todas las demás acciones, las acciones adicionales se colocan en una zona de pruebas y deben estar diseñadas para manejarlas.
Argumentos
Atributos | |
---|---|
name |
Un nombre único para este destino. Puedes consultar esta regla delabel en el argumento extra_actions
de action_listener reglas.
|
cmd
|
Como el atributo cmd de genrule con lo siguiente diferencias:
|
out_templates
|
extra_action
La plantilla puede usar las siguientes variables:
|
requires_action_output
|
extra_action requiere la salida de la
acción original que esté presente como entrada a este extra_action .
Si es verdadero (predeterminado en falso), extra_action puede suponer que el las salidas de la acción original están disponibles como parte de sus entradas. |
tools
|
tool para esta regla.
Consulta la definición de dependencias para obtener más información. información.
El sistema de compilación garantiza que estos requisitos se compilen antes de ejecutar el
Comando Todas las herramientas y sus dependencias de datos se consolidan en un solo árbol dentro de los cuales el comando puede usar rutas de acceso relativas. En el directorio de trabajo, será la raíz de ese árbol unificado. |