Reguły
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)
UWAGA: Dodatkowe działania zostały wycofane. Zamiast nich użyj aspecs.
Reguła action_listener
nie generuje żadnych danych wyjściowych.
Umożliwia programistom narzędzi wstawianie obiektów extra_action
do systemu kompilacji poprzez udostępnienie mapowania z działania na extra_action
.
Argumenty tej reguły mapują mnemoniki działania na reguły extra_action
.
Jeśli określisz opcję
--experimental_action_listener=<label>
, kompilacja będzie używać podanego action_listener
do wstawiania extra_action
w wykres kompilacji.
Przykład
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)", )
Argumenty
Atrybuty | |
---|---|
name |
Unikalna nazwa tego celu. |
extra_actions
|
extra_action ), którą action_listener powinien dodać do wykresu kompilacji.
Na przykład [ "//my/tools:analyzer" ] .
|
mnemonics
|
action_listener ), np. [ "Javac" ] .
Mnemonika nie jest interfejsem publicznym. Nie ma gwarancji, że mnemoniki i ich działania się nie zmienią. |
dodatkowe działanie
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)
UWAGA: Dodatkowe działania zostały wycofane. Zamiast nich użyj aspecs.
Reguła extra_action
nie generuje żadnych istotnych danych wyjściowych, gdy jest określona jako cel kompilacji kompilacji. Pozwala programistom narzędzi wstawiać na wykresie kompilacji dodatkowe działania, które powielają istniejące działania.
Szczegółowe informacje o włączaniu uprawnień extra_action
znajdziesz w sekcji action_listener
.
extra_action
są uruchamiane z poziomu wiersza poleceń. Narzędzie wiersza poleceń uzyska dostęp do pliku zawierającego bufor protokołu jako $(EXTRA_ACTION_FILE) zawierający szczegółowe informacje na temat pierwotnej operacji powielania.
Ma też dostęp do wszystkich plików wejściowych, do których ma dostęp pierwotne działanie.
Szczegółowe informacje o danych przechowywanych w buforze protokołu znajdziesz w sekcji extra_actions_base.proto. Każdy plik proto zawiera komunikat ExtraActionInfo.
Tak jak w przypadku pozostałych działań, dodatkowe działania są umieszczane w piaskownicy i należy je obsługiwać.
Argumenty
Atrybuty | |
---|---|
name |
Unikalna nazwa tego celu. Odwołania do tej reguły możesz odwołać się dolabel w argumencie extra_actions dotyczącym reguł action_listener .
|
cmd
|
Tak jak w przypadku atrybutu genrule cmd z tymi różnicami:
|
out_templates
|
extra_action .
Szablon może korzystać z tych zmiennych:
|
requires_action_output
|
extra_action wymaga, aby dane wyjściowe pierwotnego działania były dostępne jako dane wejściowe tego elementu extra_action .
Jeśli ma wartość true (domyślnie), ma wartość fałszywą, która zakłada, że dane wyjściowe pierwotnego działania są dostępne jako część danych wejściowych. |
tools
|
tool dla tej reguły.
Więcej informacji znajdziesz w definicji zależności.
System kompilacji zapewnia, że wymagania wstępne są spełnione przed uruchomieniem polecenia Wszystkie narzędzia i ich zależności są skonsolidowane w ramach jednego drzewa, w którym to polecenie może używać ścieżek względnych. Katalog roboczy będzie katalogiem tego ujednoliconego drzewa. |