Yazılım Tanımlı Araç (SDV) platformu, kod tabanında çok sayıda VSIDL kataloğu içerir. CATALOG_UPDATE dosyası, her katalog için merkezi bir yapılandırma sağlayarak hem otomatik güncellemeleri hem de IDE entegrasyonunu mümkün kılar.
CATALOG_UPDATE dosyasının rolü
CATALOG_UPDATE dosyasının iki temel amacı vardır:
- Otomatik güncellemeler: Dosya, derleyici veya bağımlılıklar değiştiğinde
regeneratoraracının sistemdeki tüm katalogları bulup yeniden derlemesine olanak tanır. - Dil Sunucusu Protokolü (LSP) Desteği: VSIDL Dil Sunucusu, katalog kökünü bulmak ve bağımlılıkları çözmek için bu dosyayı kullanır. Bu sayede, diğer kataloglarda tanımlanan türler için "Tanıma Git", otomatik tamamlama ve gerçek zamanlı doğrulama gibi özellikler kullanılabilir.
Katalog yapılandırma
VSIDL kataloğu için otomatik güncellemeleri ve LSP desteğini etkinleştirmek istiyorsanız kataloğun kök dizininde bir CATALOG_UPDATE dosyası oluşturun. Bu dosya bir metin protobuf dosyasıdır.
Katalog yapılandırma alanları
output_path(dize, isteğe bağlı): Katalog kökünden, oluşturulan ara katman yazılımı kodunun yerleştirilmesi gereken dizine giden göreli yol.dependency_catalog_paths(yinelenen dize): Diğer katalog dizinlerinin göreli yollarının listesi. LSP sunucusu, harici türleri çözümlemek için bu yolları kullanır.vsidlc_gen_args(dize, isteğe bağlı):vsidlcyöntemine iletilen bağımsız değişkenler. LSP sunucusu, doğru doğrulama kurallarını (ör."--apex") uygulamak için bunları inceler.prebuilts_output_path(dize, isteğe bağlı): Oluşturulan çalışma zamanı yapılandırması önceden derlenmiş dosyalarının yolu.prebuilts_filegroup(dize, isteğe bağlı): Önceden derlenmiş öğeler için Soongfilegroupadı.
Örnek yapılandırma
# 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"
Otomatik güncellemelere neden ihtiyaç duyulur?
Her katalog için oluşturulan kodu manuel olarak yönetmek, çeşitli nedenlerle sorunludur:
- Derleyici güncellemeleri: Derleyici, hata düzeltmeleri veya yeni özelliklerle güncellendiğinde, tutarlılığı korumak için bir
Android.bpdosyasındagenruletarafından kapsanmayan tüm oluşturulan kodlar ve dosyalar yenilenmelidir. - Bağımlılık yönetimi: Temel katalogda yapılan değişiklikler genellikle alt katalogların yeniden oluşturulmasını gerektirir.
- Doğruluk: Otomatik güncellemeler, yolları ve bağımlılıkları belirtirken insan hatası riskini azaltır.
Yeniden oluşturma aracını çalıştırma
regenerator aracı, SDV kökünden başlayarak dizin ağacını tarar ve tam olarak CATALOG_UPDATE adlı dosyaları arar.
Yapılandırılmış tüm katalogları güncellemek için:
Aracı derleyin:
m regeneratorAracı çalıştırın:
regeneratorİsteğe bağlı olarak, belirli bir dizin için yinelemeli olarak çalıştırın:
console regenerator --root /path/to/directory
Araç, oluşturulan dosyaları günceller ve değişikliklerin sistemin geri kalanıyla uyumlu olduğunu doğrulamak için tam derleme (m droid) gerçekleştirir.