Reglas
action_listener
Ver la 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. En su lugar, usa aspects.
Una regla action_listener
no produce ningún resultado.
En cambio, permite que los desarrolladores de herramientas inserten extra_action
en el sistema de compilación, ya que proporciona una asignación de acción a extra_action
.
Los argumentos de esta regla asignan los mnemónicos de acciones a las reglas extra_action
.
Si especificas 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 |
Name; obligatorio Un nombre único para este objetivo. |
extra_actions
|
Es una lista de etiquetas obligatoria. Es una lista de destinosextra_action que esta action_listener debe agregar al gráfico de compilación.
P.ej., [ "//my/tools:analyzer" ] .
|
mnemonics
|
Lista de cadenas; obligatorio Es una lista de mnemotecnias de acciones que esteaction_listener debe detectar, p. ej., [ "Javac" ] .
Los mnemónicos no son una interfaz pública. No hay garantía de que las mnemotecnias y sus acciones no cambien. |
extra_action
Ver la 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. En su lugar, usa aspects.
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 de herramientas inserten acciones adicionales en el gráfico de compilación que oculten las acciones existentes.
Consulta action_listener
para obtener detalles sobre cómo habilitar extra_action
.
Los extra_action
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 a la que hace sombra.
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 encuentran en la zona de pruebas y deben diseñarse para controlar eso.
Argumentos
Atributos | |
---|---|
name |
Name; obligatorio Un nombre único para este destino. Puedes consultar esta regla conlabel en el argumento extra_actions de las reglas action_listener .
|
cmd
|
Cadena; obligatorio Es el comando que se ejecutará.Es similar al atributo cmd de genrule con las siguientes diferencias:
|
out_templates
|
Es una 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 (predeterminado como falso), extra_action puede suponer que los resultados de la acción original están disponibles como parte de sus entradas. |
tools
|
Es una 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 se asegura de que estos requisitos previos se compilen antes de ejecutar el comando 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. |