Đang chia sẻ các biến

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Báo cáo vấn đề Xem nguồn

Tệp BUILD nhằm đơn giản và mang tính khai báo. Các mục này thường bao gồm một loạt nội dung khai báo mục tiêu. Khi cơ sở mã và tệp BUILD của bạn lớn hơn, bạn có thể nhận thấy một số bản sao, chẳng hạn như:

cc_library(
  name = "foo",
  copts = ["-DVERSION=5"],
  srcs = ["foo.cc"],
)

cc_library(
  name = "bar",
  copts = ["-DVERSION=5"],
  srcs = ["bar.cc"],
  deps = [":foo"],
)

Việc sao chép mã trong tệp BUILD thường ổn định. Cách này có thể làm cho tệp dễ đọc hơn: mỗi nội dung khai báo đều có thể đọc được và không có bối cảnh nào. Điều này không chỉ quan trọng đối với con người mà còn quan trọng đối với các công cụ bên ngoài. Ví dụ: một công cụ có thể đọc và cập nhật các tệp BUILD để thêm các phần phụ thuộc bị thiếu. Việc tái cấu trúc mã và sử dụng lại mã có thể ngăn chặn loại nội dung sửa đổi tự động này.

Nếu bạn nên chia sẻ giá trị (ví dụ: nếu các giá trị phải được đồng bộ hoá), thì bạn có thể giới thiệu một biến:

COPTS = ["-DVERSION=5"]

cc_library(
  name = "foo",
  copts = COPTS,
  srcs = ["foo.cc"],
)

cc_library(
  name = "bar",
  copts = COPTS,
  srcs = ["bar.cc"],
  deps = [":foo"],
)

Nhiều phần khai báo hiện sử dụng giá trị COPTS. Theo quy ước, hãy sử dụng chữ cái viết hoa để đặt tên cho hằng số toàn cục.

Chia sẻ biến trên nhiều tệp BUILD

Nếu cần chia sẻ giá trị trên nhiều tệp BUILD, bạn phải đặt giá trị đó vào tệp .bzl. Tệp .bzl chứa các định nghĩa (biến và hàm) có thể dùng trong các tệp BUILD.

Trong path/to/variables.bzl, hãy viết:

COPTS = ["-DVERSION=5"]

Sau đó, bạn có thể cập nhật các tệp BUILD để truy cập biến:

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"],
)