geçiş

Sorun bildirin Kaynağı göster

Bağımlılık ucundaki bir yapılandırma geçişini temsil eder. Örneğin, //package:foo, bir yapılandırma geçişiyle //package:bar öğesine bağlıysa bu iki hedefin yapılandırılması farklılık gösterir: //package:bar hedefinin geçişi, bir geçiş nesnesi tarafından tanımlanan işleve bağlı olarak //package:foo geçişi ile belirlenir.

Üyeler

geçiş

transition transition(implementation, inputs, outputs)

Bir dizi giriş derleme ayarını okuyan ve bir dizi çıktı derleme ayarı yazan bir 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 gerekli
Bu geçişi uygulayan işlev. Bu işlev her zaman iki parametreye sahiptir: settings ve attr. settings parametresi, anahtar grubu giriş parametresiyle tanımlanan bir sözlüktür. Bu nedenle, inputs //foo içeriyorsa her --//foo=bar derleme ayarı için settings için bir settings['//foo']='bar' girişi olur.

attr parametresi, ctx.attr öğesine başvurudur. Böylece, özellik parametresine bağlı geçişleri mümkün kılmak için uygulama işlevi, kuralın özelliklerine erişebilir.

Bu işlev, derleme ayarı değerine derleme ayarı tanımlayıcısından 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ğere günceller. Diğer ayarlar değişmez. Bu işlev ayrıca, bölünme geçişi durumunda list dicts veya dict dict döndürebilir.

inputs sequence/dize; gerekli
Bu geçiş tarafından okunabilecek derleme ayarlarının listesi. Bu, uygulama işlevi parametresinin ayarlar parametresinin anahtar grubu haline gelir.
outputs sequence/dize; gerekli
Bu geçiş tarafından yazılabilecek derleme ayarlarının listesi. Bu değer, bu geçiş tarafından döndürülen sözlük anahtar kümesinin üst kümesi olmalıdır.