BUILD
dosyaları basit ve bildirim amaçlı olmalıdır. Genellikle
bir dizi hedef beyanından oluşur. Kod tabanınız ve BUILD
olarak
büyüdükçe aşağıdaki gibi bir yineleme fark edebilirsiniz:
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 yinelenmesi genellikle sorun değildir. Bu, dosyayı daha
okunabilir: her beyan, herhangi bir bağlam olmadan okunup anlaşılabilir. Bu
sadece insanlar için değil, harici araçlar için de önemli. Örneğin,
araç, eksik bağımlılıkları eklemek için BUILD
dosyalarını okuyabilir ve güncelleyebilir.
Kodun yeniden düzenlenmesi ve kodun yeniden kullanılması bu tür otomatik
tıklayın.
Değerleri paylaşmak yararlı oluyorsa (örneğin, değerlerin senkronize edilmesi gerekiyorsa) şuna bir değişken ekleyebilirsiniz:
COPTS = ["-DVERSION=5"]
cc_library(
name = "foo",
copts = COPTS,
srcs = ["foo.cc"],
)
cc_library(
name = "bar",
copts = COPTS,
srcs = ["bar.cc"],
deps = [":foo"],
)
Artık birden fazla beyanda COPTS
değeri kullanılıyor. Kural olarak, büyük harf kullanın
ve global sabit değerleri adlandırmak için kullanılan harflerdir.
Birden çok BUILD dosyasında değişken paylaşma
Birden fazla BUILD
dosyasında bir değer paylaşmanız gerekiyorsa onu yerleştirmeniz gerekir
.bzl
dosyasında. .bzl
dosya tanımlar (değişkenler ve işlevler) içeriyor
BUILD
dosyada kullanılabilir.
path/to/variables.bzl
dilinde ş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"],
)