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.
Bu işlev, derleme ayarı tanımlayıcısından derleme ayarı değerine bir |
inputs
|
sequence of strings ;
zorunluBu geçiş tarafından okunabilen derleme ayarlarının listesi. Bu, uygulama işlevi parametresinin ayarlar parametresi için anahtar grubu haline gelir. |
outputs
|
sequence of strings ;
zorunluBu 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. |