geçiş

Sorun bildirin Kaynağı göster

Bir bağımlılık ucu boyunca bir yapılandırma geçişini temsil eder. Örneğin, //package:foo, yapılandırma geçişiyle //package:bar kullanıyorsa bu iki hedefin yapılandırması farklılık gösterir: //package:bar geçişi, bir geçiş nesnesi tarafından tanımlanan işleve bağlı olarak //package:foo geçişi tarafından belirlenecektir.

Üyeler

geçiş

transition transition(implementation, inputs, outputs)

Bir dizi giriş derleme ayarını okuyan ve bir dizi çıkış 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"],
)

Ayrıntılı bilgi için buraya göz atın.

Parametreler

Parametre Açıklama
implementation gerekli
Bu geçişi uygulayan işlev. Bu işlevde her zaman iki parametre vardır: settings ve attr. settings parametresi, anahtar grubu giriş parametresi tarafından tanımlanan bir sözlüktür. Dolayısıyla, --//foo=bar kapsamındaki her derleme ayarı için inputs değeri //foo içeriyorsa settings bir settings['//foo']='bar' girişine sahip olur.

attr parametresi, ctx.attr için bir referanstır. Böylece uygulama işlevi, özellik parametreli geçişleri mümkün kılmak için kuralın özelliklerine erişebilir.

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ş, ilgili ayarı yeni değerle günceller. Diğer ayarların hiçbiri değişmez. Bu işlev ayrıca, bölme geçişi durumunda list / dict veya dict dict sn. de döndürebilir.

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