Ekstra İşlem Kuralları

Kurallar

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)

UYARI: Ekstra işlemler kullanımdan kaldırılmıştır. Tekliflerinizi otomatikleştirmek ve optimize etmek için en yüksek .

action_listener kuralı kendiliğinden çıkış sağlamaz. Bunun yerine, araç geliştiricilerin Derleme sistemine extra_action, işlemden extra_action tarihine eşleme sağlayarak .

Bu kuralın bağımsız değişkenleri, işlem anımsatıcılarını extra_action kuralları.

Şu seçeneği belirterek --experimental_action_listener=<label>, derleme dosya eklemek için belirtilen action_listener Derleme grafiğine extra_action atlar.

Ö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

Name; required

Bu hedef için benzersiz bir ad.

extra_actions

List of labels; required

extra_action hedefin listesi bu action_listener derleme grafiğine eklenmelidir. Ör. [ "//my/tools:analyzer" ]
mnemonics

List of strings; required

Bu action_listener adlı kullanıcının dinlemesi gereken işlem anımsatıcılarının listesi örneğin, [ "Javac" ].

Anımsatıcılar herkese açık bir arayüz değildir. Anımsatıcıların ve eylemlerinin değişmeyeceğinin garantisi yoktur.

extra_action

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)

UYARI: Ekstra işlemler kullanımdan kaldırılmıştır. Tekliflerinizi otomatikleştirmek ve optimize etmek için en yüksek .

extra_action kuralı anlamlı bir çıktı oluşturmuyor normal derleme hedefi olarak belirtilir. Bunun yerine, araç geliştiricilerin seçeneğini kullanabilirsiniz.

Ayrıntılar için action_listener sayfasını ziyaret edin. extra_action etkinleştirme hakkında daha fazla bilgi edinin.

extra_action'ler komut satırı olarak çalışır. Komut satırı aracı, $(Extra_ACTION_FILE) biçiminde protokol arabelleği içeren bir dosyaya erişim orijinal işlemle ilgili ayrıntılı bilgi içeren bir satır öğesi ekleyin. Ayrıca, orijinal işlemin erişebildiği tüm giriş dosyalarına da erişebilir. extra_actions_base.proto sayfasına bakın. Protokol arabelleğinde depolanan verilere ilişkin ayrıntılara bakın. Her bir proto dosyası ExtraActionInfo mesajı içerir.

Diğer tüm işlemlerde olduğu gibi ekstra işlemler de korumalı alana alınır ve buna uygun şekilde tasarlanmalıdır.

Bağımsız değişkenler

Özellikler
name

Name; required

Bu hedef için benzersiz bir ad.

Bu kurala, extra_actions bağımsız değişkeninde label tarafından başvurabilirsiniz Toplam action_listener kural.
cmd

String; required

Çalıştırılacak komut.

Örneğin, aşağıdakilere sahip genrule cmd özelliği farklar:

  1. Buluşsal etiket genişletmesi yok. Yalnızca $(location ...) değerini kullanan etiketler genişletilir.

  2. Dizeye, tüm öğelerin out_templates öğesinden oluşturulan çıkışların tekrarı özelliğini gönderin. $(output out_template) tarihinin tümü dosyanın yolu, label ile belirtilir.

    Ör. out_template $(ACTION_ID).analysis $(output $(ACTION_ID).analysis) ile eşleştirilebilir.

    Bu, $(location) ile aynı ikame olacaktır farklı bir kapsamda.

out_templates

List of strings; optional

extra_action komutuyla oluşturulan dosyalar için şablon listesi.

Şablonda aşağıdaki değişkenler kullanılabilir:

  • $(ACTION_ID), bu extra_action öğesini benzersiz şekilde tanımlayan bir kimlik. Benzersiz bir çıkış dosyası oluşturmak için kullanılır.

requires_action_output

Boolean; optional; default is False

Bu extra_action öğesinin, orijinal işlem bu extra_action girdisi olarak mevcut olacaktır.

True (varsayılan false) değerindeyse extra_action, orijinal işlem çıkışları, girişlerinin bir parçası olarak kullanılabilir.

tools

List of labels; optional

Bu kural için tool bağımlılıkların listesi.

Daha fazla bilgi için bağımlılıkların tanımına bakın ekleyebilirsiniz.

Derleme sistemi, extra_action komutu; kullanılarak oluşturulurlar. hostyapılandırma çünkü derleme sırasında bir araç olarak çalışmak zorundadır. Bir kişinin yolculuğu tools hedefi //x:y kullanılarak elde edilebilir: $(location //x:y).

Tüm araçlar ve bunların veri bağımlılıkları tek bir ağaçta birleştirilir komutun göreli yolları kullanabileceği yerdir. Çalışma dizini kökü oluşturacaktır.