ভেরিয়েবল শেয়ার করা

BUILD ফাইলগুলি সহজ এবং ঘোষণামূলক হওয়ার উদ্দেশ্যে করা হয়েছে৷ তারা সাধারণত একটি লক্ষ্য ঘোষণার একটি সিরিজ গঠিত হবে. আপনার কোড বেস এবং আপনার BUILD ফাইলগুলি বড় হওয়ার সাথে সাথে আপনি সম্ভবত কিছু সদৃশতা লক্ষ্য করবেন, যেমন:

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

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

BUILD ফাইলে কোড ডুপ্লিকেশন সাধারণত ঠিক থাকে। এটি ফাইলটিকে আরও পাঠযোগ্য করে তুলতে পারে: প্রতিটি ঘোষণা কোনো প্রসঙ্গ ছাড়াই পড়া এবং বোঝা যায়। এটি শুধুমাত্র মানুষের জন্য নয়, বহিরাগত সরঞ্জামগুলির জন্যও গুরুত্বপূর্ণ। উদাহরণস্বরূপ, একটি টুল অনুপস্থিত নির্ভরতা যোগ করতে BUILD ফাইলগুলি পড়তে এবং আপডেট করতে সক্ষম হতে পারে। কোড রিফ্যাক্টরিং এবং কোড পুনঃব্যবহার এই ধরনের স্বয়ংক্রিয় পরিবর্তন প্রতিরোধ করতে পারে।

যদি মানগুলি ভাগ করা উপযোগী হয় (উদাহরণস্বরূপ, যদি মানগুলি অবশ্যই সিঙ্কে রাখা উচিত), আপনি একটি পরিবর্তনশীল প্রবর্তন করতে পারেন:

COPTS = ["-DVERSION=5"]

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

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

একাধিক ঘোষণা এখন COPTS মান ব্যবহার করে। নিয়ম অনুসারে, বৈশ্বিক ধ্রুবকের নাম দিতে বড় হাতের অক্ষর ব্যবহার করুন।

একাধিক BUILD ফাইল জুড়ে ভেরিয়েবল শেয়ার করা

আপনি যদি একাধিক BUILD ফাইল জুড়ে একটি মান ভাগ করতে চান তবে আপনাকে এটি একটি .bzl ফাইলে রাখতে হবে। .bzl ফাইলে সংজ্ঞা (ভেরিয়েবল এবং ফাংশন) থাকে যা BUILD ফাইলে ব্যবহার করা যেতে পারে।

path/to/variables.bzl এ, লিখুন:

COPTS = ["-DVERSION=5"]

তারপর, আপনি পরিবর্তনশীল অ্যাক্সেস করতে আপনার BUILD ফাইল আপডেট করতে পারেন:

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