BUILD
dosyaları basit ve bildirimsel olacak şekilde tasarlanır. Genellikle bir dizi hedef beyanından oluşurlar. Kod tabanınız ve BUILD
dosyalarınız büyüdükçe muhtemelen bazı tekrarlar olduğunu fark edeceksiniz. Örneğin:
cc_library(
name = "foo",
copts = ["-DVERSION=5"],
srcs = ["foo.cc"],
)
cc_library(
name = "bar",
copts = ["-DVERSION=5"],
srcs = ["bar.cc"],
deps = [":foo"],
)
BUILD
dosyasındaki kod tekrarı genellikle sorun teşkil etmez. Bu, dosyayı daha okunabilir hale getirebilir: Her bildirim, bağlam olmadan okunabilir ve anlaşılabilir. Bu, yalnızca insanlar için değil, harici araçlar için de önemlidir. Örneğin, bir araç, eksik bağımlılıkları eklemek için BUILD
dosyalarını okuyup güncelleyebilir.
Kod yeniden düzenleme ve kodun yeniden kullanılması, bu tür otomatik değişiklikleri engelleyebilir.
Değerleri paylaşmak yararlıysa (örneğin, değerlerin senkronize edilmesi 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 bildirim artık COPTS
değerini kullanıyor. Genel sabitleri adlandırmak için geleneksel olarak büyük harfler kullanılır.
Değişkenleri birden fazla BUILD 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
bölümüne şunu 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"],
)