Platform Software Defined Vehicle (SDV) berisi banyak katalog VSIDL di seluruh codebase. File CATALOG_UPDATE menyediakan konfigurasi terpusat untuk setiap katalog, sehingga memungkinkan pembaruan otomatis dan integrasi IDE.
Peran file CATALOG_UPDATE
File CATALOG_UPDATE memiliki dua tujuan utama:
- Pembaruan otomatis: File ini memungkinkan alat
regeneratormenemukan dan mengompilasi ulang semua katalog dalam sistem saat kompilator atau dependensi berubah. - Dukungan Language Server Protocol (LSP): Server Bahasa VSIDL menggunakan file ini untuk menemukan root katalog dan mengatasi dependensi. Hal ini memungkinkan fitur seperti "Go to Definition", pelengkapan otomatis, dan validasi real-time untuk jenis yang ditentukan dalam katalog lain.
Mengonfigurasi katalog
Untuk mengaktifkan pembaruan otomatis dan dukungan LSP untuk katalog VSIDL, buat file CATALOG_UPDATE di direktori root katalog. File ini adalah file protobuf teks.
Kolom konfigurasi katalog
output_path(string, opsional): Jalur relatif dari root katalog ke direktori tempat kode middleware yang dihasilkan harus ditempatkan.dependency_catalog_paths(string berulang): Daftar jalur relatif ke direktori katalog lainnya. Server LSP menggunakan jalur ini untuk mengatasi jenis eksternal.vsidlc_gen_args(string, opsional): Argumen yang diteruskan kevsidlc. Server LSP memeriksa argumen ini untuk menerapkan aturan validasi yang benar (misalnya,"--apex").prebuilts_output_path(string, opsional): Jalur untuk prebuilts konfigurasi runtime yang dihasilkan.prebuilts_filegroup(string, opsional): NamafilegroupSoong untuk prebuilts.
Contoh konfigurasi
# proto-file: //system/software_defined_vehicle/tools/regenerator/proto/catalog.proto
# proto-message: Catalog
output_path: ".."
dependency_catalog_paths: "../../../../../automotive_services/diagnostics/vsidl/v1"
vsidlc_gen_args: "--apex"
Alasan pembaruan otomatis diperlukan
Mempertahankan kode yang dihasilkan secara manual untuk setiap katalog bermasalah karena beberapa alasan:
- Pembaruan kompilator: Saat kompilator diupdate dengan perbaikan bug atau fitur baru, semua kode dan file yang dihasilkan yang tidak tercakup oleh
genruledalam fileAndroid.bpharus diperbarui untuk mempertahankan konsistensi. - Pengelolaan dependensi: Perubahan dalam katalog dasar sering kali mengharuskan katalog hilir dibuat ulang.
- Akurasi: Pembaruan otomatis mengurangi risiko kesalahan manusia saat menentukan jalur dan dependensi.
Menjalankan alat regenerator
Alat regenerator menelusuri hierarki direktori yang dimulai dari root SDV dan mencari file yang diberi nama persis CATALOG_UPDATE.
Untuk memperbarui semua katalog yang dikonfigurasi:
Buat alat:
m regeneratorJalankan alat:
regeneratorJika mau, jalankan secara rekursif untuk direktori tertentu:
console regenerator --root /path/to/directory
Alat ini memperbarui file yang dihasilkan dan melakukan build penuh (m droid) untuk memverifikasi bahwa perubahan tersebut kompatibel dengan sistem lainnya.