Chromium Chronicle #7: Ön İşleme Kaynağı

7. Bölüm: Bruce Dawson, Seattle, Washington (Ekim 2019)
Önceki bölümler

Bazen tek bir Chromium kaynak dosyasını elle derlemek yararlı olur. Örneğin, derleyici optimizasyon seçenekleriyle denemeler yapabilir, bazı kolay makro ayrıntılarını anlamak için dosyayı ön işlemeden geçirerek veya derleyici hatasını en aza indirebilirsiniz.

Birkaç püf noktası, Chromium geliştiricisinin belirli bir kaynak dosyayı derleyen komutu, gerekli değişiklikler yaparak bulup yürütmesini sağlar.

Çıkış dizininize gidin ve ^ son ekini kullanarak ilgili dosyayı (ve tüm bağımlılıkları) derlemek için autoninja (veya ninja) kullanın. Bu son ek, bu durumda ninja'ya belirtilen file—version.o çıkışını oluşturmasını söyler. Ardından, dosyaya dokunun ve (yalnızca) dosyayı -v (ayrıntılı) işaretiyle ninja'ya göndermek için tekrar derleyin:

Linux veya OSX'te:

autoninja ../../base/version.cc^
touch ../../base/version.cc
autoninja -v ../../base/version.cc^

Windows cmd kabuğunda ^ özel bir karakterdir ve kod dışına alınmalıdır:

C:\> autoninja ../../base/version.cc^^
C:\> touch ../../base/version.cc
C:\> autoninja -v ../../base/version.cc^^

autoninja -v komutunun tipik çıkışı aşağıdaki gibi görünür (önemli ölçüde kırpılmıştır):

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /showIncludes -imsvc ...

Bu komut, ilgili dosyayı derlemenize olanak tanır. Ön işlenmiş çıkışı almak için aşağıdaki adımları uygulayın:

Linux veya OSX'te, sondaki -o obj/base/base/version.o blokunu kaldırıp -E ekleyin. Bu işlem, derleyiciye, önceden işlenmiş dosyayı stdout'a yazdırmasını söyler.

Çıkışı aşağıdaki gibi bir dosyaya yönlendirin:

../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD ... -E >version.i

Windows'da /showIncludes seçeneğini başından kaldırın (her #include için bir çıktı satırı yazdırır) ve ardından dosyayı derlemek yerine önceden işlemek için /P öğesini ekleyin. Sonuçlar, version.i içinde mevcut dizine kaydedilecek:

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo -imsvc ... /P

Artık makroların gerçekte ne yaptığını görmek için ön işlenmiş dosyayı inceleyebilir veya deneysel derleyici anahtarı değişiklikleri yapıp neler olduğunu görmek için yeniden derleme yapabilirsiniz.

Ek Kaynaklar

  • Hızlı Chrome Derlemeleri: Derleme optimizasyonuyla ilgili daha fazla ipucu için (Windows'a odaklı).
  • ETW: Chrome'da veya derlemede Windows performans sorunlarını nasıl bulacağınızı öğrenmek için ETW (Xperf olarak da bilinir) belgelerini okuyun.