BUILD
dosyaları basit ve anlaşılır olmalıdır. Bunlar genellikle bir dizi hedef beyandan oluşur. Kod tabanınız ve BUILD
dosyalarınız büyüdükçe muhtemelen bazı tekrarlar görebilirsiniz:
cc_library(
name = "foo",
copts = ["-DVERSION=5"],
srcs = ["foo.cc"],
)
cc_library(
name = "bar",
copts = ["-DVERSION=5"],
srcs = ["bar.cc"],
deps = [":foo"],
)
BUILD
dosyalarında kod yinelemesi genellikle uygundur. Bu, dosyayı daha okunabilir hale getirebilir: Her beyan, herhangi bir bağlam olmadan okunabilir ve anlaşılabilir. Bu hem insan hem de dışarıdan araçlar için önemli. Örneğin, bir araç eksik bağımlılıkları eklemek için BUILD
dosyalarını okuyup güncelleyebilir.
Kod yeniden düzenleme ve kod yeniden kullanımı bu tür otomatik değişiklikleri engelleyebilir.
Değerleri paylaşmak faydalıysa (örneğin, değerlerin senkronize durumda tutulması gerekiyorsa) bir değişken kullanabilirsiniz:
COPTS = ["-DVERSION=5"]
cc_library(
name = "foo",
copts = COPTS,
srcs = ["foo.cc"],
)
cc_library(
name = "bar",
copts = COPTS,
srcs = ["bar.cc"],
deps = [":foo"],
)
Birden fazla tanımlama bilgisi artık COPTS
değerini kullanıyor. Genel olarak, sabit değerleri adlandırmak için büyük harfler kullanın.
Değişkenleri birden çok DERLE dosyasında paylaşma
Bir değeri birden fazla BUILD
dosyasında paylaşmanız gerekiyorsa bu değeri bir .bzl
dosyasına yerleştirmeniz gerekir. .bzl
dosyaları, BUILD
dosyalarında kullanılabilecek tanımlar (değişkenler ve işlevler) içerir.
path/to/variables.bzl
dilinde şu ifadeyi yazın:
COPTS = ["-DVERSION=5"]
Ardından, değişkene erişmek için BUILD
dosyalarınızı güncelleyebilirsiniz:
load("//path/to:variables.bzl", "COPTS")
cc_library(
name = "foo",
copts = COPTS,
srcs = ["foo.cc"],
)
cc_library(
name = "bar",
copts = COPTS,
srcs = ["bar.cc"],
deps = [":foo"],
)