Kurallar
action_listener
Kural kaynağını gösteraction_listener(name, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, extra_actions, features, licenses, mnemonics, restricted_to, tags, target_compatible_with, testonly, visibility)
UYARI: Ek işlemlerin desteği sonlandırıldı. Bunun yerine yönler seçeneğini kullanın.
action_listener
kuralı kendiliğinden çıkış yapmaz.
Bunun yerine, araç geliştiricilerin işlemden extra_action
'a eşleme sağlayarak derleme sistemine extra_action
eklemelerine olanak tanır.
Bu kuralın bağımsız değişkenleri, işlem hatırlatıcılarını extra_action
kurallarıyla eşler.
--experimental_action_listener=<label>
seçeneğini belirterek,
derleme, extra_action
'leri derleme grafiğine eklemek için belirtilen action_listener
'ı kullanır.
Örnek
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)", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
extra_actions
|
Etiketler listesi; zorunlu Buaction_listener öğesinin derleme grafiğine eklemesi gereken extra_action hedeflerinin listesi.
Ör. [ "//my/tools:analyzer" ] .
|
mnemonics
|
Dize listesi; zorunlu Buaction_listener 'ün dinlemesi gereken işlem anımsatıcılarının listesi (ör. [ "Javac" ] ).
Hatırlatıcılar herkese açık bir arayüz değildir. Bu kısaltmaların ve işlemlerinin değişmeyeceğini garanti edemeyiz. |
extra_action
Kural kaynağını görüntüleextra_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)
UYARI: Ek işlemlerin desteği sonlandırıldı. Bunun yerine yönler seçeneğini kullanın.
extra_action
kuralı, normal derleme hedefi olarak belirtildiğinde anlamlı bir çıkış üretmez. Bunun yerine, araç geliştiricilerin mevcut işlemleri gölgeleyen ek işlemleri derleme grafiğine eklemesine olanak tanır.
extra_action
öğelerinin nasıl etkinleştirileceğiyle ilgili ayrıntılar için bkz. action_listener
.
extra_action
'ler komut satırı olarak çalışır. Komut satırı aracı, gölgelediği orijinal işlemle ilgili ayrıntılı bilgiler içeren bir protokol arabelleği içeren bir dosyaya ($(EXTRA_ACTION_FILE) olarak) erişir.
Ayrıca, orijinal işlemin erişebildiği tüm giriş dosyalarına da erişebilir.
Protokol arabelleğinde depolanan veriler hakkında ayrıntılı bilgi için extra_actions_base.proto dosyasını inceleyin. Her proto dosyası bir ExtraActionInfo mesajı içerir.
Diğer tüm işlemler gibi ek işlemler de korumalı alana yerleştirilir ve bu durumu ele alacak şekilde tasarlanmalıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; gerekli Bu hedef için benzersiz bir ad. Bu kurala, action_listener kurallarının extra_actions bağımsız değişkeninde label tarafından başvurabilirsiniz.
|
cmd
|
Dize; zorunlu Çalıştırılacak komut.genrule cmd özelliği gibidir ancak aşağıdaki farklar vardır:
|
out_templates
|
Dize listesi; varsayılan değer extra_action komutu tarafından oluşturulan dosyaların şablonlarının listesi.
Şablonda aşağıdaki değişkenler kullanılabilir:
|
requires_action_output
|
Boole; varsayılan değer extra_action işleminin, orijinal işlemin çıkışının bu extra_action işleminin girişi olarak bulunmasını gerektirdiğini gösterir.
True (varsayılan false) değerine ayarlandığında extra_action, orijinal işlem çıkışlarının girişlerinin bir parçası olarak kullanılabileceğini varsayabilir. |
tools
|
Etiketler listesi; varsayılan değer tool bağımlılıklarının listesi.
Daha fazla bilgi için bağımlılıkların tanımına bakın.
Derleme sistemi, bu ön koşulların Tüm araçlar ve veri bağımlılıkları, komutun göreli yollar kullanabileceği tek bir ağaçta birleştirilir. Çalışma dizini, bu birleştirilmiş ağacın kökü olur. |