transition

Laporkan masalah Lihat sumber

Mewakili transisi konfigurasi melintasi tepi dependensi. Misalnya, jika //package:foo bergantung pada //package:bar dengan transisi konfigurasi, konfigurasi kedua target ini akan berbeda: Transisi //package:bar akan ditentukan oleh //package:foo, sesuai dengan fungsi yang ditentukan oleh objek transisi.

Anggota

transition

transition transition(implementation, inputs, outputs)

Transisi yang membaca satu set setelan build input dan menulis set setelan build output.

Contoh:

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"],
)

Untuk detail selengkapnya, lihat di sini.

Parameter

Parameter Deskripsi
implementation diperlukan
Fungsi yang menerapkan transisi ini. Fungsi ini selalu memiliki dua parameter: settings dan attr. Parameter settings adalah kamus yang kumpulan kuncinya ditentukan oleh parameter input. Jadi, untuk setiap setelan build --//foo=bar, jika inputs berisi //foo, settings akan memiliki entri settings['//foo']='bar'.

Parameter attr adalah referensi ke ctx.attr. Hal ini memberi fungsi penerapan akses ke atribut aturan untuk memungkinkan transisi berparameter atribut.

Fungsi ini harus menampilkan dict dari ID setelan build ke nilai setelan build; fungsi ini mewakili transisi konfigurasi: untuk setiap entri dalam dict yang ditampilkan, transisi akan memperbarui setelan tersebut ke nilai baru. Semua setelan lainnya tidak berubah. Fungsi ini juga dapat menampilkan list dari dict atau dict dari dict dalam kasus transisi terpisah.

inputs urutan string; wajib
Daftar setelan build yang dapat dibaca dengan transisi ini. Ini menjadi kumpulan kunci parameter setelan parameter fungsi penerapan.
outputs urutan string; wajib
Daftar setelan build yang dapat ditulis oleh transisi ini. Ini harus berupa superset dari kumpulan kunci kamus yang ditampilkan oleh transisi ini.