geçiş

Bağımlılık kenarı boyunca yapılandırma geçişini temsil eder. Örneğin, //package:foo, yapılandırma geçişiyle //package:bar'ye bağlıysa //package:bar'nin (ve bağımlılıklarının) yapılandırması, //package:foo'nın yapılandırması artı geçiş işlevi tarafından belirtilen değişiklikler olur.

Üyeler

geçiş

transition transition(*, implementation, inputs, outputs)

Bir dizi giriş derleme ayarını okuyup bir dizi çıkış derleme ayarını yazan geçiş.

Örnek:

def _transition_impl(settings, attr):
    # This transition just reads the current CPU value as a demonstration.
    # A real transition could incorporate this into its followup logic.
    current_cpu = settings["//command_line_option:cpu"]
    return {"//command_line_option:compilation_mode": "dbg"}

build_in_debug_mode = transition(
    implementation = _transition_impl,
    inputs = ["//command_line_option:cpu"],
    outputs = ["//command_line_option:compilation_mode"],
)

Daha fazla bilgiyi burada bulabilirsiniz.

Parametreler

Parametre Açıklama
implementation callable; required
Bu geçişi uygulayan işlev. Bu işlevin her zaman iki parametresi vardır: settings ve attr. settings param, anahtar kümesi inputs parametresiyle tanımlanan bir sözlüktür. Bu nedenle, her derleme ayarı --//foo=bar için inputs, //foo içeriyorsa settings, settings['//foo']='bar' girişine sahip olur.

attr parametresi, ctx.attr öğesine yapılan bir referanstır. Bu, uygulama işlevinin, özelliklere göre parametrelendirilmiş geçişler yapabilmesi için kuralın özelliklerine erişmesini sağlar.

Bu işlev, derleme ayarı tanımlayıcısından derleme ayarı değerine bir dict döndürmelidir. Bu, yapılandırma geçişini temsil eder: Döndürülen dict içindeki her giriş için geçiş, bu ayarı yeni değerle günceller. Diğer tüm ayarlar değiştirilmez. Bu işlev, bölünmüş geçiş durumunda listdict veya dictdict dizisi de döndürebilir.

inputs sequence of strings; required
Bu geçiş tarafından okunabilen derleme ayarlarının listesi. Bu, uygulama işlevi parametresinin ayarlar parametresinin anahtar grubu olur.
outputs string'lerin sequence'ı; gerekli
Bu geçiş tarafından yazılabilecek derleme ayarlarının listesi. Bu, geçiş tarafından döndürülen sözlüğün anahtar kümesinin üst kümesi olmalıdır.

and_then

transition transition.and_then(transition)

Bu geçişi ve ardından belirtilen geçişi uygulayan yeni bir geçiş döndürür. İkinci geçiş, bu geçişin oluşturduğu derleme ayarlarını okur. Orijinal geçişler değiştirilmez. Sonuç da bir geçiş olup daha fazla bileşene ayrılabilir.

Bileşen geçişlerinin kullanılabildiği her yerde bir kompozisyon, kural veya özellik geçişi olarak kullanılabilir. Oluşturulan geçişlerden en fazla biri yürütme yapılandırmasını hedefleyebilir (ör.config.exec). Zincirdeki iki geçiş yapılandırmayı böldüğünde sonuç, bu bölümlerin çapraz ürünü olur. Birleştirilmiş her bölümün anahtarı, bileşen anahtarlarının virgülle ayrılmış birleştirilmiş halidir.

Parametreler

Parametre Açıklama
transition transition; required
Bundan sonra uygulanacak geçiş.