Reglas
action_listener
Ver código fuente de la reglaaction_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 por sí misma.
En cambio, permite que los desarrolladores de herramientas inserten
extra_actions en el sistema de compilación,
ya que proporciona una asignación de acción a extra_action
.
Los argumentos de esta regla asignan mnemónicos de acción a
extra_action reglas.
Si especificas la opción
--experimental_action_listener=<label>,
la compilación usará el action_listener especificado para insertar
extra_actions 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 |
Nombre; obligatorio Un nombre único para este destino. |
extra_actions
|
Lista de etiquetas; obligatorio Una lista de destinosextra_action que este action_listener debe agregar al gráfico de compilación.
Por ejemplo, [ "//my/tools:analyzer" ].
|
mnemonics
|
Lista de cadenas; obligatorio Una lista de mnemónicos de acción que esteaction_listener debe escuchar
para, por ejemplo, [ "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
Ver código fuente de la reglaextra_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 destino de compilación normal. En cambio, permite que los desarrolladores de herramientas
inserten acciones adicionales en el gráfico de compilación que ocultan las acciones existentes.
Consulta action_listener para obtener detalles
sobre cómo habilitar extra_actions.
Las extra_actions se ejecutan como una línea de comandos. La herramienta de línea de comandos obtiene
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 está ocultando.
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 están en un espacio aislado y deben diseñarse para controlarlo.
Argumentos
| Atributos | |
|---|---|
name |
Nombre; obligatorio Un nombre único para este destino. Puedes hacer referencia a esta regla porlabel en el argumento extra_actions
de action_listener reglas.
|
cmd
|
Cadena; obligatorio El comando que se ejecutará.Como el atributo cmd de genrule con las siguientes diferencias:
|
out_templates
|
Lista de cadenas; el valor predeterminado es extra_action.
La plantilla puede usar las siguientes variables:
|
requires_action_output
|
Booleano; el valor predeterminado es extra_action requiere que el resultado de la
acción original esté presente como entrada para este extra_action.
Cuando es verdadero (falso de forma predeterminada), extra_action puede suponer que los resultados de la acción original están disponibles como parte de sus entradas. |
tools
|
Lista de etiquetas; el valor predeterminado es tool para esta regla.
Consulta la definición de dependencias para obtener más información.
El sistema de compilación garantiza que estos requisitos previos se compilen antes de ejecutar el
Todas las herramientas y sus dependencias de datos se consolidan en un solo árbol dentro del cual el comando puede usar rutas de acceso relativas. El directorio de trabajo será la raíz de ese árbol unificado. |