Android.bp
dosyaları, tasarımı gereği basittir. Koşul veya
kontrol akışı ifadeleri; tüm karmaşıklık,
Git. Mümkün olduğunda Android.bp
dosyalarının söz dizimi ve anlamları şuna benzer:
Bazel BUILD dosyaları.
Modüller
Android.bp
dosyasındaki bir modül,
modül türü
ardından name: "value",
biçiminde bir özellik grubu gelir:
cc_binary {
name: "gzip",
srcs: ["src/test/minigzip.c"],
shared_libs: ["libz"],
stl: "none",
}
Her modülde name
özelliği olmalı ve değer,
içindeki name
özellik değerleri dışında, Android.bp
dosyanın tümü
ad alanlarını ve önceden oluşturulmuş modülleri kapsar.
srcs
özelliği, modülü oluşturmak için kullanılan kaynak dosyaları
dize listesidir. Üretken, yüksek performanslı diğer modüllerin
modül referansından yararlanarak genrule
veya filegroup
gibi kaynak dosyalar
söz dizimi ":<module-name>"
.
Geçerli modül türlerinin ve özelliklerinin listesi için Soong Modülleri Referansı.
Türler
Değişkenler ve özellikler güçlü bir şekilde yazılmıştır. Değişkenler ilk atamayı ve modül türüne göre statik olarak ayarlanan özellikleri içerir. İlgili içeriği oluşturmak için kullanılan desteklenen türler şunlardır:
- Boole (
true
veyafalse
) - Tam sayılar (
int
) - Dizeler (
"string"
) - Dize listeleri (
["string1", "string2"]
) - Haritalar (
{key1: "value1", key2: ["value2"]}
)
Haritalar, iç içe yerleştirilmiş haritalar da dahil olmak üzere herhangi bir türde değeri içerebilir. Listeler ve haritalar son değerden sonra virgül koyun.
Küreler
Dosya listesi alan srcs
gibi özellikler de glob alabilir
belirler. Küre kalıpları, normal UNIX joker karakterini (*
) içerebilir. Örneğin,
*.java
. Küre kalıpları, yol olarak tek bir **
joker karakteri de içerebilir
öğesi oluşturun. Örneğin,
java/**/*.java
, hem java/Main.java
hem de
java/com/android/Main.java
kalıplar.
Değişkenler
Android.bp
dosyası, üst düzey değişken atamaları içerebilir:
gzip_srcs = ["src/test/minigzip.c"],
cc_binary {
name: "gzip",
srcs: gzip_srcs,
shared_libs: ["libz"],
stl: "none",
}
Değişkenler, tanımlandıkları dosyanın geri kalanına da dahil edilir
dosyaları olarak kullanabilirsiniz. Değişkenler bir istisna dışında sabittir:
ancak öncesinde bir +=
atamasıyla eklenebilir
referans alın.
Yorumlar
Android.bp
dosyaları, C stili çok satırlı /* */
ve C++ stili içerebilir
tek satırlık //
yorumları.
Operatörler
Dizeler, dize listeleri ve haritalar + operatörü kullanılarak eklenebilir.
Tam sayılar +
operatörü kullanılarak toplanabilir. Bir harita eklendiğinde
bulunan tüm anahtarların değerlerini ekleyerek her iki eşlemedeki anahtarların birleşimini
iki harita.
Koşullar
Yakındag, Android.bp
dosyalarında koşulları desteklemez. Bunun yerine
Koşullu kurallar gerektirecek derleme kurallarının karmaşıklığı Go'da işlenir,
üst düzey dil özelliklerinin kullanılabileceği koşullar ve dolaylı bağımlılıklar
koşullar tarafından ortaya konabilir. Çoğu koşul, bir
haritadaki değerlerden birinin seçilip eklendiği harita mülkü
üst düzey mülklere iletir.
Örneğin, mimariye özel dosyaları desteklemek için:
cc_library {
...
srcs: ["generic.cpp"],
arch: {
arm: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}
Biçimlendirici
Shortg, Blueprint dosyaları için şuna benzer bir standart biçimlendirici içerir:
gofmt olarak değiştirin. Tümünü yinelenmeli olarak yeniden biçimlendirmek için
Geçerli dizindeki Android.bp
dosya için şu komutu çalıştırın:
bpfmt -w .
Standart biçimde dört boşluk girintisi ve her öğeden sonra yeni satırlar bulunur (birden çok öğeli liste ve listelerde ve haritalarda son virgüldür).