Règles
écouteur d'actions
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)
AVERTISSEMENT:Les actions supplémentaires sont obsolètes. Utilisez plutôt des aspects.
Une règle action_listener
ne produit aucun résultat lui-même.
Au lieu de cela, elle permet aux développeurs d'outils d'insérer des extra_action
dans le système de compilation, en fournissant un mappage entre action et extra_action
.
Les arguments de cette règle mappent les mnémoniques d'action aux règles extra_action
.
Si vous spécifiez l'option
--experimental_action_listener=<label>
, le build utilise l'élément action_listener
spécifié pour insérer des éléments extra_action
dans le graphique de compilation.
Exemple
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)", )
Arguments
Attributs | |
---|---|
name |
Nom unique pour cette cible. |
extra_actions
|
extra_action que action_listener doit ajouter au graphique de compilation.
Exemple : [ "//my/tools:analyzer" ] .
|
mnemonics
|
action_listener doit écouter, par exemple, [ "Javac" ] .
Les mnémoniques ne sont pas une interface publique. Il n'y a aucune garantie que les mnémoniques et leurs actions ne changent pas. |
action_supplémentaire
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)
AVERTISSEMENT:Les actions supplémentaires sont obsolètes. Utilisez plutôt des aspects.
Une règle extra_action
ne produit aucun résultat significatif lorsqu'elle est spécifiée en tant que cible de compilation standard. Au lieu de cela, les développeurs d'outils peuvent insérer des actions supplémentaires dans le graphique de compilation qui masque les actions existantes.
Pour en savoir plus sur l'activation des extra_action
s, consultez action_listener
.
Les extra_action
s'exécutent en tant que ligne de commande. L'outil de ligne de commande obtient l'accès à un fichier contenant un tampon de protocole sous la forme $(EXTRA_ACTION_FILE) avec des informations détaillées sur l'action d'origine bloquée.
Elle a également accès à tous les fichiers d'entrée auxquels l'action d'origine a accès.
Consultez le fichier extra_actions_base.proto pour en savoir plus sur les données stockées dans le tampon du protocole. Chaque fichier proto contient un message ExtraActionInfo.
Comme toutes les autres actions, les actions supplémentaires s'exécutent en bac à sable, et doivent être conçues pour gérer cela.
Arguments
Attributs | |
---|---|
name |
Nom unique pour cette cible. Vous pouvez faire référence à cette règle à l'aide delabel dans l'argument extra_actions des règles action_listener .
|
cmd
|
Comme l'attribut genrule cmd, mais avec les différences suivantes:
|
out_templates
|
extra_action .
Le modèle peut utiliser les variables suivantes:
|
requires_action_output
|
extra_action nécessite que la sortie de l'action d'origine soit présente en tant qu'entrée sur ce champ extra_action .
Lorsque la valeur est définie sur "true" (valeur par défaut "false"), l'action "extra_action" suppose que les résultats d'action d'origine sont disponibles en tant qu'entrées. |
tools
|
tool pour cette règle.
Pour en savoir plus, consultez la définition des dépendances.
Le système de compilation vérifie que ces conditions préalables sont remplies avant d'exécuter la commande Tous les outils et leurs dépendances de données sont regroupés dans une seule arborescence dans laquelle la commande peut utiliser des chemins d'accès relatifs. Le répertoire de travail sera la racine de cet arbre unifié. |