bazel [<startup options>] <command> [<args>]
bazel [<startup options>] <command> [<args>] -- [<target patterns>]
विकल्प का सिंटैक्स
Bazel को अलग-अलग तरीकों से विकल्प दिए जा सकते हैं. जिन विकल्पों के लिए वैल्यू की ज़रूरत होती है उन्हें बराबर के चिह्न या स्पेस के साथ पास किया जा सकता है:
--<option>=<value> --<option> <value>
-<short_form> <value>
बूलियन विकल्पों को इस तरह चालू किया जा सकता है:
--<option> --<option>=[true|yes|1]
--no<option> --<option>=[false|no|0]
आम तौर पर, ट्रिस्टेट विकल्प डिफ़ॉल्ट रूप से ऑटोमैटिक पर सेट होते हैं. इन्हें इस तरह से चालू किया जा सकता है:
--<option>=[true|yes|1]
--no<option> --<option>=[false|no|0]
निर्देश
aquery |
यह दिए गए टारगेट का विश्लेषण करता है और ऐक्शन ग्राफ़ से क्वेरी करता है. |
build |
यह तय किए गए टारगेट बनाता है. |
canonicalize-flags |
यह फ़ंक्शन, Bazel के विकल्पों की सूची को कैननिकल बनाता है. |
clean |
यह कमांड, आउटपुट फ़ाइलों को हटाती है. साथ ही, सर्वर को रोकने का विकल्प भी देती है. |
coverage |
यह तय किए गए टेस्ट टारगेट के लिए, कोड कवरेज रिपोर्ट जनरेट करता है. |
cquery |
यह कॉन्फ़िगरेशन के साथ, तय किए गए टारगेट को लोड करता है, उनका विश्लेषण करता है, और उनसे क्वेरी करता है. |
dump |
यह Bazel सर्वर प्रोसेस की इंटरनल स्थिति को डंप करता है. |
fetch |
यह उन बाहरी रिपॉज़िटरी को फ़ेच करता है जो टारगेट के लिए ज़रूरी हैं. |
help |
निर्देशों या इंडेक्स के लिए मदद प्रिंट करता है. |
info |
Bazel सर्वर के बारे में रनटाइम की जानकारी दिखाता है. |
license |
यह सॉफ़्टवेयर के लाइसेंस को प्रिंट करता है. |
mobile-install |
मोबाइल डिवाइसों पर ऐप्लिकेशन इंस्टॉल करने के लिए टारगेट करता है. |
mod |
यह Bzlmod के बाहरी डिपेंडेंसी ग्राफ़ के बारे में क्वेरी करता है |
print_action |
यह विकल्प, किसी फ़ाइल को कंपाइल करने के लिए कमांड-लाइन आर्ग्युमेंट प्रिंट करता है. |
query |
डिपेंडेंसी ग्राफ़ क्वेरी को एक्ज़ीक्यूट करता है. |
run |
इससे तय किया गया टारगेट चलता है. |
shutdown |
यह Bazel सर्वर को बंद कर देता है. |
test |
यह कमांड, तय किए गए टेस्ट टारगेट बनाती है और उन्हें चलाती है. |
vendor |
यह फ़्लैग --vendor_dir के ज़रिए तय किए गए फ़ोल्डर में, बाहरी रिपॉज़िटरी फ़ेच करता है. |
version |
Bazel के वर्शन की जानकारी दिखाता है. |
स्टार्टअप के विकल्प
- ऐसे विकल्प जो कमांड से पहले दिखते हैं और जिन्हें क्लाइंट पार्स करता है:
--[no]autodetect_server_javabasedefault: "true"-
जब --noautodetect_server_javabase पास किया जाता है, तो Bazel, bazel सर्वर को चलाने के लिए लोकल JDK पर वापस नहीं आता. इसके बजाय, यह बंद हो जाता है.
--[no]batchdefault: "false"-
अगर इसे सेट किया जाता है, तो Bazel को स्टैंडर्ड क्लाइंट/सर्वर मोड में चलाने के बजाय, सिर्फ़ एक क्लाइंट प्रोसेस के तौर पर चलाया जाएगा. इसमें सर्वर नहीं होगा. यह सुविधा अब काम नहीं करती और इसे हटा दिया जाएगा. अगर आपको ऐसे सर्वर से बचना है जो बंद नहीं होते हैं, तो कृपया सर्वर को साफ़ तौर पर बंद करें.
टैग:
loses_incremental_state,bazel_internal_configuration,deprecated --[no]batch_cpu_schedulingdefault: "false"-
सिर्फ़ Linux पर; Blaze के लिए 'batch' सीपीयू शेड्यूलिंग का इस्तेमाल करें. यह नीति उन वर्कलोड के लिए काम की है जो इंटरैक्टिव नहीं हैं, लेकिन अपनी नाइस वैल्यू को कम नहीं करना चाहते. 'man 2 sched_setscheduler' देखें. अगर यह नीति 'गलत है' पर सेट है, तो Bazel सिस्टम कॉल नहीं करेगा.
--bazelrc=<path>कई बार इस्तेमाल किया गया हो-
उपयोगकर्ता की .bazelrc फ़ाइल की जगह. इसमें Bazel के विकल्पों की डिफ़ॉल्ट वैल्यू होती हैं. /dev/null से पता चलता है कि आगे के सभी
--bazelrcको अनदेखा किया जाएगा.यह उपयोगकर्ता की rc फ़ाइल को खोजने की सुविधा को बंद करने के लिए उपयोगी है. उदाहरण के लिए, रिलीज़ बिल्ड में. इस विकल्प को एक से ज़्यादा बार भी तय किया जा सकता है. उदाहरण के लिए,--bazelrc=x.rc --bazelrc=y.rc --bazelrc=/dev/null --bazelrc=z.rcके साथ,- x.rc और y.rc को पढ़ा जाता है.
- /dev/null की वजह से, z.rc को अनदेखा कर दिया जाता है. अगर कोई फ़ाइल नहीं बताई जाती है, तो Bazel इन दो जगहों पर मौजूद पहली .bazelrc फ़ाइल का इस्तेमाल करता है: वर्कस्पेस डायरेक्ट्री और उपयोगकर्ता की होम डायरेक्ट्री. ध्यान दें: कमांड लाइन के विकल्प, हमेशा bazelrc में मौजूद किसी भी विकल्प से ज़्यादा प्राथमिकता वाले होते हैं.
टैग:
changes_inputs --[no]block_for_lockdefault: "true"-
--noblock_for_lock विकल्प का इस्तेमाल करने पर, Bazel किसी चालू कमांड के पूरा होने का इंतज़ार नहीं करता. इसके बजाय, वह तुरंत बंद हो जाता है.
टैग:
eagerness_to_exit --[no]client_debugdefault: "false"-
अगर यह वैल्यू 'सही है' पर सेट है, तो क्लाइंट से डीबग जानकारी को stderr में लॉग करें. इस विकल्प को बदलने से, सर्वर फिर से चालू नहीं होगा.
--connect_timeout_secs=<an integer>default: "30"-
क्लाइंट, सर्वर से कनेक्ट करने के हर प्रयास के लिए कितना समय इंतज़ार करता है
--digest_function=<hash function>डिफ़ॉल्ट: ब्यौरा देखें-
फ़ाइल डाइजेस्ट का हिसाब लगाते समय इस्तेमाल किया जाने वाला हैश फ़ंक्शन.
--experimental_cgroup_parent=<path>डिफ़ॉल्ट: ब्यौरा देखें-
वह cgroup जहां Bazel सर्वर को ऐब्सलूट पाथ के तौर पर शुरू करना है. सर्वर प्रोसेस, हर कंट्रोलर के लिए बताए गए cgroup में शुरू की जाएगी. उदाहरण के लिए, अगर इस फ़्लैग की वैल्यू /build/bazel है और सीपीयू और मेमोरी कंट्रोलर को क्रमशः /sys/fs/cgroup/cpu और /sys/fs/cgroup/memory पर माउंट किया गया है, तो सर्वर को cgroups /sys/fs/cgroup/cpu/build/bazel और /sys/fs/cgroup/memory/build/bazel में शुरू किया जाएगा.अगर बताया गया cgroup, एक या उससे ज़्यादा कंट्रोलर के लिए लिखने लायक नहीं है, तो यह गड़बड़ी नहीं है. इस विकल्प का उन प्लैटफ़ॉर्म पर कोई असर नहीं पड़ता जिन पर cgroup काम नहीं करते.
टैग:
bazel_monitoring,execution --[no]experimental_run_in_user_cgroupdefault: "false"-
अगर यह विकल्प सही है, तो Bazel सर्वर को systemd-run के साथ चलाया जाएगा. साथ ही, उपयोगकर्ता के पास cgroup का मालिकाना हक होगा. इस फ़्लैग का असर सिर्फ़ Linux पर पड़ता है.
टैग:
bazel_monitoring,execution --failure_detail_out=<path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेट है, तो यह ऐसी जगह के बारे में बताता है जहां सर्वर के काम न करने पर, failure_detail protobuf मैसेज लिखा जा सकता है. ऐसा तब होता है, जब सर्वर सामान्य तरीके से gRPC के ज़रिए इसकी सूचना नहीं दे पाता. अगर ऐसा नहीं होता है, तो फ़ाइल ${OUTPUT_BASE}/failure_detail.rawproto में सेव होगी.
--[no]home_rcdefault: "true"-
$HOME/.bazelrc पर होम bazelrc फ़ाइल ढूंढनी है या नहीं
टैग:
changes_inputs --[no]idle_server_tasksdefault: "true"-
सर्वर का इस्तेमाल न होने पर, System.gc() को चलाएं
टैग:
loses_incremental_state,host_machine_resource_optimizations --[no]ignore_all_rc_filesdefault: "false"-
यह सभी rc फ़ाइलों को बंद कर देता है. भले ही, rc में बदलाव करने वाले अन्य फ़्लैग की वैल्यू कुछ भी हों. भले ही, ये फ़्लैग स्टार्टअप विकल्पों की सूची में बाद में आते हों.
टैग:
changes_inputs --io_nice_level={-1,0,1,2,3,4,5,6,7}default: "-1"-
सिर्फ़ Linux पर; sys_ioprio_set सिस्टम कॉल का इस्तेमाल करके, सबसे सही तरीके से आई/ओ शेड्यूल करने के लिए, 0 से 7 तक का लेवल सेट करें. 0 सबसे ज़्यादा प्राथमिकता वाला और 7 सबसे कम प्राथमिकता वाला है. अनुमानित शेड्यूल करने की सुविधा, सिर्फ़ चौथी प्राथमिकता तक के अनुरोधों को पूरा कर सकती है. अगर इसे नेगेटिव वैल्यू पर सेट किया जाता है, तो Bazel सिस्टम कॉल नहीं करता.
--local_startup_timeout_secs=<an integer>डिफ़ॉल्ट: "120"-
क्लाइंट, सर्वर से कनेक्ट होने के लिए ज़्यादा से ज़्यादा कितनी देर तक इंतज़ार करता है
--macos_qos_class=<a string>default: "default"-
macOS पर Bazel सर्वर चलाने पर, यह विकल्प QoS सेवा क्लास सेट करता है. इस फ़्लैग का असर अन्य सभी प्लैटफ़ॉर्म पर नहीं पड़ता. हालांकि, इसे इसलिए इस्तेमाल किया जाता है, ताकि rc फ़ाइलों को बिना किसी बदलाव के इन प्लैटफ़ॉर्म के बीच शेयर किया जा सके. संभावित वैल्यू ये हैं: user-interactive, user-initiated, default, utility, और background.
--max_idle_secs=<integer>default: "10800"-
यह बताता है कि बिल्ड सर्वर बंद होने से पहले, कितने सेकंड तक इंतज़ार करेगा. शून्य का मतलब है कि सर्वर कभी बंद नहीं होगा. इसे सिर्फ़ सर्वर शुरू होने पर पढ़ा जाता है. इस विकल्प को बदलने से सर्वर रीस्टार्ट नहीं होगा.
--output_base=<path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेट है, तो यह उस आउटपुट लोकेशन के बारे में बताता है जहां सभी बिल्ड आउटपुट लिखे जाएंगे. अगर ऐसा नहीं है, तो फ़ाइल ${OUTPUT_ROOT}/blaze${USER}/${MD5_OF_WORKSPACE_ROOT} में सेव होगी. ध्यान दें: अगर आपने इस वैल्यू के लिए, Bazel को एक बार कॉल करने से लेकर अगली बार कॉल करने तक कोई दूसरा विकल्प चुना है, तो हो सकता है कि आपको एक नया Bazel सर्वर शुरू करना पड़े. Bazel, हर आउटपुट बेस के लिए सिर्फ़ एक सर्वर शुरू करता है. आम तौर पर, हर Workspace के लिए एक आउटपुट बेस होता है. हालांकि, इस विकल्प की मदद से, हर Workspace के लिए एक से ज़्यादा आउटपुट बेस बनाए जा सकते हैं. इससे, एक ही मशीन पर एक ही क्लाइंट के लिए एक साथ कई बिल्ड चलाए जा सकते हैं. Bazel सर्वर को बंद करने का तरीका जानने के लिए, 'bazel help shutdown' देखें.
--output_user_root=<path>डिफ़ॉल्ट: ब्यौरा देखें-
उपयोगकर्ता के हिसाब से तय की गई डायरेक्ट्री, जिसमें सभी बिल्ड आउटपुट लिखे जाते हैं. डिफ़ॉल्ट रूप से, यह $USER का फ़ंक्शन होता है. हालांकि, किसी कॉन्स्टेंट को तय करके, बिल्ड आउटपुट को साथ मिलकर काम करने वाले उपयोगकर्ताओं के बीच शेयर किया जा सकता है.
--[no]preemptibledefault: "false"-
अगर यह वैल्यू सही है, तो कोई दूसरी कमांड शुरू होने पर, इस कमांड को रोका जा सकता है.
टैग:
eagerness_to_exit --[no]quietdefault: "false"-
अगर यह वैल्यू सही है, तो कंसोल पर सिर्फ़ गड़बड़ियों के मैसेज दिखेंगे, सूचना वाले मैसेज नहीं. इस विकल्प को बदलने से, सर्वर फिर से चालू नहीं होगा.
--server_jvm_out=<path>डिफ़ॉल्ट: ब्यौरा देखें-
सर्वर के JVM का आउटपुट लिखने की जगह. अगर इसे सेट नहीं किया जाता है, तो यह output_base में मौजूद किसी जगह पर डिफ़ॉल्ट रूप से सेट हो जाता है.
--[no]shutdown_on_low_sys_memdefault: "false"-
अगर max_idle_secs सेट है और बिल्ड सर्वर कुछ समय से इस्तेमाल नहीं किया जा रहा है, तो सिस्टम में खाली रैम कम होने पर सर्वर को बंद कर दें. सिर्फ़ Linux और MacOS पर उपलब्ध है.
--[no]system_rcdefault: "true"-
सिस्टम-वाइड bazelrc को खोजना है या नहीं.
टैग:
changes_inputs --[no]unlimit_coredumpsdefault: "false"-
यह सॉफ़्ट कोरडंप की सीमा को हार्ड लिमिट तक बढ़ाता है, ताकि सामान्य स्थितियों में सर्वर (इसमें JVM भी शामिल है) और क्लाइंट के कोरडंप बनाए जा सकें. इस फ़्लैग को अपने bazelrc में एक बार चिपकाएं और इसके बारे में भूल जाएं, ताकि जब आपको ऐसी स्थिति का सामना करना पड़े जो कोरडंप को ट्रिगर करती है, तो आपको कोरडंप मिलें.
--[no]windows_enable_symlinksdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो फ़ाइल कॉपी करने के बजाय Windows पर असली सिंबॉलिक लिंक बनाए जाएंगे. इसके लिए, Windows डेवलपर मोड चालू होना चाहिए. साथ ही, Windows 10 का 1703 या उसके बाद का वर्शन होना चाहिए.
--[no]workspace_rcdefault: "true"-
$workspace/.bazelrc पर, फ़ाइल फ़ोल्डर की bazelrc फ़ाइल ढूंढनी है या नहीं
टैग:
changes_inputs
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--host_jvm_args=<jvm_arg>कई बार इस्तेमाल किया गया हो-
Blaze को चलाने वाले JVM को पास किए जाने वाले फ़्लैग.
--host_jvm_debug-
कुछ अतिरिक्त JVM स्टार्टअप फ़्लैग जोड़ने का आसान विकल्प. इससे JVM, स्टार्टअप के दौरान तब तक इंतज़ार करता है, जब तक आप पोर्ट 5005 से JDWP के साथ काम करने वाले डीबगर (जैसे कि Eclipse) से कनेक्ट नहीं हो जाते.
बढ़कर:
--host_jvm_args=-agentlib:jdwp=transport=dt_socket,server=y,address=5005 --server_javabase=<jvm path>default: ""-
Bazel को चलाने के लिए इस्तेमाल किए गए JVM का पाथ.
सभी निर्देशों के लिए उपलब्ध विकल्प
- ऐसे विकल्प जो कमांड से पहले दिखते हैं और जिन्हें क्लाइंट पार्स करता है:
--distdir=<a path>कई बार इस्तेमाल किया गया हो-
नेटवर्क का ऐक्सेस पाने से पहले, संग्रहों को खोजने के लिए अन्य जगहें.
--[no]experimental_repository_cache_hardlinksdefault: "false"-
अगर यह विकल्प सेट है, तो कैश मेमोरी में मौजूद फ़ाइल को कॉपी करने के बजाय, रिपॉज़िटरी कैश मेमोरी उसे हार्डलिंक करेगी. ऐसा डिस्क में जगह बचाने के लिए किया जाता है.
--experimental_repository_downloader_retries=<an integer>डिफ़ॉल्ट: "5"-
डाउनलोड करने में हुई गड़बड़ी को ठीक करने के लिए, ज़्यादा से ज़्यादा बार कोशिश की जा सकती है. अगर इसे 0 पर सेट किया जाता है, तो फिर से कोशिश करने की सुविधा बंद हो जाती है.
टैग:
experimental --experimental_scale_timeouts=<a double>default: "1.0"-
इस फ़ैक्टर के हिसाब से, Starlark रिपॉज़िटरी के नियमों में सभी टाइमआउट को स्केल करें. इस तरह, बाहरी रिपॉज़िटरी को उन मशीनों पर काम करने के लिए बनाया जा सकता है जो नियम लिखने वाले व्यक्ति की उम्मीद से ज़्यादा समय लेती हैं. इसके लिए, सोर्स कोड में बदलाव करने की ज़रूरत नहीं होती
--http_connector_attempts=<an integer>default: "8"-
एचटीटीपी डाउनलोड के लिए, कोशिशों की ज़्यादा से ज़्यादा संख्या.
--http_connector_retry_max_timeout=<An immutable length of time.>default: "0s"-
http डाउनलोड करने की कोशिशों के लिए ज़्यादा से ज़्यादा समयसीमा. वैल्यू 0 होने पर, ज़्यादा से ज़्यादा समयसीमा तय नहीं की जाती.
--http_max_parallel_downloads=<an integer>default: "8"-
साथ-साथ डाउनलोड होने वाली एचटीटीपी फ़ाइलों की ज़्यादा से ज़्यादा संख्या.
--http_timeout_scaling=<a double>default: "1.0"-
एचटीटीपी डाउनलोड से जुड़े सभी टाइमआउट को दिए गए फ़ैक्टर के हिसाब से स्केल करता है
--repo_contents_cache=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, रेपो के कॉन्टेंट की कैश मेमोरी की जगह के बारे में बताता है. इसमें फ़ेच की गई रेपो डायरेक्ट्री होती हैं, जिन्हें सभी वर्कस्पेस के साथ शेयर किया जा सकता है. आर्गुमेंट के तौर पर खाली स्ट्रिंग का इस्तेमाल करने से, रिपॉज़िटरी के कॉन्टेंट की कैश मेमोरी को बंद करने का अनुरोध किया जाता है. ऐसा न करने पर, डिफ़ॉल्ट रूप से '<--repository_cache>/contents' का इस्तेमाल किया जाता है. ध्यान दें कि इसका मतलब है कि '--repository_cache=' को सेट करने पर, repo contents cache भी डिफ़ॉल्ट रूप से बंद हो जाएगी. हालांकि, ऐसा तब होगा, जब '--repo_contents_cache=<some_path>' को भी सेट न किया गया हो.
--repo_contents_cache_gc_idle_delay=<An immutable length of time.>default: "5m"-
यह विकल्प, सर्वर के इस्तेमाल न होने के उस समय की जानकारी देता है जिसके बाद, रिपॉज़िटरी के कॉन्टेंट की कैश मेमोरी से डेटा हटाने की प्रोसेस शुरू होती है.
--repo_contents_cache_gc_max_age=<An immutable length of time.>डिफ़ॉल्ट: "14d"-
यह नीति बताती है कि रिपॉज़िटरी के कॉन्टेंट की कैश मेमोरी में मौजूद कोई एंट्री, कितने समय तक इस्तेमाल नहीं की जा सकती. इसके बाद, उसे हटा दिया जाता है. इसे शून्य पर सेट करने पर, सिर्फ़ डुप्लीकेट एंट्री को ट्रैश में भेजा जाएगा.
--repository_cache=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
इससे बाहरी रिपॉज़िटरी से फ़ेच की गई डाउनलोड की गई वैल्यू की कैश मेमोरी की जगह के बारे में पता चलता है. आर्ग्युमेंट के तौर पर खाली स्ट्रिंग का इस्तेमाल करने से, कैश मेमोरी को बंद करने का अनुरोध किया जाता है. ऐसा न करने पर, डिफ़ॉल्ट रूप से '<--output_user_root>/cache/repos/v1' का इस्तेमाल किया जाता है
--[no]repository_disable_downloaddefault: "false"-
अगर यह सेट है, तो रिपॉज़िटरी फ़ेच करने के दौरान ctx.download{,_and_extract} का इस्तेमाल करके डाउनलोड करने की अनुमति नहीं है. ध्यान दें कि नेटवर्क ऐक्सेस पूरी तरह से बंद नहीं किया गया है. ctx.execute अब भी इंटरनेट ऐक्सेस करने वाले किसी भी एक्ज़ीक्यूटेबल को चला सकता है.
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range>default: "1048576"-
stdout / stderr फ़ाइलों का ज़्यादा से ज़्यादा साइज़, जिसे कंसोल पर प्रिंट किया जाएगा. -1 का मतलब है कि कोई सीमा नहीं है.
टैग:
execution --gc_churning_threshold=<an integer in 0-100 range>डिफ़ॉल्ट: "100"-
अगर इनवोकेशन शुरू होने के एक मिनट बाद, Blaze ने पूरे GC को लागू करने में इनवोकेशन के कुल समय का कम से कम यह प्रतिशत खर्च कर दिया है, तो Blaze काम करना बंद कर देगा और OOM की वजह से फ़ेल हो जाएगा. 100 वैल्यू का मतलब है कि इस वजह से कभी भी हार नहीं माननी चाहिए.
--gc_churning_threshold_if_multiple_top_level_targets=<an integer>default: "-1"-
अगर इसकी वैल्यू [0, 100] के बीच सेट की जाती है और यह टॉप-लेवल के टारगेट (जैसे, क्वेरी के बजाय बिल्ड) को इस्तेमाल करने वाला कमांड है और ऐसे कई टॉप-लेवल के टारगेट मौजूद हैं, तो यह --gc_churning_threshold को बदल देता है. जब कई टॉप-लेवल टारगेट होते हैं, तो ओओएमिंग के ज़्यादा असरदार तरीके को कॉन्फ़िगर करने के लिए यह विकल्प काम आता है. जैसे, --gc_churning_threshold से कम वैल्यू. इससे Bazel को कॉल करने वाला व्यक्ति, स्प्लिट और फिर से कोशिश कर सकता है. साथ ही, जब एक टॉप-लेवल टारगेट होता है, तब भी ओओएमिंग का असर कम होता है.
--gc_thrashing_threshold=<an integer in 0-100 range>डिफ़ॉल्ट: "100"-
यह, इस्तेमाल की गई मेमोरी का प्रतिशत होता है. इसकी वैल्यू 0 से 100 के बीच होती है. इससे ज़्यादा वैल्यू होने पर, GcThrashingDetector, मेमोरी पर दबाव डालने वाले इवेंट को अपनी सीमाओं (--gc_thrashing_limits) के हिसाब से मानता है. अगर इसे 100 पर सेट किया जाता है, तो GcThrashingDetector बंद हो जाता है.
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--[no]incompatible_enable_proto_toolchain_resolutiondefault: "false"-
अगर यह वैल्यू सही है, तो भाषा के नियमों से प्रोटोटाइप रिपॉज़िटरी से टूलचेन तय होते हैं.
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--bep_maximum_open_remote_upload_files=<an integer>default: "-1"-
बीईपी आर्टफ़ैक्ट अपलोड करते समय, ज़्यादा से ज़्यादा कितनी फ़ाइलें खुली रखी जा सकती हैं.
टैग:
affects_outputs --remote_download_all-
इस विकल्प से, सभी रिमोट आउटपुट को लोकल मशीन पर डाउनलोड किया जाता है. यह फ़्लैग, --remote_download_outputs=all के लिए एलियास है.
बढ़कर:
--remote_download_outputs=allटैग:
affects_outputs --remote_download_minimal-
यह रिमोट बिल्ड के किसी भी आउटपुट को लोकल मशीन पर डाउनलोड नहीं करता है. यह फ़्लैग, --remote_download_outputs=minimal का अन्य नाम है.
बढ़कर:
--remote_download_outputs=minimalटैग:
affects_outputs --remote_download_outputs=<all, minimal or toplevel>default: "toplevel"-
'कम से कम' पर सेट होने पर, रिमोट बिल्ड के किसी भी आउटपुट को लोकल मशीन पर डाउनलोड नहीं करता है. हालांकि, स्थानीय कार्रवाइयों के लिए ज़रूरी आउटपुट डाउनलोड किए जाते हैं. 'toplevel' पर सेट करने पर, यह 'minimal' की तरह काम करता है. हालांकि, यह टॉप लेवल के टारगेट के आउटपुट को भी लोकल मशीन पर डाउनलोड करता है. अगर नेटवर्क बैंडविड्थ की वजह से बिल्ड करने में ज़्यादा समय लगता है, तो इन दोनों विकल्पों से बिल्ड करने में लगने वाला समय काफ़ी कम हो सकता है.
टैग:
affects_outputs --remote_download_symlink_template=<a string>default: ""-
रिमोट बिल्ड के आउटपुट को लोकल मशीन पर डाउनलोड करने के बजाय, सिंबॉलिक लिंक बनाएं. सिंबॉलिक लिंक के टारगेट को टेंप्लेट स्ट्रिंग के तौर पर तय किया जा सकता है. इस टेंप्लेट स्ट्रिंग में {hash} और {size_bytes} शामिल हो सकते हैं. ये ऑब्जेक्ट के हैश और साइज़ को बाइट में दिखाते हैं. उदाहरण के लिए, ये सिंबॉलिक लिंक, FUSE फ़ाइल सिस्टम की ओर ले जा सकते हैं. यह सिस्टम, ज़रूरत के हिसाब से CAS से ऑब्जेक्ट लोड करता है.
टैग:
affects_outputs --remote_download_toplevel-
यह सिर्फ़ टॉप लेवल के टारगेट के रिमोट आउटपुट को स्थानीय मशीन पर डाउनलोड करता है. यह फ़्लैग, --remote_download_outputs=toplevel के लिए उपनाम है.
बढ़कर:
--remote_download_outputs=toplevelटैग:
affects_outputs --repo_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह सिर्फ़ रिपॉज़िटरी के नियमों के लिए उपलब्ध अतिरिक्त एनवायरमेंट वैरिएबल तय करता है. ध्यान दें कि रिपॉज़िटरी के नियमों में पूरे एनवायरमेंट को देखा जाता है. हालांकि, इस तरीके से वैरिएबल को कमांड-लाइन फ़्लैग और <code>.bazelrc</code> एंट्री के ज़रिए सेट किया जा सकता है. वैरिएबल को साफ़ तौर पर अनसेट करने के लिए, खास सिंटैक्स <code>=NAME</code> का इस्तेमाल किया जा सकता है.
टैग:
action_command_lines
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]allow_experimental_loadsdefault: "false"-
अगर यह सुविधा चालू है, तो एक्सपेरिमेंट के तौर पर उपलब्ध .bzls फ़ाइलों को लोड करने के दौरान, गड़बड़ी की सूचना देने के बजाय सिर्फ़ चेतावनी जारी करें.
टैग:
build_file_semantics --[no]check_bzl_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो .bzl फ़ाइल लोड करने से जुड़ी गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
टैग:
build_file_semantics --[no]incompatible_enforce_starlark_utf8डिफ़ॉल्ट: "warning"-
अगर यह सेटिंग चालू है या इसे 'error' पर सेट किया गया है, तो Starlark फ़ाइलों के UTF-8 में एन्कोड न होने पर, जांच पूरी नहीं होगी. अगर इसे 'warning' पर सेट किया गया है, तो इसके बजाय चेतावनी जारी करें. अगर इसे 'off' पर सेट किया जाता है, तो Bazel यह मान लेता है कि Starlark फ़ाइलें UTF-8 में एन्कोड की गई हैं. हालांकि, वह इस बात की पुष्टि नहीं करता है. ध्यान दें कि UTF-8 में एन्कोड नहीं की गई Starlark फ़ाइलों की वजह से, Bazel अलग-अलग तरीके से काम कर सकता है.
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]experimental_bzl_visibilitydefault: "true"-
इस विकल्प को चालू करने पर, एक
visibility()फ़ंक्शन जुड़ जाता है. .bzl फ़ाइलें, टॉप-लेवल के आकलन के दौरान इस फ़ंक्शन को कॉल कर सकती हैं. इससे, load() स्टेटमेंट के लिए अपनी विज़िबिलिटी सेट की जा सकती है. -
अगर इसे 'सही है' पर सेट किया जाता है, तो cc_shared_library नियम के लिए ज़रूरी नियम एट्रिब्यूट और Starlark API के तरीके उपलब्ध होंगे
टैग:
build_file_semantics,loading_and_analysis,experimental --[no]experimental_disable_external_packagedefault: "false"-
अगर इस विकल्प को 'सही है' पर सेट किया जाता है, तो अपने-आप जनरेट होने वाला //external पैकेज अब उपलब्ध नहीं होगा. Bazel अब भी 'external/BUILD' फ़ाइल को पार्स नहीं कर पाएगा. हालांकि, बिना नाम वाले पैकेज से external/ तक पहुंचने वाले ग्लोब काम करेंगे.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_dormant_depsdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो attr.label(materializer=), attr(for_dependency_resolution=), attr.dormant_label(), attr.dormant_label_list() और rule(for_dependency_resolution=) का इस्तेमाल किया जा सकता है.
--[no]experimental_enable_android_migration_apisdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो Android Starlark माइग्रेशन के लिए ज़रूरी एपीआई चालू हो जाते हैं.
टैग:
build_file_semantics --[no]experimental_enable_first_class_macrosdefault: "true"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो सिंबॉलिक मैक्रो तय करने के लिए
macro()कंस्ट्रक्ट चालू हो जाता है.टैग:
build_file_semantics --[no]experimental_enable_scl_dialectdefault: "true"-
अगर इसे 'सही है' पर सेट किया जाता है, तो load() स्टेटमेंट में .scl फ़ाइलों का इस्तेमाल किया जा सकता है.
टैग:
build_file_semantics --[no]experimental_enable_starlark_setdefault: "true"-
अगर यह वैल्यू सही है, तो Starlark में सेट किए गए डेटा टाइप और set() कंस्ट्रक्टर को चालू करें.
--[no]experimental_google_legacy_apidefault: "false"-
इसे सही पर सेट करने पर, Google के लेगसी कोड से जुड़े Starlark Build API के कई एक्सपेरिमेंटल कॉम्पोनेंट दिखते हैं.
--[no]experimental_isolated_extension_usagesdefault: "false"-
अगर यह सही है, तो <a href="https://bazel.build/rules/lib/globals/module#use_extension"><code>use_extension</code></a> फ़ंक्शन में<code>isolate</code> पैरामीटर चालू हो जाता है.
टैग:
loading_and_analysis --[no]experimental_platforms_apidefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो प्लैटफ़ॉर्म से जुड़े कई Starlark API चालू हो जाते हैं. ये डीबग करने के लिए काम आते हैं.
--[no]experimental_repo_remote_execdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो repository_rule को रिमोट एक्ज़ीक्यूशन की कुछ सुविधाएं मिलती हैं.
टैग:
build_file_semantics,loading_and_analysis,experimental --[no]experimental_repository_ctx_execute_wasmdefault: "false"-
अगर सही है, तो repository_ctx
load_wasmऔरexecute_wasmतरीकों को चालू करता है. --[no]experimental_sibling_repository_layoutdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो मुख्य नहीं हैं उन रिपॉज़िटरी को एक्ज़ीक्यूशन रूट में मुख्य रिपॉज़िटरी के सिमलंक के तौर पर प्लांट किया जाता है. इसका मतलब है कि सभी रिपॉज़िटरी, $output_base/execution_root डायरेक्ट्री की चाइल्ड डायरेक्ट्री होती हैं. इससे $output_base/execution_root/main/external डायरेक्ट्री खाली हो जाती है, ताकि टॉप-लेवल की 'external' डायरेक्ट्री को इस्तेमाल किया जा सके.
टैग:
action_command_lines,bazel_internal_configuration,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_single_package_toolchain_bindingdefault: "false"-
इस सुविधा के चालू होने पर, register_toolchain फ़ंक्शन में ऐसे टारगेट पैटर्न शामिल नहीं हो सकते जो एक से ज़्यादा पैकेज को रेफ़र करते हों.
--[no]experimental_starlark_typesdefault: "false"-
यह टाइप एनोटेशन और टाइप की जांच करने की सुविधा चालू करता है.
--experimental_starlark_types_allowed_pathsयह तय करता है कि किन जगहों पर एनोटेशन दिखाने की अनुमति है. --experimental_starlark_types_allowed_paths=<comma-separated list of options>default: ""-
कैननिकल लेबल प्रीफ़िक्स की सूची, जिनके तहत Starlark टाइप के एनोटेशन की अनुमति है.
-
अगर इसे सही पर सेट किया जाता है, तो टैग को टारगेट से ऐक्शन के एक्ज़ीक्यूशन की ज़रूरी शर्तों तक पहुंचाया जाएगा. ऐसा न होने पर, टैग नहीं पहुंचाए जाएंगे. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/8830 पर जाएं.
--[no]incompatible_always_check_depset_elementsdefault: "true"-
सभी कंस्ट्रक्टर में, डिपेसेट में जोड़े गए एलिमेंट की वैधता की जांच करें. तत्वों में बदलाव नहीं किया जा सकता. हालांकि, पहले depset(direct=...) कंस्ट्रक्टर इसकी जांच नहीं करता था. डिपसेट एलिमेंट में सूचियों के बजाय टपल का इस्तेमाल करें. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10313 पर जाएं.
--incompatible_autoload_externally=<comma-separated set of options>default: "+@rules_cc"-
विराम चिह्न से अलग की गई नियमों (या अन्य सिंबल) की सूची. ये नियम पहले Bazel का हिस्सा थे और अब इन्हें उनकी संबंधित बाहरी रिपॉज़िटरी से वापस पाना है. इस फ़्लैग का इस्तेमाल, नियमों को Bazel से बाहर माइग्रेट करने के लिए किया जाता है. https://github.com/bazelbuild/bazel/issues/23043 पर भी जाएं. किसी फ़ाइल में अपने-आप लोड होने वाला सिंबल, इस तरह काम करता है जैसे Bazel में पहले से मौजूद उसकी परिभाषा को किसी बाहरी रिपॉज़िटरी में मौजूद उसकी नई कैननिकल परिभाषा से बदल दिया गया हो. BUILD फ़ाइल के लिए, इसका मतलब है कि load() स्टेटमेंट को अपने-आप जोड़ दिया जाता है. .bzl फ़ाइल के लिए, यह load() स्टेटमेंट या
nativeऑब्जेक्ट के फ़ील्ड में बदलाव होता है. यह इस बात पर निर्भर करता है कि अपने-आप लोड होने वाला सिंबल कोई नियम है या नहीं. Bazel, उन सभी सिंबल की एक हार्डकोड की गई सूची बनाए रखता है जिन्हें अपने-आप लोड किया जा सकता है. इस फ़्लैग में सिर्फ़ वे सिंबल दिख सकते हैं. Bazel को हर सिंबल के लिए, बाहरी रिपॉज़िटरी में नई परिभाषा की जगह के बारे में पता होता है. साथ ही, उसे उन रिपॉज़िटरी के बारे में भी पता होता है जिन्हें अपने-आप लोड नहीं करना चाहिए, ताकि साइकल न बन पाएं. इस फ़्लैग में "+foo" की सूची में मौजूद आइटम की वजह से, foo सिंबल अपने-आप लोड हो जाता है. हालांकि, foo की उन रिपॉज़िटरी में ऐसा नहीं होता जिन्हें छूट मिली है. इनमें, foo का Bazel-डिफ़ाइंड वर्शन अब भी उपलब्ध है. ऊपर दिए गए उदाहरण के मुताबिक, "foo" का कोई सूची आइटम, अपने-आप लोड होने की सुविधा को ट्रिगर करता है. हालांकि, Bazel के तय किए गए foo के वर्शन को उन रिपॉज़िटरी के लिए उपलब्ध नहीं कराया जाता जिन्हें शामिल नहीं किया गया है. इससे यह पक्का हो जाता है कि foo की बाहरी रिपॉज़िटरी, foo के Bazel के पुराने वर्शन पर निर्भर नहीं है "-foo" की सूची का कोई आइटम, अपने-आप लोड होने की सुविधा को ट्रिगर नहीं करता है. हालांकि, इससे पूरे वर्कस्पेस में foo के Bazel के वर्शन को ऐक्सेस नहीं किया जा सकता. इस कुकी का इस्तेमाल यह पुष्टि करने के लिए किया जाता है कि Bazel से foo की परिभाषा मिटाने के लिए, वर्कस्पेस तैयार है. अगर इस फ़्लैग में किसी सिंबल का नाम नहीं दिया गया है, तो वह सामान्य तरीके से काम करता रहेगा. न तो अपने-आप लोड होने की सुविधा काम करेगी और न ही Bazel के तय किए गए वर्शन को दबाया जाएगा. कॉन्फ़िगरेशन के लिए, https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java देखें. शॉर्टकट के तौर पर, पूरी रिपॉज़िटरी का भी इस्तेमाल किया जा सकता है. उदाहरण के लिए, +@rules_python से सभी Python नियम अपने-आप लोड हो जाएंगे.टैग:
loses_incremental_state,build_file_semantics,incompatible_change --[no]incompatible_disable_autoloads_in_main_repodefault: "true"-
यह विकल्प कंट्रोल करता है कि मुख्य रिपॉज़िटरी में, ऑटोलॉड (जिन्हें --incompatible_autoload_externally से सेट किया गया है) चालू हैं या नहीं. इस सुविधा को चालू करने पर, Bazel में पहले से मौजूद नियमों (या अन्य सिंबल) में लोड स्टेटमेंट होने चाहिए. उन्हें जोड़ने के लिए, buildifier का इस्तेमाल करें.
--[no]incompatible_disable_objc_library_transitiondefault: "true"-
objc_library के कस्टम ट्रांज़िशन को बंद करें और इसके बजाय, टॉप लेवल के टारगेट से इनहेरिट करें (Bazel में कोई कार्रवाई नहीं)
--[no]incompatible_disable_starlark_host_transitionsdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो नियम एट्रिब्यूट 'cfg = "host"' सेट नहीं कर सकते. इसके बजाय, नियमों को 'cfg = "exec"' सेट करना चाहिए.
--[no]incompatible_disable_target_default_provider_fieldsdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो फ़ील्ड सिंटैक्स के ज़रिए डिफ़ॉल्ट प्रोवाइडर का इस्तेमाल करने की सुविधा बंद हो जाती है. इसके बजाय, provider-key सिंटैक्स का इस्तेमाल करें. उदाहरण के लिए,
filesको ऐक्सेस करने के लिएctx.attr.dep.filesका इस्तेमाल करने के बजाय, `ctx.attr.dep[DefaultInfo].files का इस्तेमाल करें. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/9014 पर जाएं. --incompatible_disable_transitions_on=<comma-separated set of options>default: ""-
कॉमा लगाकर अलग किए गए फ़्लैग की ऐसी सूची जिनका इस्तेमाल ट्रांज़िशन के इनपुट या आउटपुट में नहीं किया जा सकता.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_disallow_ctx_resolve_toolsdefault: "true"-
अगर इसे 'सही है' पर सेट किया जाता है, तो ctx.resolve_tools API को कॉल करने पर हमेशा गड़बड़ी होती है. इस एपीआई के इस्तेमाल को, ctx.actions.run या ctx.actions.run_shell के लिए, एक्ज़ीक्यूटेबल या टूल आर्ग्युमेंट से बदला जाना चाहिए.
--[no]incompatible_disallow_empty_globdefault: "true"-
इसे सही पर सेट करने पर, glob() के
allow_emptyआर्ग्युमेंट की डिफ़ॉल्ट वैल्यू गलत होती है. --[no]incompatible_enable_deprecated_label_apisdefault: "true"-
अगर यह सेटिंग चालू है, तो हटाए गए कुछ एपीआई (native.repository_name, Label.workspace_name, Label.relative) का इस्तेमाल किया जा सकता है.
टैग:
loading_and_analysis --[no]incompatible_fail_on_unknown_attributesdefault: "true"-
अगर यह सुविधा चालू है, तो उन टारगेट को मंज़ूरी नहीं मिलती जिनके लिए 'कोई नहीं' पर सेट किए गए एट्रिब्यूट की वैल्यू 'अज्ञात' है.
--[no]incompatible_fix_package_group_reporoot_syntaxdefault: "true"-
package_group
packagesएट्रिब्यूट में, वैल्यू "//..." का मतलब बदल जाता है. अब यह किसी भी रिपॉज़िटरी के सभी पैकेज के बजाय, मौजूदा रिपॉज़िटरी के सभी पैकेज को रेफ़र करती है. पुराने तरीके से काम करने के लिए, "//..." की जगह "public" वैल्यू का इस्तेमाल किया जा सकता है. इस फ़्लैग के लिए, --incompatible_package_group_has_public_syntax फ़्लैग भी चालू होना चाहिए. --[no]incompatible_locations_prefers_executabledefault: "true"-
अगर फ़ाइलों की संख्या एक से ज़्यादा है, तो क्या एक्ज़ीक्यूटेबल उपलब्ध कराने वाला टारगेट, $(locations ...) एक्सपैंशन के तहत <code>DefaultInfo.files</code> में मौजूद फ़ाइलों के बजाय एक्ज़ीक्यूटेबल में बदल जाता है.
--[no]incompatible_no_attr_licensedefault: "true"-
अगर इसे 'सही है' पर सेट किया जाता है, तो
attr.licenseफ़ंक्शन बंद हो जाता है. --[no]incompatible_no_implicit_file_exportdefault: "false"-
अगर सेट किया गया है, तो इस्तेमाल की गई सोर्स फ़ाइलें पैकेज के लिए निजी होती हैं. हालांकि, इन्हें साफ़ तौर पर एक्सपोर्ट किया जा सकता है. https://github.com/bazelbuild/proposals/blob/master/designs/2019-10-24-file-visibility.md पर जाएं
--[no]incompatible_no_implicit_watch_labeldefault: "true"-
अगर यह सही है, तो <code>repository_ctx</code> पर मौजूद ऐसे तरीके जो लेबल पास करते हैं वे उस लेबल के तहत मौजूद फ़ाइल में होने वाले बदलावों को अपने-आप ट्रैक नहीं करेंगे. भले ही, <code>watch = "no"</code> हो. साथ ही, <code>repository_ctx.path</code> की वजह से, लौटाए गए पाथ को अब ट्रैक नहीं किया जाएगा. इसके बजाय, <code>repository_ctx.watch</code> का इस्तेमाल करें.
--[no]incompatible_no_rule_outputs_paramdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो यह
rule()Starlark फ़ंक्शन केoutputsपैरामीटर को बंद कर देता है. --[no]incompatible_package_group_has_public_syntaxdefault: "true"-
package_group
packagesएट्रिब्यूट में, सभी पैकेज या किसी भी पैकेज को रेफ़र करने के लिए, "public" या "private" लिखने की अनुमति देता है. --[no]incompatible_resolve_select_keys_eagerlydefault: "false"-
अगर यह सुविधा चालू है, तो .bzl फ़ाइलों में select() को पास की गई डिक्शनरी में मौजूद स्ट्रिंग कुंजियों को, फ़ाइल के हिसाब से लेबल में तुरंत बदल दिया जाता है. ऐसा इसलिए किया जाता है, ताकि उन्हें BUILD फ़ाइल के हिसाब से न समझा जाए.
--[no]incompatible_run_shell_command_stringdefault: "true"-
अगर इसे सही पर सेट किया जाता है, तो actions.run_shell के कमांड पैरामीटर में सिर्फ़ स्ट्रिंग स्वीकार की जाएगी
--[no]incompatible_simplify_unconditional_selects_in_rule_attrsdefault: "true"-
अगर यह वैल्यू सही है, तो कॉन्फ़िगर किए जा सकने वाले नियम एट्रिब्यूट को आसान बनाएं. इनमें सिर्फ़ बिना शर्त वाले विकल्प शामिल होते हैं. उदाहरण के लिए, अगर किसी नियम एट्रिब्यूट को ["a"] + select("//conditions:default", ["b"]) असाइन किया जाता है, तो इसे ["a", "b"] के तौर पर सेव किया जाता है. इस विकल्प से, सिंबॉलिक मैक्रो या एट्रिब्यूट की डिफ़ॉल्ट वैल्यू पर कोई असर नहीं पड़ता.
--[no]incompatible_stop_exporting_build_file_pathdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो ctx.build_file_path उपलब्ध नहीं होगा. इसके बजाय, ctx.label.package + '/BUILD' का इस्तेमाल किया जा सकता है.
--[no]incompatible_stop_exporting_language_modulesdefault: "false"-
अगर यह सुविधा चालू है, तो भाषा के हिसाब से कुछ मॉड्यूल (जैसे कि
cc_common) उपयोगकर्ता की .bzl फ़ाइलों में उपलब्ध नहीं होते. इन्हें सिर्फ़ नियमों की अपनी-अपनी रिपॉज़िटरी से कॉल किया जा सकता है. --[no]incompatible_unambiguous_label_stringificationdefault: "true"-
'सही' होने पर, Bazel, @//foo:bar लेबल को //foo:bar के बजाय @//foo:bar में बदल देगा. इससे सिर्फ़ str(), % ऑपरेटर वगैरह के व्यवहार पर असर पड़ता है. repr() के व्यवहार में कोई बदलाव नहीं होता. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/15916 पर जाएं.
--[no]incompatible_use_cc_configure_from_rules_ccdefault: "false"-
अगर इस विकल्प को सही पर सेट किया जाता है, तो Bazel, @bazel_tools से cc_configure का इस्तेमाल करने की अनुमति नहीं देगा. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, कृपया https://github.com/bazelbuild/bazel/issues/10134 देखें.
--max_computation_steps=<a long integer>default: "0"-
BUILD फ़ाइल से, Starlark के ज़्यादा से ज़्यादा कितने कंप्यूटेशन चरण पूरे किए जा सकते हैं. शून्य का मतलब है कि कोई सीमा नहीं है.
टैग:
build_file_semantics --nested_set_depth_limit=<an integer>डिफ़ॉल्ट: "3500"-
यह किसी depset (इसे NestedSet भी कहा जाता है) के अंदर मौजूद ग्राफ़ की ज़्यादा से ज़्यादा डेप्थ होती है. इससे ज़्यादा डेप्थ होने पर, depset() कंस्ट्रक्टर काम नहीं करेगा.
टैग:
loading_and_analysis --repositories_without_autoloads=<comma-separated set of options>default: ""-
ऐसी अतिरिक्त रिपॉज़िटरी की सूची (Bazel को पहले से पता है) जहां अपने-आप लोड होने की सुविधा नहीं जोड़ी जानी चाहिए. इसमें आम तौर पर ऐसी रिपॉज़िटरी शामिल होनी चाहिए जिन पर ऐसी रिपॉज़िटरी निर्भर करती है जो अपने-आप लोड हो सकती है. इसलिए, इससे एक साइकल बन सकता है.
टैग:
loses_incremental_state,build_file_semantics,incompatible_change
- Bzlmod के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--allow_yanked_versions=<a string>कई बार इस्तेमाल किया गया हो-
<module1>@<version1>,<module2>@<version2>के तौर पर मॉड्यूल के वर्शन तय किए गए हैं. इन्हें हल किए गए डिपेंडेंसी ग्राफ़ में अनुमति दी जाएगी. भले ही, इन्हें उस रजिस्ट्री में यांक किया गया हो जहां से ये आते हैं. हालांकि, ऐसा तब होगा, जब ये NonRegistryOverride से नहीं आ रहे हों. ऐसा न करने पर, हटाए गए वर्शन की वजह से समस्या हल नहीं हो पाएगी.BZLMOD_ALLOW_YANKED_VERSIONSएनवायरमेंट वैरिएबल की मदद से, वापस लिए गए वर्शन को भी अनुमति दी जा सकती है. 'all' कीवर्ड का इस्तेमाल करके, इस जांच को बंद किया जा सकता है. हालांकि, ऐसा करने का सुझाव नहीं दिया जाता.टैग:
loading_and_analysis --check_bazel_compatibility=<error, warning or off>डिफ़ॉल्ट: "error"-
Bazel मॉड्यूल के साथ Bazel के वर्शन के काम करने की क्षमता की जांच करें. मान्य वैल्यू ये हैं:
error, ताकि समस्या को हल न कर पाने की जानकारी दी जा सके.off, ताकि जांच बंद की जा सके.warning, ताकि मेल न खाने पर चेतावनी प्रिंट की जा सके.टैग:
loading_and_analysis --check_direct_dependencies=<off, warning or error>डिफ़ॉल्ट: "warning"-
देखें कि रूट मॉड्यूल में बताई गई डायरेक्ट
bazel_depडिपेंडेंसी, हल किए गए डिपेंडेंसी ग्राफ़ में मौजूद वर्शन के जैसी हैं या नहीं. मान्य वैल्यू ये हैं:off, इससे जांच बंद हो जाती है;warning, इससे वैल्यू के मेल न खाने पर चेतावनी दिखती है;error, इससे समस्या को हल न कर पाने की स्थिति में बढ़ा दिया जाता है.टैग:
loading_and_analysis --[no]ignore_dev_dependencydefault: "false"-
अगर यह सही है, तो Bazel, रूट मॉड्यूल के MODULE.bazel में
dev_dependencyके तौर पर एलान किए गएbazel_depऔरuse_extensionको अनदेखा कर देता है. ध्यान दें कि अगर यह रूट मॉड्यूल नहीं है, तो MODULE.bazel में उन डेवलपमेंट डिपेंडेंसी को हमेशा अनदेखा किया जाता है. भले ही, इस फ़्लैग की वैल्यू कुछ भी हो.टैग:
loading_and_analysis --lockfile_mode=<off, update, refresh or error>डिफ़ॉल्ट: "update"-
इससे यह तय होता है कि लॉकफ़ाइल का इस्तेमाल कैसे करना है और करना है या नहीं. मान्य वैल्यू ये हैं:
updateका इस्तेमाल लॉकफ़ाइल के लिए किया जाता है. अगर इसमें कोई बदलाव होता है, तो इसे अपडेट किया जाता है.refreshका इस्तेमाल, समय-समय पर रिमोट रजिस्ट्री से बदलाव की जा सकने वाली जानकारी (हटाए गए वर्शन और पहले मौजूद नहीं थे) को रीफ़्रेश करने के लिए किया जाता है.errorका इस्तेमाल लॉकफ़ाइल के लिए किया जाता है. हालांकि, अगर यह अप-टू-डेट नहीं है, तो एक गड़बड़ी दिखेगी.offका इस्तेमाल, लॉकफ़ाइल से न तो पढ़ने और न ही लिखने के लिए किया जाता है.टैग:
loading_and_analysis --module_mirrors=<comma-separated list of options>डिफ़ॉल्ट: ब्यौरा देखें-
कॉमा लगाकर अलग किए गए यूआरएल की ऐसी सूची जिसमें Bazel मॉड्यूल के सोर्स यूआरएल मिल सकते हैं. यह सूची, रजिस्ट्री से मिले मिरर यूआरएल के अलावा होती है और इन पर प्राथमिकता रखती है. रजिस्ट्री से तय किए गए मिरर के इस्तेमाल को बंद करने के लिए, इसे खाली वैल्यू पर सेट करें. मिरर का डिफ़ॉल्ट सेट समय के साथ बदल सकता है. हालांकि, मिरर से किए गए सभी डाउनलोड की पुष्टि, रजिस्ट्री में सेव किए गए हैश से की जाती है. इसलिए, इन्हें लॉकफ़ाइल से पिन किया जाता है.
टैग:
loading_and_analysis --override_module=<an equals-separated mapping of module name to path>कई बार इस्तेमाल किया गया हो-
<मॉड्यूल का नाम>=<पाथ> के फ़ॉर्म में लोकल पाथ का इस्तेमाल करके, किसी मॉड्यूल को बदलें. अगर दिया गया पाथ ऐब्सलूट पाथ है, तो इसका इस्तेमाल वैसे ही किया जाएगा. अगर दिया गया पाथ रिलेटिव पाथ है, तो यह मौजूदा वर्किंग डायरेक्ट्री के हिसाब से होगा. अगर दिया गया पाथ '%workspace%' से शुरू होता है, तो यह वर्कस्पेस के रूट के हिसाब से होता है. यह
bazel info workspaceका आउटपुट होता है. अगर दिया गया पाथ खाली है, तो पिछले सभी ओवरराइड हटा दें. --registry=<a string>कई बार इस्तेमाल किया गया हो-
Bazel मॉड्यूल की डिपेंडेंसी का पता लगाने के लिए इस्तेमाल की जाने वाली रजिस्ट्री के बारे में बताता है. मॉड्यूल के क्रम का ध्यान रखना ज़रूरी है: मॉड्यूल को सबसे पहले पिछली रजिस्ट्री में खोजा जाएगा. अगर वे पिछली रजिस्ट्री में नहीं मिलते हैं, तो उन्हें बाद की रजिस्ट्री में खोजा जाएगा.
टैग:
changes_inputs --vendor_dir=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
यह उस डायरेक्ट्री के बारे में बताता है जिसमें वेंडर मोड में बाहरी रिपॉज़िटरी को सेव किया जाना चाहिए. ऐसा उन्हें फ़ेच करने या उन्हें बनाने के दौरान इस्तेमाल करने के लिए किया जाता है. पाथ को ऐब्सलूट पाथ या वर्कस्पेस डायरेक्ट्री के हिसाब से रिलेटिव पाथ के तौर पर तय किया जा सकता है.
टैग:
loading_and_analysis
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>>default: "1s:2,20s:3,1m:5"-
ये सीमाएं तय करती हैं कि अगर ये सीमाएं पार हो जाती हैं, तो GcThrashingDetector, Bazel को OOM के साथ क्रैश कर देगा. हर सीमा को <period>:<count> के तौर पर तय किया जाता है. इसमें अवधि, समयावधि होती है और गिनती, पॉज़िटिव पूर्णांक होता है. अगर <period> में लगातार <count> बार फ़ुल जीसी होने के बाद भी, पुराने जनरेशन के हीप का --gc_thrashing_threshold प्रतिशत से ज़्यादा हिस्सा इस्तेमाल किया जाता है, तो ओओएम ट्रिगर हो जाता है. एक से ज़्यादा सीमाएं तय की जा सकती हैं. इन्हें कॉमा लगाकर अलग किया जा सकता है.
--[no]heuristically_drop_nodesdefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो Blaze, FileState और DirectoryListingState नोड को हटा देगा. ऐसा इसलिए किया जाएगा, ताकि मेमोरी को बचाया जा सके. हालांकि, ऐसा तब किया जाएगा, जब File और DirectoryListing नोड से जुड़ी प्रोसेस पूरी हो जाएगी. हमें उम्मीद है कि इन नोड की ज़रूरत दोबारा नहीं पड़ेगी. अगर ऐसा होता है, तो प्रोग्राम उनकी फिर से समीक्षा करेगा.
--[no]incompatible_do_not_split_linking_cmdlinedefault: "true"-
इस विकल्प को सही पर सेट करने पर, Bazel लिंकिंग के लिए इस्तेमाल किए गए कमांड लाइन फ़्लैग में बदलाव नहीं करता. साथ ही, यह भी तय नहीं करता कि कौनसे फ़्लैग पैरामीटर फ़ाइल में जाएंगे और कौनसे नहीं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7670 पर जाएं.
--[no]keep_state_after_builddefault: "true"-
अगर यह वैल्यू गलत है, तो बिल्ड पूरा होने पर Blaze, इस बिल्ड से इनमेमोरी स्टेट को खारिज कर देगा. इसके बाद के बिल्ड में, इस बिल्ड के मुकाबले कोई बढ़ोतरी नहीं होगी.
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0>default: "10"-
Bazel के इंटरनल Skyframe इंजन के ऐडवांस कॉन्फ़िगरेशन के लिए फ़्लैग. अगर Bazel को पता चलता है कि बनाए रखा गया हीप मेमोरी का इस्तेमाल, --skyframe_high_water_mark_threshold से सेट किए गए थ्रेशोल्ड से ज़्यादा है, तो फ़ुल GC इवेंट होने पर, यह गैर-ज़रूरी अस्थायी Skyframe स्टेट को हटा देगा. ऐसा हर बार ज़्यादा से ज़्यादा इतनी बार किया जाएगा. डिफ़ॉल्ट वैल्यू 10 होती है. शून्य का मतलब है कि फ़ुल GC इवेंट कभी भी ड्रॉप को ट्रिगर नहीं करेंगे. अगर सीमा पूरी हो जाती है, तो फ़ुल GC इवेंट होने पर Skyframe की स्थिति अब नहीं बदलेगी. साथ ही, बनाए रखे गए ढेर के प्रतिशत का थ्रेशोल्ड भी पार हो जाएगा.
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0>default: "10"-
Bazel के इंटरनल Skyframe इंजन के ऐडवांस कॉन्फ़िगरेशन के लिए फ़्लैग. अगर Bazel को पता चलता है कि बनाए रखा गया हीप मेमोरी का इस्तेमाल, --skyframe_high_water_mark_threshold से सेट की गई सीमा से ज़्यादा है, तो माइनर GC इवेंट होने पर, वह Skyframe की गैर-ज़रूरी अस्थायी स्थिति को हटा देगा. ऐसा हर बार ज़्यादा से ज़्यादा इतनी बार किया जाएगा. डिफ़ॉल्ट वैल्यू 10 होती है. शून्य का मतलब है कि माइनर जीसी इवेंट कभी भी ड्रॉप को ट्रिगर नहीं करेंगे. अगर सीमा पूरी हो जाती है, तो माइनर जीसी इवेंट होने पर Skyframe की स्थिति अब नहीं बदलेगी. साथ ही, बनाए रखे गए हीप के प्रतिशत का थ्रेशोल्ड भी पार नहीं किया जाएगा.
--skyframe_high_water_mark_threshold=<an integer>default: "85"-
Bazel के इंटरनल Skyframe इंजन के ऐडवांस कॉन्फ़िगरेशन के लिए फ़्लैग. अगर Bazel को पता चलता है कि इस्तेमाल किया गया हीप प्रतिशत, कम से कम इस थ्रेशोल्ड पर है, तो वह Skyframe की गैर-ज़रूरी अस्थायी स्थिति को हटा देगा. इसमें बदलाव करने से, GC थ्रैशिंग की वजह से लगने वाले समय पर असर पड़ सकता है. ऐसा तब होता है, जब GC थ्रैशिंग (i) इस अस्थायी स्थिति में मेमोरी के इस्तेमाल की वजह से होती है और (ii) जब इसकी ज़रूरत होती है, तब स्थिति को फिर से बनाने की तुलना में ज़्यादा महंगा होता है.
--[no]track_incremental_statedefault: "true"-
अगर यह वैल्यू 'गलत है' पर सेट है, तो Blaze ऐसे डेटा को सेव नहीं करेगा जिससे इंक्रीमेंटल बिल्ड पर अमान्य होने और फिर से आकलन करने की अनुमति मिलती है. ऐसा इसलिए किया जाता है, ताकि इस बिल्ड पर मेमोरी को बचाया जा सके. इसके बाद के बिल्ड में, इस बिल्ड के मुकाबले कोई बढ़ोतरी नहीं होगी. आम तौर पर, इस विकल्प को false पर सेट करते समय --batch को सेट करना होता है.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--[no]announce_rcdefault: "false"-
rc विकल्पों का एलान करना है या नहीं.
टैग:
affects_outputs --[no]attempt_to_print_relative_pathsdefault: "false"-
मैसेज के लोकेशन वाले हिस्से को प्रिंट करते समय, वर्कस्पेस डायरेक्ट्री या --package_path से तय की गई डायरेक्ट्री में से किसी एक के हिसाब से पाथ का इस्तेमाल करने की कोशिश करें.
टैग:
terminal_output --bes_backend=<a string>default: ""-
यह [SCHEME://]HOST[:PORT] के फ़ॉर्म में, बिल्ड इवेंट सर्विस (बीईएस) के बैकएंड एंडपॉइंट के बारे में बताता है. डिफ़ॉल्ट रूप से, BES पर अपलोड करने की सुविधा बंद होती है. grpc और grpcs (TLS की सुविधा के साथ grpc) स्कीम का इस्तेमाल किया जा सकता है. अगर कोई स्कीम नहीं दी जाती है, तो Bazel, grpcs को डिफ़ॉल्ट स्कीम मानता है.
टैग:
affects_outputs --[no]bes_check_preceding_lifecycle_eventsdefault: "false"-
यह PublishBuildToolEventStreamRequest पर check_preceding_lifecycle_events_present फ़ील्ड सेट करता है. इससे BES को यह पता चलता है कि उसे मौजूदा टूल इवेंट से मेल खाने वाले InvocationAttemptStarted और BuildEnqueued इवेंट पहले मिले थे या नहीं.
टैग:
affects_outputs --bes_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
NAME=VALUE फ़ॉर्म में एक हेडर तय करें, जिसे BES अनुरोधों में शामिल किया जाएगा. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
टैग:
affects_outputs --bes_instance_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह उस इंस्टेंस का नाम तय करता है जिसके तहत BES, अपलोड किए गए BEP को सेव करेगा. डिफ़ॉल्ट रूप से, यह शून्य पर सेट होती है.
टैग:
affects_outputs --bes_keywords=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
यह सूचना देने वाले कीवर्ड की एक सूची तय करता है. इन कीवर्ड को, BES पर पब्लिश किए गए कीवर्ड के डिफ़ॉल्ट सेट ("command_name=<command_name> ", "protocol_name=BEP") में जोड़ा जाता है. डिफ़ॉल्ट रूप से, यह वैल्यू 'कोई नहीं' पर सेट होती है.
टैग:
affects_outputs --[no]bes_lifecycle_eventsdefault: "true"-
इससे पता चलता है कि BES के लाइफ़साइकल इवेंट पब्लिश करने हैं या नहीं. (डिफ़ॉल्ट रूप से 'true' पर सेट होता है).
टैग:
affects_outputs --bes_oom_finish_upload_timeout=<An immutable length of time.>default: "10m"-
यह विकल्प बताता है कि Bazel को BES/BEP अपलोड होने का कितना इंतज़ार करना चाहिए. यह फ़्लैग यह पक्का करता है कि जब JVM में GC थ्रैशिंग की समस्या हो और वह किसी भी उपयोगकर्ता थ्रेड पर काम न कर पाए, तो उसे बंद कर दिया जाए.
टैग:
bazel_monitoring --bes_outerr_buffer_size=<an integer>default: "10240"-
इससे BEP में stdout या stderr के बफ़र किए जाने वाले ज़्यादा से ज़्यादा साइज़ के बारे में पता चलता है. इससे पहले कि इसे प्रोग्रेस इवेंट के तौर पर रिपोर्ट किया जाए. अलग-अलग राइट अब भी एक ही इवेंट में रिपोर्ट किए जाते हैं. भले ही, वे --bes_outerr_chunk_size तक तय की गई वैल्यू से बड़े हों.
टैग:
affects_outputs --bes_outerr_chunk_size=<an integer>default: "1048576"-
इससे यह तय होता है कि एक मैसेज में, stdout या stderr का ज़्यादा से ज़्यादा कितना साइज़ BEP को भेजा जा सकता है.
टैग:
affects_outputs --bes_proxy=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
प्रॉक्सी के ज़रिए, Build Event Service से कनेक्ट करें. फ़िलहाल, इस फ़्लैग का इस्तेमाल सिर्फ़ Unix डोमेन सॉकेट (unix:/path/to/socket) को कॉन्फ़िगर करने के लिए किया जा सकता है.
--bes_results_url=<a string>default: ""-
यह उस बेस यूआरएल के बारे में बताता है जहां उपयोगकर्ता, BES बैकएंड पर स्ट्रीम की गई जानकारी देख सकता है. Bazel, टर्मिनल पर यूआरएल को इनवॉकेशन आईडी के साथ जोड़कर आउटपुट करेगा.
टैग:
terminal_output --bes_system_keywords=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
यह विकल्प, सूचना से जुड़े कीवर्ड की ऐसी सूची के बारे में बताता है जिसे सीधे तौर पर शामिल किया जाना है. इसमें --bes_keywords के ज़रिए दिए गए कीवर्ड के लिए, "user_keyword=" प्रीफ़िक्स शामिल नहीं किया जाता. यह बिल्ड सेवा के उन ऑपरेटर के लिए है जो --bes_lifecycle_events=false सेट करते हैं और PublishLifecycleEvent को कॉल करते समय कीवर्ड शामिल करते हैं. इस फ़्लैग का इस्तेमाल करके सेवा बनाने वाले ऑपरेटर को, उपयोगकर्ताओं को फ़्लैग की वैल्यू बदलने से रोकना चाहिए.
टैग:
affects_outputs --bes_timeout=<An immutable length of time.>default: "0s"-
इससे यह तय होता है कि बिल्ड और टेस्ट पूरे होने के बाद, BES/BEP अपलोड होने तक Bazel को कितने समय तक इंतज़ार करना चाहिए. टाइम आउट की मान्य अवधि, एक ऐसी पूर्णांक संख्या होती है जिसके बाद इकाई दी जाती है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). डिफ़ॉल्ट वैल्यू '0' होती है. इसका मतलब है कि कोई टाइमआउट नहीं है.
टैग:
affects_outputs --bes_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>डिफ़ॉल्ट: "wait_for_upload_complete"-
इससे यह तय होता है कि Build Event Service को अपलोड करने से, बिल्ड पूरा होने की प्रोसेस रुक जानी चाहिए या बिल्ड को तुरंत बंद कर देना चाहिए और बैकग्राउंड में अपलोड पूरा करना चाहिए.
wait_for_upload_complete: यह मौजूदा इनवोकेशन के आखिर में तब तक ब्लॉक करता है, जब तक सभी इवेंट (अगर लागू हो, तो लाइफ़साइकल इवेंट भी शामिल हैं) अपलोड नहीं हो जाते और बैकएंड से उनकी पुष्टि नहीं हो जाती.nowait_for_upload_complete: यह अगले इनवोकेशन की शुरुआत में तब तक ब्लॉक रहता है, जब तक सभी इवेंट (अगर लागू हो, तो लाइफ़साइकल इवेंट भी शामिल हैं) अपलोड नहीं हो जाते और बैकएंड से उनकी पुष्टि नहीं हो जाती.fully_async: यह अगले इनवोकेशन की शुरुआत में तब तक ब्लॉक करता है, जब तक सभी इवेंट अपलोड नहीं हो जाते. हालांकि, यह पुष्टि के लिए इंतज़ार नहीं करता. कुछ समय के लिए होने वाली गड़बड़ियों की वजह से, इवेंट का डेटा नहीं मिल सकता. साथ ही, बैकएंड इस मोड में स्ट्रीम को अधूरा बता सकते हैं. इस बात की कोई गारंटी नहीं है किFinishInvocationAttemptयाFinishBuildलाइफ़साइकल इवेंट भेजे जाएंगे.
टैग:
eagerness_to_exit --build_event_binary_file=<a string>default: ""-
अगर यह फ़ाइल खाली नहीं है, तो उस फ़ाइल में बिल्ड इवेंट प्रोटोकॉल का varint डेलिमिटेड बाइनरी फ़ॉर्मैट लिखें. इस विकल्प का मतलब है --bes_upload_mode=wait_for_upload_complete.
टैग:
affects_outputs --[no]build_event_binary_file_path_conversiondefault: "true"-
जब भी हो सके, बिल्ड इवेंट प्रोटोकॉल के बाइनरी फ़ाइल फ़ॉर्मैट में मौजूद पाथ को ज़्यादा मान्य यूआरआई में बदलता है; अगर यह विकल्प बंद है, तो हमेशा file:// यूआरआई स्कीम का इस्तेमाल किया जाएगा
टैग:
affects_outputs --build_event_binary_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>डिफ़ॉल्ट: "wait_for_upload_complete"-
इससे यह तय होता है कि --build_event_binary_file के लिए Build Event Service का अपलोड, बिल्ड पूरा होने से रोकना चाहिए या इनवोकेशन को तुरंत बंद कर देना चाहिए और बैकग्राउंड में अपलोड पूरा करना चाहिए. 'wait_for_upload_complete' (डिफ़ॉल्ट), 'nowait_for_upload_complete' या 'fully_async' में से कोई एक.
टैग:
eagerness_to_exit --build_event_json_file=<a string>default: ""-
अगर यह फ़ाइल खाली नहीं है, तो बिल्ड इवेंट प्रोटोकॉल के JSON सीरियललाइज़ेशन को उस फ़ाइल में लिखें. इस विकल्प का मतलब है --bes_upload_mode=wait_for_upload_complete.
टैग:
affects_outputs --[no]build_event_json_file_path_conversiondefault: "true"-
जब भी हो सके, तो build event protocol के json फ़ाइल फ़ॉर्मैट में मौजूद पाथ को ज़्यादा मान्य यूआरआई में बदलें; अगर यह विकल्प बंद है, तो हमेशा file:// uri स्कीम का इस्तेमाल किया जाएगा
टैग:
affects_outputs --build_event_json_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>डिफ़ॉल्ट: "wait_for_upload_complete"-
इससे यह तय होता है कि --build_event_json_file के लिए, Build Event Service का अपलोड, बिल्ड पूरा होने पर ब्लॉक होना चाहिए या तुरंत इनवोकेशन बंद कर देना चाहिए और बैकग्राउंड में अपलोड पूरा करना चाहिए. 'wait_for_upload_complete' (डिफ़ॉल्ट), 'nowait_for_upload_complete' या 'fully_async' में से कोई एक.
टैग:
eagerness_to_exit --build_event_max_named_set_of_file_entries=<an integer>default: "5000"-
named_set_of_files इवेंट के लिए ज़्यादा से ज़्यादा एंट्री की संख्या. दो से कम वैल्यू को अनदेखा किया जाता है और इवेंट को स्प्लिट नहीं किया जाता. इसका इस्तेमाल, बिल्ड इवेंट प्रोटोकॉल में इवेंट के साइज़ को सीमित करने के लिए किया जाता है. हालांकि, यह इवेंट के साइज़ को सीधे तौर पर कंट्रोल नहीं करता है. इवेंट का कुल साइज़, सेट के स्ट्रक्चर के साथ-साथ फ़ाइल और यूआरआई की लंबाई पर निर्भर करता है. यह हैश फ़ंक्शन पर भी निर्भर कर सकता है.
टैग:
affects_outputs --[no]build_event_publish_all_actionsdefault: "false"-
क्या सभी कार्रवाइयों को पब्लिश किया जाना चाहिए.
टैग:
affects_outputs --build_event_text_file=<a string>default: ""-
अगर यह फ़ाइल खाली नहीं है, तो उस फ़ाइल में बिल्ड इवेंट प्रोटोकॉल का टेक्स्ट वर्शन लिखें
टैग:
affects_outputs --[no]build_event_text_file_path_conversiondefault: "true"-
जब भी हो सके, बिल्ड इवेंट प्रोटोकॉल के टेक्स्ट फ़ाइल फ़ॉर्मैट में मौजूद पाथ को ज़्यादा मान्य यूआरआई में बदलें; अगर यह विकल्प बंद है, तो हमेशा file:// यूआरआई स्कीम का इस्तेमाल किया जाएगा
टैग:
affects_outputs --build_event_text_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>डिफ़ॉल्ट: "wait_for_upload_complete"-
इससे यह तय होता है कि --build_event_text_file के लिए, Build Event Service का अपलोड, बिल्ड पूरा होने पर ब्लॉक होना चाहिए या तुरंत इनवोकेशन बंद कर देना चाहिए और बैकग्राउंड में अपलोड पूरा करना चाहिए. 'wait_for_upload_complete' (डिफ़ॉल्ट), 'nowait_for_upload_complete' या 'fully_async' में से कोई एक.
टैग:
eagerness_to_exit --build_event_upload_max_retries=<an integer>default: "4"-
Bazel को, बिल्ड इवेंट को अपलोड करने की कोशिश ज़्यादा से ज़्यादा कितनी बार करनी चाहिए.
--[no]experimental_bep_target_summarydefault: "false"-
TargetSummary इवेंट पब्लिश करने हैं या नहीं.
--[no]experimental_build_event_expand_filesetsdefault: "false"-
अगर यह वैल्यू सही है, तो आउटपुट फ़ाइलें दिखाते समय बीईपी में फ़ाइलसेट को बड़ा करें.
टैग:
affects_outputs --experimental_build_event_output_group_mode=<an output group name followed by an OutputGroupFileMode, e.g. default=both>कई बार इस्तेमाल किया गया हो-
यह तय करें कि TargetComplete/AspectComplete BEP इवेंट में, आउटपुट ग्रुप की फ़ाइलों को कैसे दिखाया जाएगा. वैल्यू, आउटपुट ग्रुप के नाम को 'NAMED_SET_OF_FILES_ONLY', 'INLINE_ONLY' या 'BOTH' में से किसी एक को असाइन की जाती है. डिफ़ॉल्ट वैल्यू 'NAMED_SET_OF_FILES_ONLY' होती है. अगर किसी आउटपुट ग्रुप को दोहराया जाता है, तो दिखने वाली फ़ाइनल वैल्यू का इस्तेमाल किया जाता है. डिफ़ॉल्ट वैल्यू, कवरेज आर्टफ़ैक्ट के लिए मोड को BOTH पर सेट करती है: --experimental_build_event_output_group_mode=baseline.lcov=both
टैग:
affects_outputs --experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>डिफ़ॉल्ट: "1s"-
बीईपी अपलोड करने में गड़बड़ी होने पर, एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करने में लगने वाला शुरुआती और कम से कम समय. (एक्सपोनेंट: 1.6)
--experimental_build_event_upload_strategy=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कुकी, बिल्ड इवेंट प्रोटोकॉल में रेफ़र किए गए आर्टफ़ैक्ट को अपलोड करने का तरीका चुनती है. बेसल में, मान्य विकल्पों में 'local' और 'remote' शामिल हैं. डिफ़ॉल्ट वैल्यू 'local' होती है.
टैग:
affects_outputs --[no]experimental_collect_load_average_in_profilerdefault: "true"-
अगर यह सुविधा चालू है, तो प्रोफ़ाइलर, सिस्टम के कुल लोड का औसत इकट्ठा करता है.
टैग:
bazel_monitoring --[no]experimental_collect_pressure_stall_indicatorsdefault: "false"-
अगर यह सुविधा चालू है, तो प्रोफ़ाइलर, Linux PSI डेटा इकट्ठा करता है.
टैग:
bazel_monitoring --[no]experimental_collect_resource_estimationdefault: "false"-
अगर यह सुविधा चालू है, तो प्रोफ़ाइलर, स्थानीय कार्रवाइयों के लिए सीपीयू और मेमोरी के इस्तेमाल का अनुमान इकट्ठा करता है.
टैग:
bazel_monitoring --[no]experimental_collect_skyframe_counts_in_profilerdefault: "false"-
इस सुविधा के चालू होने पर, प्रोफ़ाइलर, Skyframe ग्राफ़ में समय के साथ SkyFunction की संख्या इकट्ठा करता है. यह संख्या, मुख्य फ़ंक्शन टाइप के लिए होती है. जैसे, कॉन्फ़िगर किए गए टारगेट और कार्रवाई के एक्ज़ीक्यूशन. इससे परफ़ॉर्मेंस पर असर पड़ सकता है, क्योंकि यह हर प्रोफ़ाइलिंग टाइम यूनिट पर पूरे Skyframe ग्राफ़ पर जाता है. परफ़ॉर्मेंस के लिए ज़रूरी मेज़रमेंट के साथ इस फ़्लैग का इस्तेमाल न करें.
टैग:
bazel_monitoring --[no]experimental_collect_system_network_usagedefault: "true"-
इस सेटिंग के चालू होने पर, प्रोफ़ाइलर सिस्टम के नेटवर्क इस्तेमाल से जुड़ा डेटा इकट्ठा करता है.
टैग:
bazel_monitoring --[no]experimental_collect_worker_data_in_profilerdefault: "true"-
इस सुविधा के चालू होने पर, प्रोफ़ाइलर वर्कर के एग्रीगेट किए गए संसाधन डेटा को इकट्ठा करता है.
टैग:
bazel_monitoring --experimental_command_profile=<cpu, wall, alloc or lock>डिफ़ॉल्ट: ब्यौरा देखें-
यह कुकी, कमांड की अवधि के लिए Java फ़्लाइट रिकॉर्डर प्रोफ़ाइल को रिकॉर्ड करती है. प्रोफ़ाइलिंग के लिए इस्तेमाल किए जा सकने वाले इवेंट टाइप (cpu, wall, alloc या lock) में से किसी एक को आर्ग्युमेंट के तौर पर दिया जाना चाहिए. प्रोफ़ाइल को आउटपुट बेस डायरेक्ट्री में, इवेंट टाइप के नाम वाली फ़ाइल में लिखा जाता है. ज़्यादा प्रोफ़ाइल टाइप या आउटपुट फ़ॉर्मैट के साथ काम करने के लिए, आने वाले समय में इस फ़्लैग के सिंटैक्स और सिमैंटिक में बदलाव किया जा सकता है. इसलिए, इसका इस्तेमाल अपने जोखिम पर करें.
--experimental_profile_additional_tasks=<phase, action, discover_inputs, action_check, action_lock, action_update, action_complete, action_rewinding, bzlmod, info, create_package, remote_execution, local_execution, scanner, local_parse, upload_time, remote_process_time, remote_queue, remote_setup, fetch, local_process_time, vfs_stat, vfs_dir, vfs_readlink, vfs_md5, vfs_xattr, vfs_delete, vfs_open, vfs_read, vfs_write, vfs_glob, vfs_vmfs_stat, vfs_vmfs_dir, vfs_vmfs_read, wait, thread_name, thread_sort_index, skyframe_eval, skyfunction, critical_path, critical_path_component, handle_gc_notification, local_action_counts, starlark_parser, starlark_user_fn, starlark_builtin_fn, starlark_user_compiled_fn, starlark_repository_fn, action_fs_staging, remote_cache_check, remote_download, remote_network, filesystem_traversal, worker_execution, worker_setup, worker_borrow, worker_working, worker_copying_outputs, credential_helper, conflict_check, dynamic_lock, repository_fetch, repository_vendor, repo_cache_gc_wait, spawn_log, rpc, skycache, wasm_load, wasm_exec or unknown>कई बार इस्तेमाल किया गया हो-
इस कुकी का इस्तेमाल, प्रोफ़ाइल में शामिल किए जाने वाले अन्य प्रोफ़ाइल टास्क के बारे में बताने के लिए किया जाता है.
टैग:
bazel_monitoring --[no]experimental_profile_include_primary_outputdefault: "false"-
कार्रवाई वाले इवेंट में "out" एट्रिब्यूट शामिल करता है. इसमें कार्रवाई के मुख्य आउटपुट का एक्ज़ेक पाथ होता है.
टैग:
bazel_monitoring --[no]experimental_profile_include_target_configurationdefault: "false"-
इसमें कार्रवाई के इवेंट के JSON प्रोफ़ाइल डेटा में टारगेट कॉन्फ़िगरेशन हैश शामिल होता है.
टैग:
bazel_monitoring --[no]experimental_profile_include_target_labeldefault: "false"-
इसमें कार्रवाई वाले इवेंट के JSON प्रोफ़ाइल डेटा में टारगेट लेबल शामिल होता है.
टैग:
bazel_monitoring --[no]experimental_record_metrics_for_all_mnemonicsdefault: "false"-
यह BEP ActionSummary और BuildGraphMetrics के आउटपुट को कंट्रोल करता है. साथ ही, ActionData में निमोनिक की संख्या और BuildGraphMetrics.AspectCount/RuleClassCount में रिपोर्ट की गई एंट्री की संख्या को सीमित करता है. डिफ़ॉल्ट रूप से, टाइप की संख्या को टॉप 20 तक सीमित किया जाता है. यह सीमा, ActionData के लिए की गई कार्रवाइयों की संख्या और RuleClass और Asepcts के लिए इंस्टेंस की संख्या के हिसाब से तय की जाती है. इस विकल्प को सेट करने पर, सभी निमोनिक, नियम क्लास, और पहलुओं के लिए आंकड़े लिखे जाएंगे.
--[no]experimental_record_skyframe_metricsdefault: "false"-
यह BEP BuildGraphMetrics के आउटपुट को कंट्रोल करता है. इसमें Skykeys, RuleClasses, और Aspects के बारे में Skyframe मेट्रिक को कंप्यूट करने के लिए, expensiveto शामिल है. इस फ़्लैग को false पर सेट करने पर, BEP में BuildGraphMetrics.rule_count और aspectfields नहीं भरे जाएंगे.
--[no]experimental_run_bep_event_include_residuedefault: "false"-
क्या रन बिल्ड इवेंट में कमांड-लाइन के बचे हुए हिस्से को शामिल करना है. इसमें बचा हुआ हिस्सा शामिल हो सकता है. डिफ़ॉल्ट रूप से, रन कमांड के बिल्ड इवेंट में बचे हुए डेटा को शामिल नहीं किया जाता. हालांकि, इसमें बचे हुए डेटा को शामिल किया जा सकता है.
टैग:
affects_outputs --[no]experimental_stream_log_file_uploadsdefault: "false"-
स्ट्रीम लॉग फ़ाइल अपलोड करने की सुविधा, फ़ाइलों को डिस्क में सेव करने के बजाय सीधे रिमोट स्टोरेज में अपलोड करती है.
टैग:
affects_outputs --experimental_workspace_rules_log_file=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Workspace के कुछ नियमों से जुड़े इवेंट को इस फ़ाइल में, WorkspaceEvent protos के तौर पर लॉग करें.
--[no]generate_json_trace_profiledefault: "auto"-
इस विकल्प के चालू होने पर, Bazel बिल्ड की प्रोफ़ाइल बनाता है. साथ ही, आउटपुट बेस में मौजूद किसी फ़ाइल में JSON फ़ॉर्मैट वाली प्रोफ़ाइल लिखता है. chrome://tracing में लोड करके प्रोफ़ाइल देखें. Bazel, डिफ़ॉल्ट रूप से सभी बिल्ड-लाइक कमांड और क्वेरी के लिए प्रोफ़ाइल लिखता है.
टैग:
bazel_monitoring --[no]heap_dump_on_oomdefault: "false"-
अगर OOM (आउट ऑफ़ मेमोरी) की समस्या आती है, तो क्या हीप डंप को मैन्युअल तरीके से आउटपुट करना है. इसमें --gc_thrashing_limits तक पहुंचने की वजह से होने वाली मैन्युअल OOM की समस्याएं भी शामिल हैं. डंप को <output_base>/<invocation_id>.heapdump.hprof में लिखा जाएगा. यह विकल्प, -XX:+HeapDumpOnOutOfMemoryError की जगह पर काम करता है. हालांकि, मैन्युअल ओओएम के लिए इसका कोई असर नहीं होता.
टैग:
bazel_monitoring --jvm_heap_histogram_internal_object_pattern=<a valid Java regular expression>डिफ़ॉल्ट: "jdk\.internal\.vm\.Filler.+"-
JDK21+ JVM हीप मेमोरी कलेक्शन के लिए, मैचिंग लॉजिक को बदलने के लिए रेगुलर एक्सप्रेशन. हम मेमोरी के इस्तेमाल से जुड़ी सटीक मेट्रिक पाने के लिए, G1 GC को लागू करने से जुड़ी अस्थिर जानकारी पर भरोसा कर रहे हैं. इस विकल्प की मदद से, हम बाइनरी रिलीज़ का इंतज़ार किए बिना, G1 GC को लागू करने से जुड़े अंदरूनी बदलावों के हिसाब से खुद को ढाल सकते हैं. JDK Matcher.find() को पास किया गया
--[no]legacy_important_outputsdefault: "false"-
इसका इस्तेमाल, TargetComplete इवेंट में लेगसी important_outputs फ़ील्ड को जनरेट होने से रोकने के लिए करें. Bazel को ResultStore/BTX इंटिग्रेशन के लिए important_outputs की ज़रूरत होती है.
टैग:
affects_outputs --logging=<0 <= an integer <= 6>default: "3"-
लॉगिंग लेवल.
टैग:
affects_outputs --memory_profile=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर सेट किया गया है, तो फ़ेज़ के खत्म होने पर, मेमोरी के इस्तेमाल का डेटा तय की गई फ़ाइल में लिखें. साथ ही, बिल्ड के खत्म होने पर, स्टेबल हीप को मास्टर लॉग में लिखें.
टैग:
bazel_monitoring --memory_profile_stable_heap_parameters=<integers, separated by a comma expected in pairs>default: "1,0"-
बिल्ड के आखिर में, स्टेबल हीप के मेमोरी प्रोफ़ाइल के कंप्यूटेशन को ट्यून करें. यह कॉमा से अलग किए गए पूर्णांकों की सम संख्या होनी चाहिए. हर पेयर में पहला पूर्णांक, जीसी की संख्या होती है. हर जोड़े में दूसरा पूर्णांक, जीसी के बीच इंतज़ार करने के लिए सेकंड की संख्या है. उदाहरण के लिए, 2,4,4,0 का मतलब है कि दो बार 'रुककर पढ़ें' सुविधा का इस्तेमाल किया जाएगा. हर बार चार सेकंड के लिए रुककर पढ़ा जाएगा. इसके बाद, चार बार 'रुककर पढ़ें' सुविधा का इस्तेमाल किया जाएगा. हर बार शून्य सेकंड के लिए रुककर पढ़ा जाएगा
टैग:
bazel_monitoring --profile=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर सेट है, तो Bazel की प्रोफ़ाइल बनाएं और डेटा को तय की गई फ़ाइल में लिखें. ज़्यादा जानकारी के लिए, https://bazel.build/advanced/performance/json-trace-profile देखें.
टैग:
bazel_monitoring --profiles_to_retain=<an integer>डिफ़ॉल्ट: "5"-
आउटपुट बेस में बनाए रखने के लिए प्रोफ़ाइलों की संख्या. अगर आउटपुट बेस में इस संख्या से ज़्यादा प्रोफ़ाइलें हैं, तो सबसे पुरानी प्रोफ़ाइलों को तब तक मिटाया जाता है, जब तक कि कुल संख्या तय सीमा से कम न हो जाए.
टैग:
bazel_monitoring --[no]record_full_profiler_datadefault: "false"-
डिफ़ॉल्ट रूप से, Bazel प्रोफ़ाइलर सिर्फ़ एग्रीगेट किए गए डेटा को रिकॉर्ड करेगा. ऐसा तेज़ी से होने वाले कई इवेंट (जैसे, फ़ाइल की स्थिति) के लिए किया जाएगा. इस विकल्प के चालू होने पर, प्रोफ़ाइलर हर इवेंट को रिकॉर्ड करेगा. इससे प्रोफ़ाइलिंग का ज़्यादा सटीक डेटा मिलेगा, लेकिन परफ़ॉर्मेंस पर काफ़ी असर पड़ेगा. इस विकल्प का असर सिर्फ़ तब होता है, जब --profile का भी इस्तेमाल किया गया हो.
टैग:
bazel_monitoring --[no]redirect_local_instrumentation_output_writesdefault: "false"-
अगर यह विकल्प सही है और काम करता है, तो इंस्ट्रुमेंटेशन आउटपुट को रीडायरेक्ट किया जाता है, ताकि उसे उस मशीन पर स्थानीय तौर पर लिखा जा सके जिस पर Bazel चल रहा है.
टैग:
bazel_monitoring --remote_print_execution_messages=<failure, success or all>default: "failure"-
रिमोट एक्ज़ीक्यूशन के मैसेज कब प्रिंट करने हैं, यह चुनें. मान्य वैल्यू ये हैं:
failure, सिर्फ़ फ़ेल होने पर प्रिंट करने के लिए,successसिर्फ़ पास होने पर प्रिंट करने के लिए, औरallहमेशा प्रिंट करने के लिए.टैग:
terminal_output --[no]slim_profiledefault: "true"-
अगर प्रोफ़ाइल बहुत बड़ी हो जाती है, तो यह कुकी इवेंट को मर्ज करके JSON प्रोफ़ाइल का साइज़ कम कर देती है.
टैग:
bazel_monitoring --starlark_cpu_profile=<a string>default: ""-
यह फ़ंक्शन, Starlark के सभी थ्रेड के ज़रिए सीपीयू के इस्तेमाल की pprof प्रोफ़ाइल को तय की गई फ़ाइल में लिखता है.
टैग:
bazel_monitoring --tool_tag=<a string>default: ""-
इस Bazel इनवोकेशन का श्रेय देने के लिए टूल का नाम.
--ui_event_filters=<Convert list of comma separated event kind to list of filters>कई बार इस्तेमाल किया गया हो-
इससे यह तय होता है कि यूज़र इंटरफ़ेस (यूआई) में कौनसे इवेंट दिखाए जाएं. लीडिंग +/- का इस्तेमाल करके, डिफ़ॉल्ट इवेंट में इवेंट जोड़े या हटाए जा सकते हैं. इसके अलावा, सीधे असाइनमेंट का इस्तेमाल करके, डिफ़ॉल्ट सेट को पूरी तरह से बदला जा सकता है. इस्तेमाल किए जा सकने वाले इवेंट के सेट में INFO, DEBUG, ERROR वगैरह शामिल हैं.
टैग:
terminal_output --[no]write_command_logdefault: "false"-
command.log फ़ाइल लिखी जाए या नहीं
टैग:
bazel_monitoring
- रिमोट कैशिंग और एक्ज़ीक्यूशन के विकल्प:
--downloader_config=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट डाउनलोडर को कॉन्फ़िगर करने के लिए, कोई फ़ाइल चुनें. इस फ़ाइल में लाइनें होती हैं. इनमें से हर लाइन, किसी डायरेक्टिव (
allow,blockयाrewrite) से शुरू होती है. इसके बाद, होस्टनेम (allowऔरblockके लिए) या दो पैटर्न होते हैं. इनमें से एक पैटर्न का इस्तेमाल मैच करने के लिए किया जाता है और दूसरे का इस्तेमाल विकल्प के तौर पर यूआरएल के लिए किया जाता है. साथ ही, बैक-रेफ़रंस$1से शुरू होते हैं. एक ही यूआरएल के लिए, एक से ज़्यादाrewriteडायरेक्टिव दिए जा सकते हैं. ऐसे में, एक से ज़्यादा यूआरएल दिखाए जाएंगे. --experimental_circuit_breaker_strategy=<failure>डिफ़ॉल्ट: ब्यौरा देखें-
यह कुकी, सर्किट ब्रेकर के इस्तेमाल की रणनीति के बारे में बताती है. उपलब्ध रणनीतियां "failure" हैं. विकल्प के लिए अमान्य वैल्यू होने पर, विकल्प सेट न होने पर जैसा व्यवहार होता है वैसा ही व्यवहार होता है.
टैग:
execution --experimental_remote_cache_compression_threshold=<an integer>डिफ़ॉल्ट: "100"-
zstd का इस्तेमाल करके कंप्रेस/डीकंप्रेस करने के लिए, कम से कम ब्लोब साइज़. जब तक --remote_cache_compression सेट नहीं किया जाता, तब तक यह विकल्प काम नहीं करता.
--[no]experimental_remote_cache_lease_extensiondefault: "false"-
अगर इस विकल्प को 'चालू है' पर सेट किया जाता है, तो Bazel, बिल्ड के दौरान रिमोट ऐक्शन के आउटपुट के लिए लीज़ को बढ़ा देगा. इसके लिए, वह रिमोट कैश को समय-समय पर
FindMissingBlobsकॉल भेजेगा. फ़्रीक्वेंसी,--experimental_remote_cache_ttlकी वैल्यू पर आधारित होती है. --experimental_remote_cache_ttl=<An immutable length of time.>default: "3h"-
डाइजेस्ट का हाल ही में रेफ़रंस दिए जाने के बाद, रिमोट कैश में मौजूद ब्लॉब का कम से कम टीटीएल. उदाहरण के लिए, ActionResult या FindMissingBlobs. Bazel, ब्लॉब के टीटीएल के आधार पर कई ऑप्टिमाइज़ेशन करता है. उदाहरण के लिए, इंक्रीमेंटल बिल्ड में GetActionResult को बार-बार कॉल नहीं करता है. वैल्यू को असली टीटीएल से थोड़ा कम पर सेट किया जाना चाहिए, क्योंकि सर्वर के डाइजेस्ट वापस भेजने और Bazel के उन्हें पाने के बीच कुछ समय लगता है.
टैग:
execution --experimental_remote_capture_corrupted_outputs=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
उस डायरेक्ट्री का पाथ जहां खराब आउटपुट कैप्चर किए जाएंगे.
--[no]experimental_remote_discard_merkle_treesdefault: "true"-
अगर इसे 'सही' पर सेट किया जाता है, तो GetActionResult() और Execute() को कॉल करने के दौरान, इनपुट रूट के Merkle ट्री और उससे जुड़े इनपुट मैपिंग की इन-मेमोरी कॉपी को खारिज कर दें. इससे मेमोरी का इस्तेमाल काफ़ी कम हो जाता है. हालांकि, रिमोट कैश मेमोरी में मौजूद न होने और फिर से कोशिश करने पर, Bazel को इन्हें फिर से कंप्यूट करना पड़ता है.
--experimental_remote_downloader=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट ऐसेट एपीआई एंडपॉइंट यूआरआई, जिसका इस्तेमाल रिमोट डाउनलोड प्रॉक्सी के तौर पर किया जाना है. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. इस लिंक पर जानकारी पाएं: https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallbackdefault: "false"-
अगर रिमोट डाउनलोडर काम नहीं करता है, तो लोकल डाउनलोडर का इस्तेमाल करना है या नहीं.
--[no]experimental_remote_downloader_propagate_credentialsdefault: "false"-
यह तय करता है कि netrc और क्रेडेंशियल हेल्पर से क्रेडेंशियल को रिमोट डाउनलोडर सर्वर पर भेजना है या नहीं. सर्वर पर लागू करने के लिए, नए
http_header_url:<url-index>:<header-key>क्वालिफ़ायर का इस्तेमाल किया जाना चाहिए. इसमें<url-index>, FetchBlobRequest केurisफ़ील्ड में मौजूद यूआरएल की 0 से शुरू होने वाली पोज़िशन होती है. यूआरएल के हिसाब से तय किए गए हेडर को ग्लोबल हेडर से ज़्यादा प्राथमिकता दी जानी चाहिए. --[no]experimental_remote_execution_keepalivedefault: "false"-
रिमोट तरीके से एक्ज़ीक्यूट करने के लिए कॉल के लिए, कीपअलाइव का इस्तेमाल करना है या नहीं.
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range>default: "10"-
यह किसी खास समयावधि के लिए, फ़ेल होने की दर को प्रतिशत में सेट करता है. इसके बाद, यह रिमोट कैश/एक्ज़ीक्यूटर को कॉल करना बंद कर देता है. डिफ़ॉल्ट रूप से इसकी वैल्यू 10 होती है. इसे 0 पर सेट करने का मतलब है कि कोई सीमा नहीं है.
टैग:
execution --experimental_remote_failure_window_interval=<An immutable length of time.>default: "60s"-
वह समयावधि जिसमें रिमोट अनुरोधों के पूरे न होने की दर का हिसाब लगाया जाता है. शून्य या नेगेटिव वैल्यू होने पर, फ़ेल होने की अवधि को पूरे एक्ज़ीक्यूशन की अवधि के तौर पर कैलकुलेट किया जाता है.इन यूनिट का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
टैग:
execution --[no]experimental_remote_mark_tool_inputsdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो Bazel, रिमोट एक्ज़ीक्यूटर के लिए इनपुट को टूल इनपुट के तौर पर मार्क करेगा. इसका इस्तेमाल, रिमोट पर्सिस्टेंट वर्कर को लागू करने के लिए किया जा सकता है.
--[no]experimental_remote_merkle_tree_cachedefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो मेर्कल ट्री के हिसाब-किताब को मेमोराइज़ किया जाएगा. इससे रिमोट कैश हिट की जांच करने की स्पीड बेहतर होगी. कैश मेमोरी के फ़ुटप्रिंट को --experimental_remote_merkle_tree_cache_size कंट्रोल करता है.
--experimental_remote_merkle_tree_cache_size=<a long integer>डिफ़ॉल्ट: "1000"-
रिमोट कैश हिट की जांच करने की स्पीड को बेहतर बनाने के लिए, मेमोइज़ किए जाने वाले मर्कल ट्री की संख्या. Java में सॉफ़्ट रेफ़रंस को मैनेज करने के तरीके के हिसाब से, कैश मेमोरी अपने-आप कम हो जाती है. हालांकि, अगर इसे बहुत ज़्यादा पर सेट किया जाता है, तो मेमोरी से जुड़ी गड़बड़ियां हो सकती हैं. अगर इसे 0 पर सेट किया जाता है, तो कैश मेमोरी का साइज़ अनलिमिटेड होता है. सबसे सही वैल्यू, प्रोजेक्ट के साइज़ के हिसाब से अलग-अलग होती है. डिफ़ॉल्ट रूप से 1,000 पर सेट होता है.
--experimental_remote_output_service=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट आउटपुट सेवा के एंडपॉइंट का HOST या HOST:PORT. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc:// या unix: स्कीमा तय करें.
--experimental_remote_output_service_output_path_prefix=<a string>default: ""-
यह वह पाथ है जिसके तहत, --experimental_remote_output_service मैनेज की गई आउटपुट डायरेक्ट्री का कॉन्टेंट रखा जाता है. किसी बिल्ड के लिए इस्तेमाल की जाने वाली आउटपुट डायरेक्ट्री, इस पाथ की डिसेंडेंट होगी. साथ ही, इसे आउटपुट सेवा तय करेगी.
--[no]experimental_remote_require_cacheddefault: "false"-
अगर इस विकल्प को 'सही है' पर सेट किया जाता है, तो यह ज़रूरी हो जाता है कि दूर से की जा सकने वाली सभी कार्रवाइयों को कैश मेमोरी में सेव किया जाए. ऐसा न होने पर, बिल्ड पूरा नहीं होगा. यह गैर-निर्धारित समस्याओं को हल करने के लिए उपयोगी है. इससे यह जांच की जा सकती है कि जिन कार्रवाइयों को कैश मेमोरी में सेव किया जाना चाहिए उन्हें कैश मेमोरी में सेव किया गया है या नहीं. साथ ही, यह भी जांच की जा सकती है कि कैश मेमोरी में नए नतीजे गलत तरीके से तो नहीं डाले गए हैं.
--experimental_remote_scrubbing_config=<Converts to a Scrubber>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, दी गई कॉन्फ़िगरेशन फ़ाइल की मदद से, रिमोट कैश मेमोरी की कुंजी को मिटाने की सुविधा चालू करता है. यह फ़ाइल, टेक्स्ट फ़ॉर्मैट में प्रोटोकॉल बफ़र होनी चाहिए. इसके बारे में ज़्यादा जानने के लिए, src/main/protobuf/remote_scrubbing.proto देखें.
इस सुविधा का मकसद, अलग-अलग प्लैटफ़ॉर्म पर एक्ज़ीक्यूट की जा रही कार्रवाइयों के बीच रिमोट/डिस्क कैश मेमोरी को शेयर करना है. हालांकि, ये कार्रवाइयां एक ही प्लैटफ़ॉर्म को टारगेट करती हैं. इसका इस्तेमाल बहुत सावधानी से करना चाहिए, क्योंकि गलत सेटिंग की वजह से कैश मेमोरी की एंट्री अनजाने में शेयर हो सकती हैं. इससे गलत बिल्ड बन सकते हैं.
स्क्रबिंग से, किसी कार्रवाई के लागू होने के तरीके पर कोई असर नहीं पड़ता. इससे सिर्फ़ यह तय होता है कि कार्रवाई के नतीजे को वापस पाने या सेव करने के लिए, उसकी रिमोट/डिस्क कैश मेमोरी की कुंजी कैसे कैलकुलेट की जाती है. स्क्रब की गई कार्रवाइयां, रिमोट एक्ज़ीक्यूशन के साथ काम नहीं करती हैं. इसलिए, इन्हें हमेशा स्थानीय तौर पर ही एक्ज़ीक्यूट किया जाएगा.
स्क्रबिंग कॉन्फ़िगरेशन में बदलाव करने से, लोकल फ़ाइल सिस्टम या इंटरनल कैश मेमोरी में मौजूद आउटपुट अमान्य नहीं होते. जिन कार्रवाइयों पर असर पड़ा है उन्हें फिर से लागू करने के लिए, क्लीन बिल्ड की ज़रूरत होती है.
इस सुविधा का इस्तेमाल करने के लिए, आपको --host_platform को --experimental_platform_in_output_dir (आउटपुट प्रीफ़िक्स को सामान्य बनाने के लिए) और --incompatible_strict_action_env (एनवायरमेंट वैरिएबल को सामान्य बनाने के लिए) के साथ सेट करना होगा.
--[no]guard_against_concurrent_changesdefault: "lite"-
इसे 'full' पर सेट करें, ताकि रिमोट कैश में अपलोड करने से पहले, किसी कार्रवाई की सभी इनपुट फ़ाइलों के ctime की जांच की जा सके. ऐसा हो सकता है कि कुछ मामलों में Linux कर्नल, फ़ाइलों को लिखने में देरी करे. इससे गलत पॉज़िटिव नतीजे मिल सकते हैं. डिफ़ॉल्ट रूप से, 'lite' मोड चालू होता है. इसमें सिर्फ़ मुख्य रिपॉज़िटरी में मौजूद सोर्स फ़ाइलों की जांच की जाती है. इसे 'बंद है' पर सेट करने से, सभी जांच बंद हो जाती हैं. हमारा सुझाव है कि ऐसा न करें. ऐसा इसलिए, क्योंकि जब किसी सोर्स फ़ाइल में बदलाव किया जाता है, तब उसे इनपुट के तौर पर लेने वाली कार्रवाई चल रही होती है. इससे कैश मेमोरी में मौजूद डेटा खराब हो सकता है.
टैग:
execution --[no]remote_accept_cacheddefault: "true"-
दूर से कैश मेमोरी में सेव किए गए कार्रवाई के नतीजों को स्वीकार करना है या नहीं.
--remote_build_event_upload=<all or minimal>default: "minimal"-
अगर इसे 'all' पर सेट किया जाता है, तो BEP से रेफ़र किए गए सभी लोकल आउटपुट, रिमोट कैश में अपलोड किए जाते हैं. अगर इसे 'कम से कम' पर सेट किया जाता है, तो बीईपी से रेफ़र की गई लोकल आउटपुट फ़ाइलों को रिमोट कैश में अपलोड नहीं किया जाता. हालांकि, बीईपी के उपभोक्ताओं के लिए ज़रूरी फ़ाइलों को अपलोड किया जाता है. जैसे, टेस्ट लॉग और टाइमिंग प्रोफ़ाइल. फ़ाइलों के यूआरआई के लिए, हमेशा bytestream:// स्कीम का इस्तेमाल किया जाता है. भले ही, वे रिमोट कैश में मौजूद न हों. डिफ़ॉल्ट रूप से 'minimal' पर सेट होता है.
--remote_bytestream_uri_prefix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
होस्टनेम और इंस्टेंस का नाम, जिसका इस्तेमाल उन bytestream:// यूआरआई में किया जाना है जिन्हें बिल्ड इवेंट स्ट्रीम में लिखा जाता है. इस विकल्प को तब सेट किया जा सकता है, जब प्रॉक्सी का इस्तेमाल करके बिल्ड किए जाते हैं. इससे --remote_executor और --remote_instance_name की वैल्यू, रिमोट एक्ज़ीक्यूशन सेवा के कैननिकल नाम से मेल नहीं खाती हैं. अगर इसे सेट नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से "${hostname}/${instance_name}" पर सेट हो जाएगा.
--remote_cache=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कैशिंग एंडपॉइंट का यूआरआई. इन स्कीमा का इस्तेमाल किया जा सकता है: http, https, grpc, grpcs (TLS की सुविधा के साथ grpc) और unix (लोकल UNIX सॉकेट). अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc://, http:// या unix: स्कीमा तय करें. https://bazel.build/remote/caching पर जाएं
--[no]remote_cache_asyncdefault: "true"-
अगर यह वैल्यू सही है, तो कार्रवाई के नतीजों को डिस्क या रिमोट कैश में अपलोड करने की प्रोसेस बैकग्राउंड में होगी. इससे कार्रवाई पूरी होने में कोई रुकावट नहीं आएगी. कुछ कार्रवाइयां, बैकग्राउंड में अपलोड करने की सुविधा के साथ काम नहीं करती हैं. इसलिए, इस फ़्लैग को सेट करने के बाद भी, ये कार्रवाइयां अपलोड होने में रुकावट डाल सकती हैं.
--[no]remote_cache_compressiondefault: "false"-
अगर यह विकल्प चालू है, तो कैश मेमोरी के बड़े ऑब्जेक्ट को zstd की मदद से कंप्रेस/डिकंप्रेस करें. ऐसा तब करें, जब उनका साइज़ कम से कम --experimental_remote_cache_compression_threshold हो.
--remote_cache_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे कैश मेमोरी के अनुरोधों में शामिल किया जाएगा: --remote_cache_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_default_exec_properties=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
डिफ़ॉल्ट exec प्रॉपर्टी सेट करें, ताकि उन्हें रिमोट एक्ज़ीक्यूशन प्लैटफ़ॉर्म के तौर पर इस्तेमाल किया जा सके. ऐसा तब किया जाता है, जब एक्ज़ीक्यूशन प्लैटफ़ॉर्म पहले से exec_properties सेट न करता हो.
टैग:
affects_outputs --remote_default_platform_properties=<a string>default: ""-
अगर एक्ज़ीक्यूशन प्लैटफ़ॉर्म ने पहले से remote_execution_properties सेट नहीं की हैं, तो रिमोट एक्ज़ीक्यूशन एपीआई के लिए सेट की जाने वाली डिफ़ॉल्ट प्लैटफ़ॉर्म प्रॉपर्टी सेट करें. अगर रिमोट एक्ज़ीक्यूशन के लिए होस्ट प्लैटफ़ॉर्म को एक्ज़ीक्यूशन प्लैटफ़ॉर्म के तौर पर चुना जाता है, तो इस वैल्यू का इस्तेमाल किया जाएगा.
--remote_download_regex=<a valid Java regular expression>कई बार इस्तेमाल किया गया हो-
इस पैटर्न से मेल खाने वाले पाथ के रिमोट बिल्ड आउटपुट को डाउनलोड करने के लिए मजबूर करें. भले ही, --remote_download_outputs का इस्तेमाल किया गया हो या नहीं. इस फ़्लैग को दोहराकर, कई पैटर्न तय किए जा सकते हैं.
टैग:
affects_outputs --remote_downloader_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे रिमोट डाउनलोडर के अनुरोधों में शामिल किया जाएगा: --remote_downloader_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_exec_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे एक्ज़ीक्यूशन के अनुरोधों में शामिल किया जाएगा: --remote_exec_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_execution_priority=<an integer>default: "0"-
रिमोट ऐक्शन को लागू करने की प्राथमिकता. प्राथमिकता की खास वैल्यू का सिमैंटिक, सर्वर पर निर्भर करता है.
--remote_executor=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट एक्ज़ीक्यूशन एंडपॉइंट का HOST या HOST:PORT. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc:// या unix: स्कीमा तय करें.
--remote_grpc_log=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो gRPC कॉल से जुड़ी जानकारी को लॉग करने के लिए फ़ाइल का पाथ. इस लॉग में, com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobufs का क्रम होता है. हर मैसेज के पहले एक varint होता है, जो इसके बाद आने वाले क्रमबद्ध protobuf मैसेज के साइज़ को दिखाता है. यह काम, LogEntry.writeDelimitedTo(OutputStream) तरीके से किया जाता है.
--remote_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर डालें जिसे अनुरोधों में शामिल किया जाएगा: --remote_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_instance_name=<a string>default: ""-
रिमोट एक्ज़ीक्यूशन एपीआई में instance_name के तौर पर पास की जाने वाली वैल्यू.
--[no]remote_local_fallbackdefault: "false"-
अगर रिमोट एक्सीक्यूशन काम नहीं करता है, तो क्या स्टैंडअलोन लोकल एक्सीक्यूशन की रणनीति पर वापस जाना है.
--remote_local_fallback_strategy=<a string>default: "local"-
समर्थन नहीं होना या रुकना. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7480 पर जाएं.
--remote_max_connections=<an integer>डिफ़ॉल्ट: "100"-
रिमोट कैश/एक्ज़ीक्यूटर से एक साथ कनेक्ट होने वाले कनेक्शन की ज़्यादा से ज़्यादा संख्या को सीमित करें. डिफ़ॉल्ट रूप से, इसकी वैल्यू 100 होती है. इसे 0 पर सेट करने का मतलब है कि कोई सीमा नहीं है. एचटीटीपी रिमोट कैश के लिए, एक टीसीपी कनेक्शन एक बार में एक अनुरोध को हैंडल कर सकता है. इसलिए, Bazel एक साथ --remote_max_connections अनुरोध कर सकता है. gRPC रिमोट कैश/एक्ज़ीक्यूटर के लिए, एक gRPC चैनल आम तौर पर 100 से ज़्यादा एक साथ किए गए अनुरोधों को हैंडल कर सकता है. इसलिए, Bazel एक साथ करीब
--remote_max_connections * 100अनुरोध कर सकता है. --remote_proxy=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
प्रॉक्सी के ज़रिए रिमोट कैश से कनेक्ट करें. फ़िलहाल, इस फ़्लैग का इस्तेमाल सिर्फ़ Unix डोमेन सॉकेट (unix:/path/to/socket) को कॉन्फ़िगर करने के लिए किया जा सकता है.
--remote_result_cache_priority=<an integer>default: "0"-
रिमोट कैश मेमोरी में सेव किए जाने वाले रिमोट ऐक्शन की प्राथमिकता. प्राथमिकता की खास वैल्यू का सिमैंटिक, सर्वर पर निर्भर करता है.
--remote_retries=<an integer>डिफ़ॉल्ट: "5"-
कुछ समय के लिए हुई गड़बड़ी को ठीक करने के लिए, ज़्यादा से ज़्यादा कोशिशें की जा सकती हैं. अगर इसे 0 पर सेट किया जाता है, तो फिर से कोशिश करने की सुविधा बंद हो जाती है.
--remote_retry_max_delay=<An immutable length of time.>default: "5s"-
रीमोट तरीके से फिर से कोशिश करने के बीच ज़्यादा से ज़्यादा बैकऑफ़ डिले. इन इकाइयों का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
--remote_timeout=<An immutable length of time.>default: "60s"-
रिमोट एक्ज़ीक्यूशन और कैश मेमोरी के कॉल के लिए, इंतज़ार करने का ज़्यादा से ज़्यादा समय. REST कैश के लिए, यह कनेक्ट और रीड, दोनों के लिए टाइमआउट होता है. इन इकाइयों का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
--[no]remote_upload_local_resultsdefault: "true"-
अगर रिमोट कैश मेमोरी इस सुविधा के साथ काम करती है और उपयोगकर्ता के पास ऐसा करने की अनुमति है, तो क्या स्थानीय तौर पर की गई कार्रवाई के नतीजों को रिमोट कैश मेमोरी में अपलोड करना है.
--[no]remote_verify_downloadsdefault: "true"-
इस विकल्प को सही पर सेट करने पर, Bazel सभी रिमोट डाउनलोड के हैश सम का हिसाब लगाएगा. साथ ही, अगर रिमोट से कैश की गई वैल्यू, अनुमानित वैल्यू से मैच नहीं करती हैं, तो उन्हें खारिज कर देगा.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--build_metadata=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
बिल्ड इवेंट में सप्लाई करने के लिए, कस्टम की-वैल्यू स्ट्रिंग पेयर.
टैग:
terminal_output --color=<yes, no or auto>default: "auto"-
आउटपुट को रंगीन बनाने के लिए, टर्मिनल कंट्रोल का इस्तेमाल करें.
--config=<a string>कई बार इस्तेमाल किया गया हो-
यह rc फ़ाइलों से अतिरिक्त कॉन्फ़िगरेशन सेक्शन चुनता है. साथ ही, हर <command> के लिए, यह <command>:<config> से विकल्प भी खींचता है. ऐसा तब होता है, जब ऐसा कोई सेक्शन मौजूद हो. अगर यह सेक्शन किसी भी .rc फ़ाइल में मौजूद नहीं है, तो Blaze गड़बड़ी के साथ बंद हो जाता है. कॉन्फ़िगरेशन सेक्शन और उनसे मिलते-जुलते फ़्लैग कॉम्बिनेशन, tools/*.blazerc कॉन्फ़िगरेशन फ़ाइलों में मौजूद होते हैं.
--credential_helper=<Path to a credential helper. It may be absolute, relative to the PATH environment variable, or %workspace%-relative. The path be optionally prefixed by a scope followed by an '='. The scope is a domain name, optionally with a single leading '*' wildcard component. A helper applies to URIs matching its scope, with more specific scopes preferred. If a helper has no scope, it applies to every URI.>कई बार इस्तेमाल किया गया हो-
यह विकल्प, <a href="https://github.com/EngFlow/credential-helper-spec">क्रेडेंशियल हेल्पर स्पेसिफ़िकेशन</a> के मुताबिक क्रेडेंशियल हेल्पर को कॉन्फ़िगर करता है. इसका इस्तेमाल, रिपॉज़िटरी फ़ेच करने, रिमोट कैश मेमोरी और एक्ज़ीक्यूशन, और बिल्ड इवेंट सेवा के लिए अनुमति वाले क्रेडेंशियल पाने के लिए किया जाता है.
सहायता करने वाले व्यक्ति के दिए गए क्रेडेंशियल को,
--google_default_credentials,--google_credentials,.netrcफ़ाइल याrepository_ctx.download()औरrepository_ctx.download_and_extract()के लिए auth पैरामीटर के ज़रिए दिए गए क्रेडेंशियल से ज़्यादा प्राथमिकता दी जाती है.एक से ज़्यादा हेल्पर सेट अप करने के लिए, इसे कई बार तय किया जा सकता है.
निर्देशों के लिए, https://blog.engflow.com/2023/10/09/configuring-bazels-credential-helper/ पर जाएं.
--credential_helper_cache_duration=<An immutable length of time.>default: "30m"-
अगर क्रेडेंशियल हेल्पर, क्रेडेंशियल के खत्म होने का समय नहीं दिखाता है, तो क्रेडेंशियल को कितने समय तक कैश मेमोरी में सेव किया जाए. इस फ़्लैग की वैल्यू बदलने से, कैश मेमोरी खाली हो जाती है.
--credential_helper_timeout=<An immutable length of time.>default: "10s"-
यह विकल्प, क्रेडेंशियल हेल्पर के लिए टाइम आउट कॉन्फ़िगर करता है.
अगर क्रेडेंशियल हेल्पर इस टाइमआउट के अंदर जवाब नहीं देते हैं, तो उन्हें लागू नहीं किया जा सकेगा.
--curses=<yes, no or auto>default: "auto"-
स्क्रोलिंग आउटपुट को कम करने के लिए, टर्मिनल कर्सर कंट्रोल का इस्तेमाल करें.
--disk_cache=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक डायरेक्ट्री का पाथ होता है. Bazel इस डायरेक्ट्री में कार्रवाइयां और कार्रवाई के आउटपुट को पढ़ और लिख सकता है. अगर डायरेक्ट्री मौजूद नहीं है, तो उसे बनाया जाएगा.
--[no]enable_platform_specific_configdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, bazelrc फ़ाइलों से होस्ट-ओएस के हिसाब से कॉन्फ़िगरेशन लाइनें चुनता है. उदाहरण के लिए, अगर होस्ट ओएस Linux है और आपने bazel build कमांड चलाई है, तो Bazel, build:linux से शुरू होने वाली लाइनों को चुनता है. इस्तेमाल किए जा सकने वाले ओएस आइडेंटिफ़ायर ये हैं: linux, macos, windows, freebsd, और openbsd. इस फ़्लैग को चालू करने का मतलब है कि Linux पर --config=linux, Windows पर --config=windows वगैरह का इस्तेमाल किया जा रहा है.
--experimental_action_cache_gc_idle_delay=<An immutable length of time.>default: "5m"-
कार्रवाई की कैश मेमोरी से डेटा हटाने से पहले, सर्वर को कितने समय तक बंद रहना चाहिए. अगर --experimental_action_cache_gc_max_age की वैल्यू शून्य नहीं है, तो ही यह विकल्प काम करेगा.
--experimental_action_cache_gc_max_age=<An immutable length of time.>default: "0"-
अगर इसे शून्य से अलग वैल्यू पर सेट किया जाता है, तो ऐक्शन कैश को समय-समय पर गार्बेज कलेक्शन किया जाएगा, ताकि इस उम्र से पुरानी एंट्री हटाई जा सकें. जब सर्वर का इस्तेमाल नहीं हो रहा होता है, तब बैकग्राउंड में गार्बेज कलेक्शन होता है. यह --experimental_action_cache_gc_idle_delay और --experimental_action_cache_gc_threshold फ़्लैग से तय होता है.
--experimental_action_cache_gc_threshold=<an integer in 0-100 range>default: "10"-
गार्बेज कलेक्शन को ट्रिगर करने के लिए, पुरानी ऐक्शन कैश मेमोरी की एंट्री का प्रतिशत ज़रूरी है. अगर --experimental_action_cache_gc_max_age की वैल्यू शून्य नहीं है, तो ही यह विकल्प काम करेगा.
--experimental_disk_cache_gc_idle_delay=<An immutable length of time.>default: "5m"-
डिस्क कैश मेमोरी की गार्बेज कलेक्शन की प्रोसेस शुरू होने से पहले, सर्वर को कितने समय तक बंद रहना चाहिए. कचरा इकट्ठा करने की नीति तय करने के लिए, --experimental_disk_cache_gc_max_size और/या --experimental_disk_cache_gc_max_age सेट करें.
--experimental_disk_cache_gc_max_age=<An immutable length of time.>default: "0"-
अगर इसे पॉज़िटिव वैल्यू पर सेट किया जाता है, तो डिस्क कैश मेमोरी से समय-समय पर ऐसी एंट्री हटा दी जाएंगी जो इस वैल्यू से ज़्यादा पुरानी हैं. अगर इसे --experimental_disk_cache_gc_max_size के साथ सेट किया जाता है, तो दोनों शर्तें लागू होती हैं. सर्वर के निष्क्रिय होने के बाद, बैकग्राउंड में गार्बेज कलेक्शन होता है. सर्वर के निष्क्रिय होने का समय, --experimental_disk_cache_gc_idle_delay फ़्लैग से तय होता है.
--experimental_disk_cache_gc_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>default: "0"-
अगर इसे पॉज़िटिव वैल्यू पर सेट किया जाता है, तो डिस्क कैश को समय-समय पर रीसाइकल किया जाएगा, ताकि यह इस साइज़ से ज़्यादा न हो. अगर इसे --experimental_disk_cache_gc_max_age के साथ सेट किया जाता है, तो दोनों शर्तें लागू होती हैं. सर्वर के निष्क्रिय होने के बाद, बैकग्राउंड में गार्बेज कलेक्शन होता है. सर्वर के निष्क्रिय होने का समय, --experimental_disk_cache_gc_idle_delay फ़्लैग से तय होता है.
--[no]experimental_enable_thread_dumpdefault: "false"-
थ्रेड डंप चालू करने हैं या नहीं. अगर यह विकल्प चालू है, तो Bazel सभी थ्रेड (वर्चुअल थ्रेड भी शामिल हैं) की स्थिति को हर --experimental_thread_dump_interval पर एक फ़ाइल में डंप करेगा. इसके अलावा, अगर कार्रवाई --experimental_thread_dump_action_execution_inactivity_duration तक बंद रहती है, तब भी Bazel ऐसा करेगा. डंप, <output_base>/server/thread_dumps/ डायरेक्ट्री में लिखे जाएंगे.
टैग:
bazel_monitoring --experimental_install_base_gc_max_age=<An immutable length of time.>default: "30d"-
किसी ऐप्लिकेशन को कितने समय तक इस्तेमाल न करने पर, उसे ट्रैश में भेजा जा सकता है. अगर यह वैल्यू शून्य नहीं है, तो सर्वर कुछ समय तक इस्तेमाल न होने पर, अन्य इंस्टॉल बेस को गार्बेज इकट्ठा करने की कोशिश करेगा.
--[no]experimental_rule_extension_apidefault: "true"-
एक्सपेरिमेंट के तौर पर उपलब्ध नियम एक्सटेंशन एपीआई और सबनियम एपीआई चालू करें
--experimental_thread_dump_action_execution_inactivity_duration=<An immutable length of time.>default: "0"-
अगर इस अवधि तक कार्रवाई नहीं की जाती है, तो थ्रेड डंप करें. अगर यह वैल्यू शून्य है, तो कार्रवाई के बंद होने पर कोई थ्रेड डंप नहीं लिखा जाता.
टैग:
bazel_monitoring --experimental_thread_dump_interval=<An immutable length of time.>default: "0"-
थ्रेड को समय-समय पर कितनी बार डंप करना है. अगर इसकी वैल्यू शून्य है, तो थ्रेड डंप को समय-समय पर नहीं लिखा जाता.
टैग:
bazel_monitoring --[no]experimental_windows_watchfsdefault: "false"-
अगर यह वैल्यू सही है, तो --watchfs के लिए Windows पर एक्सपेरिमेंट के तौर पर उपलब्ध सुविधा चालू हो जाती है. इसके अलावा, Windows पर --watchfs काम नहीं करता है. --watchfs को भी चालू करना न भूलें.
--google_auth_scopes=<comma-separated list of options>default: "https://www.googleapis.com/auth/cloud-platform"-
Google Cloud की पुष्टि करने के स्कोप की, कॉमा लगाकर अलग की गई सूची.
--google_credentials=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
इस विकल्प का इस्तेमाल करके, उस फ़ाइल के बारे में बताया जाता है जिससे पुष्टि करने वाले क्रेडेंशियल पाने हैं. ज़्यादा जानकारी के लिए, https://cloud.google.com/docs/authentication पर जाएं.
--[no]google_default_credentialsdefault: "false"-
पुष्टि करने के लिए, 'Google ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल' का इस्तेमाल करना है या नहीं. ज़्यादा जानकारी के लिए, https://cloud.google.com/docs/authentication पर जाएं. यह सुविधा डिफ़ॉल्ट रूप से बंद होती है.
--grpc_keepalive_time=<An immutable length of time.>डिफ़ॉल्ट: ब्यौरा देखें-
यह नीति, आउटगोइंग gRPC कनेक्शन के लिए कीप-अलाइव पिंग कॉन्फ़िगर करती है. अगर यह विकल्प सेट किया जाता है, तो कनेक्शन पर कोई भी रीड ऑपरेशन न होने के बाद, Bazel इस समयावधि के बाद पिंग भेजता है. हालांकि, ऐसा सिर्फ़ तब होता है, जब कम से कम एक gRPC कॉल लंबित हो. समय को सेकंड के हिसाब से माना जाता है. एक सेकंड से कम की वैल्यू सेट करना गड़बड़ी है. डिफ़ॉल्ट रूप से, कीप-अलाइव पिंग की सुविधा बंद होती है. इस सेटिंग को चालू करने से पहले, आपको सेवा के मालिक से संपर्क करना चाहिए. उदाहरण के लिए, इस फ़्लैग के लिए 30 सेकंड की वैल्यू सेट करने के लिए, इसे इस तरह से किया जाना चाहिए --grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>default: "20s"-
यह कुकी, आउटगोइंग gRPC कनेक्शन के लिए कीप-अलाइव टाइमआउट कॉन्फ़िगर करती है. अगर --grpc_keepalive_time के साथ कीप-अलाइव पिंग चालू हैं, तो Bazel इस समय के बाद पिंग का जवाब न मिलने पर कनेक्शन को टाइम आउट कर देता है. समय को सेकंड के हिसाब से माना जाता है. एक सेकंड से कम की वैल्यू सेट करना गड़बड़ी है. अगर कीप-अलाइव पिंग बंद हैं, तो इस सेटिंग को अनदेखा कर दिया जाता है.
--[no]incompatible_disable_non_executable_java_binarydefault: "false"-
अगर यह सही है, तो java_binary हमेशा एक्ज़ीक्यूटेबल होता है. create_executable एट्रिब्यूट हटा दिया जाता है.
--[no]incompatible_repo_env_ignores_action_envdefault: "true"-
अगर यह वैल्यू 'सही है' पर सेट है, तो <code>--action_env=NAME=VALUE</code> का असर अब रिपॉज़िटरी के नियम और मॉड्यूल एक्सटेंशन एनवायरमेंट पर नहीं पड़ेगा.
--inject_repository=<an equals-separated mapping of repository name to path>कई बार इस्तेमाल किया गया हो-
यह <repository name>=<path> के फ़ॉर्म में, लोकल पाथ वाली नई रिपॉज़िटरी जोड़ता है. यह सिर्फ़ --enable_bzlmod के साथ काम करता है. साथ ही, यह
use_repo_ruleके ज़रिए रूट मॉड्यूल की MODULE.bazel फ़ाइल में, इससे मिलता-जुलताlocal_repositoryजोड़ने के बराबर है. अगर दिया गया पाथ ऐब्सलूट पाथ है, तो इसका इस्तेमाल वैसे ही किया जाएगा. अगर दिया गया पाथ रिलेटिव पाथ है, तो यह मौजूदा वर्किंग डायरेक्ट्री के हिसाब से होगा. अगर दिया गया पाथ '%workspace%' से शुरू होता है, तो यह वर्कस्पेस के रूट के हिसाब से होता है. वर्कस्पेस का रूट,bazel info workspaceका आउटपुट होता है. अगर दिया गया पाथ खाली है, तो पहले से मौजूद किसी भी इंजेक्शन को हटा दें. --invocation_id=<a UUID>default: ""-
चलाई जा रही कमांड के लिए यूयूआईडी फ़ॉर्मैट में यूनीक आइडेंटिफ़ायर. अगर यूनीकनेस के बारे में साफ़ तौर पर बताया गया है, तो कॉलर को यह पक्का करना होगा कि वह यूनीक हो. यूयूआईडी को stderr, बीईपी, और रिमोट एक्ज़ीक्यूशन प्रोटोकॉल में प्रिंट किया जाता है.
--override_repository=<an equals-separated mapping of repository name to path>कई बार इस्तेमाल किया गया हो-
<repository name>=<path> के फ़ॉर्मैट में लोकल पाथ का इस्तेमाल करके, किसी रिपॉज़िटरी को बदलें. अगर दिया गया पाथ ऐब्सलूट पाथ है, तो इसका इस्तेमाल वैसे ही किया जाएगा. अगर दिया गया पाथ रिलेटिव पाथ है, तो यह मौजूदा वर्किंग डायरेक्ट्री के हिसाब से होगा. अगर दिया गया पाथ '%workspace%' से शुरू होता है, तो यह वर्कस्पेस के रूट के हिसाब से होता है. यह
bazel info workspaceका आउटपुट होता है. अगर दिया गया पाथ खाली है, तो पिछले सभी ओवरराइड हटा दें. --[no]progress_in_terminal_titledefault: "false"-
टर्मिनल के टाइटल में कमांड की प्रोग्रेस दिखाएं. एक से ज़्यादा टर्मिनल टैब होने पर, यह देखने के लिए उपयोगी है कि Bazel क्या कर रहा है.
--[no]show_progressdefault: "true"-
बिल्ड के दौरान प्रोग्रेस मैसेज दिखाता है.
--show_progress_rate_limit=<a double>default: "0.2"-
आउटपुट में प्रोग्रेस मैसेज के बीच कम से कम सेकंड की संख्या.
--[no]show_timestampsdefault: "false"-
मैसेज में टाइमस्टैंप शामिल करना
--tls_certificate=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
उस टीएलएस सर्टिफ़िकेट का पाथ तय करें जिस पर सर्वर सर्टिफ़िकेट पर हस्ताक्षर करने के लिए भरोसा किया जाता है.
--tls_client_certificate=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
इस्तेमाल किए जाने वाले टीएलएस क्लाइंट सर्टिफ़िकेट के बारे में बताएं. साथ ही, क्लाइंट की पुष्टि करने की सुविधा चालू करने के लिए, आपको क्लाइंट कुंजी भी देनी होगी.
--tls_client_key=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
इस्तेमाल की जाने वाली टीएलएस क्लाइंट कुंजी डालें. क्लाइंट की पुष्टि करने की सुविधा चालू करने के लिए, आपको क्लाइंट सर्टिफ़िकेट भी देना होगा.
--ui_actions_shown=<an integer>default: "8"-
डिटेल वाले प्रोग्रेस बार में एक साथ दिखाई गई कार्रवाइयों की संख्या. हर कार्रवाई को अलग लाइन में दिखाया जाता है. प्रोग्रेस बार में हमेशा कम से कम एक दिखता है. साथ ही, एक से कम सभी संख्याओं को एक पर मैप किया जाता है.
टैग:
terminal_output --[no]watchfsdefault: "false"-
Linux/macOS पर: अगर यह विकल्प सही है, तो Bazel हर फ़ाइल को स्कैन करने के बजाय, स्थानीय बदलावों के लिए ऑपरेटिंग सिस्टम की फ़ाइल वॉच सेवा का इस्तेमाल करने की कोशिश करता है. Windows पर: फ़िलहाल, यह फ़्लैग काम नहीं करता है. हालांकि, इसे --experimental_windows_watchfs के साथ चालू किया जा सकता है. किसी भी ओएस पर: अगर आपका वर्कस्पेस नेटवर्क फ़ाइल सिस्टम पर है और फ़ाइलों में बदलाव किसी रिमोट मशीन पर किया जाता है, तो इसका व्यवहार तय नहीं किया जा सकता.
Aquery के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- क्वेरी के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--aspect_deps=<off, conservative or precise>default: "conservative"-
जब आउटपुट फ़ॉर्मैट {xml,proto,record} में से कोई एक हो, तब पहलू की डिपेंडेंसी को कैसे हल करें. 'off' का मतलब है कि किसी भी पहलू की डिपेंडेंसी हल नहीं की गई है. 'conservative' (डिफ़ॉल्ट) का मतलब है कि सभी पहलुओं की डिपेंडेंसी जोड़ी गई हैं. भले ही, उन्हें डायरेक्ट डिपेंडेंसी का नियम क्लास दिया गया हो. 'precise' का मतलब है कि सिर्फ़ उन पहलुओं को जोड़ा गया है जो डायरेक्ट डिपेंडेंसी के नियम क्लास के हिसाब से शायद ऐक्टिव हों. ध्यान दें कि सटीक मोड में, किसी एक टारगेट का आकलन करने के लिए अन्य पैकेज लोड करने पड़ते हैं. इसलिए, यह अन्य मोड की तुलना में धीमा होता है. यह भी ध्यान दें कि सटीक मोड भी पूरी तरह से सटीक नहीं होता: किसी पहलू का हिसाब लगाना है या नहीं, यह फ़ैसला विश्लेषण के चरण में लिया जाता है. यह चरण 'bazel query' के दौरान नहीं चलता.
टैग:
build_file_semantics --[no]consistent_labelsdefault: "false"-
अगर यह सुविधा चालू है, तो हर क्वेरी कमांड, लेबल को इस तरह से दिखाती है जैसे Starlark <code>str</code> फ़ंक्शन को <code>Label</code> इंस्टेंस पर लागू किया गया हो. यह उन टूल के लिए काम का है जिन्हें नियमों के हिसाब से जनरेट की गई अलग-अलग क्वेरी कमांड और/या लेबल के आउटपुट को मैच करना होता है. अगर यह सुविधा चालू नहीं है, तो आउटपुट फ़ॉर्मेटर, आउटपुट को ज़्यादा आसानी से पढ़ने के लिए, मुख्य रिपॉज़िटरी के बजाय रिपॉज़िटरी के नाम (मुख्य रिपॉज़िटरी के हिसाब से) दिखा सकते हैं.
टैग:
terminal_output --[no]experimental_explicit_aspectsdefault: "false"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]graph:factoreddefault: "true"-
अगर सही है, तो ग्राफ़ को 'फ़ैक्टर्ड' किया जाएगा. इसका मतलब है कि टोपोलॉजिकल तौर पर एक जैसे नोड को एक साथ मर्ज कर दिया जाएगा और उनके लेबल को एक साथ जोड़ दिया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --graph:node_limit=<an integer>default: "512"-
आउटपुट में, ग्राफ़ नोड के लिए लेबल स्ट्रिंग की ज़्यादा से ज़्यादा लंबाई. बड़े लेबल छोटे कर दिए जाएंगे; -1 का मतलब है कि लेबल को छोटा नहीं किया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --[no]implicit_depsdefault: "true"-
अगर यह विकल्प चालू है, तो क्वेरी जिस डिपेंडेंसी ग्राफ़ पर काम करती है उसमें इंप्लिसिट डिपेंडेंसी शामिल की जाएंगी. इंप्लिसिट डिपेंडेंसी ऐसी डिपेंडेंसी होती है जिसे BUILD फ़ाइल में साफ़ तौर पर नहीं बताया जाता, लेकिन Bazel उसे जोड़ देता है. cquery के लिए, यह विकल्प हल की गई टूलचेन को फ़िल्टर करने की सुविधा को कंट्रोल करता है.
टैग:
build_file_semantics --[no]include_artifactsdefault: "true"-
इसमें आउटपुट में कार्रवाई के इनपुट और आउटपुट के नाम शामिल होते हैं. यह काफ़ी बड़ा हो सकता है.
टैग:
terminal_output --[no]include_aspectsdefault: "true"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]include_commandlinedefault: "true"-
इसमें आउटपुट में ऐक्शन कमांड लाइन का कॉन्टेंट शामिल होता है. यह काफ़ी बड़ा हो सकता है.
टैग:
terminal_output --[no]include_file_write_contentsdefault: "false"-
FileWrite, SourceSymlinkManifest, और RepoMappingManifest कार्रवाइयों के लिए फ़ाइल का कॉन्टेंट शामिल करें. यह कॉन्टेंट बड़ा हो सकता है.
टैग:
terminal_output --[no]include_param_filesdefault: "false"-
कमांड में इस्तेमाल की गई पैरामीटर फ़ाइलों का कॉन्टेंट शामिल करें. यह कॉन्टेंट बड़ा हो सकता है. ध्यान दें: इस फ़्लैग को चालू करने पर, --include_commandline फ़्लैग अपने-आप चालू हो जाएगा.
टैग:
terminal_output --[no]include_pruned_inputsdefault: "true"-
इसमें कार्रवाई के ऐसे इनपुट शामिल होते हैं जिन्हें कार्रवाई पूरी होने के दौरान हटाया गया था. इससे सिर्फ़ उन कार्रवाइयों पर असर पड़ता है जो इनपुट का पता लगाती हैं और पिछले इनवोकेशन में पूरी हो चुकी हैं. यह विकल्प सिर्फ़ तब काम करता है, जब --include_artifacts भी सेट किया गया हो.
टैग:
terminal_output --[no]incompatible_package_group_includes_double_slashdefault: "true"-
इस सेटिंग को चालू करने पर, package_group
packagesएट्रिब्यूट की वैल्यू देते समय, लीडिंग//को नहीं हटाया जाएगा. --[no]infer_universe_scopedefault: "false"-
अगर इसे सेट किया गया है और --universe_scope को सेट नहीं किया गया है, तो --universe_scope की वैल्यू को क्वेरी एक्सप्रेशन में मौजूद यूनीक टारगेट पैटर्न की सूची के तौर पर माना जाएगा. ध्यान दें कि क्वेरी एक्सप्रेशन के लिए अनुमानित --universe_scope वैल्यू, आपकी ज़रूरत के हिसाब से नहीं हो सकती.ऐसा तब होता है, जब क्वेरी एक्सप्रेशन में यूनिवर्स के स्कोप वाले फ़ंक्शन (जैसे,
allrdeps) का इस्तेमाल किया जाता है.इसलिए, इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब आपको पता हो कि आपको क्या करना है. ज़्यादा जानकारी और उदाहरणों के लिए, https://bazel.build/reference/query#sky-query पर जाएं. अगर --universe_scope सेट है, तो इस विकल्प की वैल्यू को अनदेखा कर दिया जाता है. ध्यान दें: यह विकल्प सिर्फ़queryपर लागू होता है. इसका मतलब है कि यहcqueryपर लागू नहीं होता.टैग:
loading_and_analysis --[no]line_terminator_nulldefault: "false"-
क्या हर फ़ॉर्मैट को नई लाइन के बजाय \0 से खत्म किया गया है.
टैग:
terminal_output --[no]nodep_depsdefault: "true"-
अगर यह विकल्प चालू है, तो "nodep" एट्रिब्यूट से मिली डिपेंडेंसी को डिपेंडेंसी ग्राफ़ में शामिल किया जाएगा. इस ग्राफ़ पर क्वेरी काम करती है. "nodep" एट्रिब्यूट का एक सामान्य उदाहरण "visibility" है. बिल्ड लैंग्वेज में मौजूद सभी "nodep" एट्रिब्यूट के बारे में जानने के लिए,
info build-languageका आउटपुट पार्स करें और उसे चलाएं.टैग:
build_file_semantics --output=<a string>default: "text"-
वह फ़ॉर्मैट जिसमें aquery के नतीजे प्रिंट किए जाने चाहिए. aquery के लिए इन वैल्यू का इस्तेमाल किया जा सकता है: text, textproto, proto, streamed_proto, jsonproto.
टैग:
terminal_output --output_file=<a string>default: ""-
इस विकल्प को चुनने पर, क्वेरी के नतीजे सीधे इस फ़ाइल में लिखे जाएंगे. साथ ही, Bazel के स्टैंडर्ड आउटपुट स्ट्रीम (stdout) में कुछ भी प्रिंट नहीं किया जाएगा. आम तौर पर, बेंचमार्क में यह <code>bazel query > file</code> से ज़्यादा तेज़ होता है.
टैग:
terminal_output --[no]proto:default_valuesdefault: "true"-
अगर यह विकल्प सही है, तो उन एट्रिब्यूट को शामिल किया जाता है जिनकी वैल्यू BUILD फ़ाइल में साफ़ तौर पर नहीं दी गई है. अगर यह विकल्प गलत है, तो उन एट्रिब्यूट को शामिल नहीं किया जाता है. यह विकल्प, --output=proto पर लागू होता है
टैग:
terminal_output --[no]proto:definition_stackdefault: "false"-
definition_stack proto फ़ील्ड भरें. यह फ़ील्ड, हर नियम के इंस्टेंस के लिए, Starlark कॉल स्टैक को रिकॉर्ड करता है. यह रिकॉर्डिंग, नियम की क्लास तय किए जाने के समय की होती है.
टैग:
terminal_output --[no]proto:flatten_selectsdefault: "true"-
इस विकल्प को चालू करने पर, select() फ़ंक्शन से बनाए गए कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट को फ़्लैट कर दिया जाता है. सूची टाइप के लिए, फ़्लैट किए गए डेटा का मतलब ऐसी सूची से है जिसमें चुने गए मैप की हर वैल्यू सिर्फ़ एक बार शामिल होती है. स्केलर टाइप को शून्य पर सेट किया जाता है.
टैग:
build_file_semantics --[no]proto:include_attribute_source_aspectsdefault: "false"-
हर एट्रिब्यूट के source_aspect_name प्रोटो फ़ील्ड में, उस सोर्स पहलू का नाम डालें जिससे एट्रिब्यूट मिला है. अगर एट्रिब्यूट किसी सोर्स पहलू से नहीं मिला है, तो इस फ़ील्ड में खाली स्ट्रिंग डालें.
टैग:
terminal_output --[no]proto:include_starlark_rule_envdefault: "true"-
जनरेट किए गए $internal_attr_hash एट्रिब्यूट की वैल्यू में, Starlark एनवायरमेंट का इस्तेमाल करें. इससे यह पक्का होता है कि स्टार्लार्क नियम की परिभाषा (और उसके ट्रांज़िटिव इंपोर्ट) इस आइडेंटिफ़ायर का हिस्सा हैं.
टैग:
terminal_output --[no]proto:include_synthetic_attribute_hashdefault: "false"-
$internal_attr_hash एट्रिब्यूट की वैल्यू का हिसाब लगाना है या नहीं.
टैग:
terminal_output --[no]proto:instantiation_stackdefault: "false"-
हर नियम के इंस्टैंटिएशन कॉल स्टैक को पॉप्युलेट करें. ध्यान दें कि इसके लिए, स्टैक का मौजूद होना ज़रूरी है
टैग:
terminal_output --[no]proto:locationsdefault: "true"-
जगह की जानकारी को प्रोटो आउटपुट में दिखाना है या नहीं.
टैग:
terminal_output --proto:output_rule_attrs=<comma-separated list of options>default: "all"-
आउटपुट में शामिल किए जाने वाले एट्रिब्यूट की कॉमा लगाकर बनाई गई सूची. डिफ़ॉल्ट रूप से, सभी एट्रिब्यूट के लिए लागू होता है. किसी भी एट्रिब्यूट को आउटपुट न करने के लिए, इसे खाली स्ट्रिंग पर सेट करें. यह विकल्प, --output=proto पर लागू होता है.
टैग:
terminal_output --[no]proto:rule_classesdefault: "false"-
हर नियम के rule_class_key फ़ील्ड में वैल्यू डालें. साथ ही, दिए गए rule_class_key वाले पहले नियम के लिए, उसके rule_class_info प्रोटो फ़ील्ड में भी वैल्यू डालें. rule_class_key फ़ील्ड, नियम क्लास की खास तौर पर पहचान करता है. साथ ही, rule_class_info फ़ील्ड, Stardoc फ़ॉर्मैट में नियम क्लास की एपीआई डेफ़िनिशन है.
टैग:
terminal_output --[no]proto:rule_inputs_and_outputsdefault: "true"-
rule_input और rule_output फ़ील्ड में वैल्यू डालनी है या नहीं.
टैग:
terminal_output --query_file=<a string>default: ""-
अगर इसे सेट किया जाता है, तो क्वेरी, कमांड लाइन के बजाय यहां दी गई फ़ाइल से क्वेरी पढ़ेगी. यहां फ़ाइल और कमांड-लाइन क्वेरी, दोनों को एक साथ नहीं बताया जा सकता.
टैग:
changes_inputs --[no]relative_locationsdefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो एक्सएमएल और प्रोटो आउटपुट में BUILD फ़ाइलों की जगह की जानकारी रिलेटिव होगी. डिफ़ॉल्ट रूप से, जगह की जानकारी का आउटपुट एक ऐब्सलूट पाथ होता है. यह अलग-अलग मशीनों पर एक जैसा नहीं होता. इस विकल्प को true पर सेट किया जा सकता है, ताकि सभी मशीनों पर एक जैसा नतीजा मिले.
टैग:
terminal_output --[no]skyframe_statedefault: "false"-
ज़्यादा विश्लेषण किए बिना, Skyframe से मौजूदा ऐक्शन ग्राफ़ को डंप करो. ध्यान दें: फ़िलहाल, --skyframe_state के साथ टारगेट तय करने की सुविधा उपलब्ध नहीं है. यह फ़्लैग सिर्फ़ --output=proto या --output=textproto के साथ उपलब्ध है.
टैग:
terminal_output --[no]tool_depsdefault: "true"-
क्वेरी: अगर यह सुविधा बंद है, तो 'एक्ज़ीक्यूशन कॉन्फ़िगरेशन' पर निर्भरता, उस डिपेंडेंसी ग्राफ़ में शामिल नहीं की जाएगी जिस पर क्वेरी काम करती है. 'exec configuration' डिपेंडेंसी एज, जैसे कि किसी भी 'proto_library' नियम से लेकर प्रोटोकॉल कंपाइलर तक, आम तौर पर उस टूल की ओर इशारा करता है जिसे बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है. यह उसी 'target' प्रोग्राम का हिस्सा नहीं होता. Cquery: अगर यह विकल्प बंद है, तो यह उन सभी कॉन्फ़िगर किए गए टारगेट को फ़िल्टर कर देता है जो टॉप-लेवल के उस टारगेट से एक्ज़ीक्यूशन ट्रांज़िशन को पार करते हैं जिसने इस कॉन्फ़िगर किए गए टारगेट का पता लगाया था. इसका मतलब है कि अगर टॉप-लेवल का टारगेट, टारगेट कॉन्फ़िगरेशन में है, तो टारगेट कॉन्फ़िगरेशन में कॉन्फ़िगर किए गए टारगेट ही दिखाए जाएंगे. अगर टॉप-लेवल का टारगेट, exec कॉन्फ़िगरेशन में है, तो सिर्फ़ exec कॉन्फ़िगर किए गए टारगेट दिखाए जाएंगे. इस विकल्प से, हल की गई टूलचेन को नहीं हटाया जाएगा.
टैग:
build_file_semantics --universe_scope=<comma-separated list of options>default: ""-
कॉमा लगाकर अलग किए गए टारगेट पैटर्न का सेट (जोड़ने और घटाने वाले). क्वेरी को, ट्रांज़िटिव क्लोज़र के ज़रिए तय किए गए यूनिवर्स में किया जा सकता है. इस विकल्प का इस्तेमाल, क्वेरी और cquery कमांड के लिए किया जाता है. cquery के लिए, इस विकल्प का इनपुट वे टारगेट होते हैं जिनके तहत सभी जवाब बनाए जाते हैं. इसलिए, यह विकल्प कॉन्फ़िगरेशन और ट्रांज़िशन पर असर डाल सकता है. अगर इस विकल्प के बारे में नहीं बताया जाता है, तो यह माना जाता है कि क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के टारगेट हैं. ध्यान दें: cquery के लिए, इस विकल्प को तय न करने पर, बिल्ड टूट सकता है. ऐसा तब होता है, जब क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के विकल्पों के साथ नहीं बनाए जा सकते.
टैग:
loading_and_analysis
- बिल्ड के एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_persistent_aar_extractordefault: "false"-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट एएआर एक्सट्रैक्टर चालू करें.
टैग:
execution,experimental --[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_split_coverage_postprocessingdefault: "false"-
सही होने पर, Bazel एक नए स्पॉन में टेस्ट के लिए कवरेज पोस्टप्रोसेसिंग चलाएगा.
टैग:
execution,experimental --[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--persistent_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार चालू करें.
बढ़कर:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker --persistent_android_resource_processor-
वर्कर्स का इस्तेमाल करके, Android रिसॉर्स प्रोसेसर को लगातार चालू रखने की सुविधा चालू करें.
इनमें बदल जाता है:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker --persistent_multiplex_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार कई बार चलाने की सुविधा चालू करें.
बढ़कर:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar --persistent_multiplex_android_resource_processor-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट मल्टीप्लेक्स किए गए Android रिसॉर्स प्रोसेसर को चालू करें.
बढ़कर:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers --persistent_multiplex_android_tools-
Android के लगातार काम करने वाले और मल्टीप्लेक्स किए गए टूल (dexing, desugaring, resource processing) चालू करें.
बढ़कर:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar --[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--android_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Android टारगेट कंपाइलर.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_manifest_merger=<legacy, android or force_android>डिफ़ॉल्ट: "android"-
android_binary नियमों के लिए, मेनिफ़ेस्ट मर्जर को चुनता है. यह फ़्लैग, लेगसी मर्जर से Android मेनिफ़ेस्ट मर्जर पर ट्रांज़िशन करने में मदद करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_platforms=<a build target label>default: ""-
यह विकल्प उन प्लैटफ़ॉर्म को सेट करता है जिनका इस्तेमाल android_binary टारगेट करते हैं. अगर एक से ज़्यादा प्लैटफ़ॉर्म तय किए गए हैं, तो बाइनरी एक फ़ैट APK है. इसमें हर टारगेट प्लैटफ़ॉर्म के लिए नेटिव बाइनरी शामिल होती हैं.
टैग:
changes_inputs,loading_and_analysis,loses_incremental_state --cc_output_directory_tag=<a string>default: ""-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
affects_outputs --compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट को कंपाइल करने के लिए, C++ कंपाइलर.
--coverage_output_generator=<a build target label>default: "@bazel_tools//tools/test:lcov_merger"-
उस बाइनरी का पाथ जिसका इस्तेमाल, रॉ कवरेज रिपोर्ट को पोस्टप्रोसेस करने के लिए किया जाता है. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:lcov_merger' होती है.
--coverage_report_generator=<a build target label>default: "@bazel_tools//tools/test:coverage_report_generator"-
कवरेज रिपोर्ट जनरेट करने के लिए इस्तेमाल किए गए बाइनरी की जगह. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:coverage_report_generator' होती है.
--coverage_support=<a build target label>default: "@bazel_tools//tools/test:coverage_support"-
सहायता देने वाली फ़ाइलों की जगह. ये फ़ाइलें, कोड कवरेज की जानकारी इकट्ठा करने वाली हर टेस्ट कार्रवाई के इनपुट के लिए ज़रूरी होती हैं. डिफ़ॉल्ट रूप से, यह '//tools/test:coverage_support' पर सेट होती है.
--custom_malloc=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, malloc को लागू करने का कस्टम तरीका तय करता है. यह सेटिंग, बिल्ड के नियमों में malloc एट्रिब्यूट को बदल देती है.
--[no]experimental_include_xcode_execution_requirementsdefault: "false"-
अगर सेट है, तो हर Xcode ऐक्शन में "requires-xcode:{version}" एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें. अगर Xcode के वर्शन में हाइफ़न वाला लेबल है, तो "requires-xcode-label:{version_label}" के तौर पर भी एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें.
टैग:
loses_incremental_state,loading_and_analysis,execution,experimental --[no]experimental_prefer_mutual_xcodedefault: "true"-
अगर यह नीति 'सही है' पर सेट है, तो स्थानीय और रिमोट, दोनों जगहों पर उपलब्ध Xcode के सबसे नए वर्शन का इस्तेमाल करें. अगर यह गलत है या दोनों के लिए कोई भी वर्शन उपलब्ध नहीं है, तो xcode-select के ज़रिए चुने गए Xcode के लोकल वर्शन का इस्तेमाल करें.
--extra_execution_platforms=<comma-separated list of options>default: ""-
कार्रवाइयां करने के लिए, इन प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. प्लेटफ़ॉर्म को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. register_execution_platforms() में बताए गए प्लैटफ़ॉर्म से पहले, इन प्लैटफ़ॉर्म पर विचार किया जाएगा. इस विकल्प को सिर्फ़ एक बार सेट किया जा सकता है. बाद में, फ़्लैग की सेटिंग पहले की सेटिंग को बदल देंगी.
टैग:
execution --extra_toolchains=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
टूलचेन के नियमों को टूलचेन रिज़ॉल्यूशन के दौरान ध्यान में रखा जाना चाहिए. टूलचेन को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. इन टूलचेन को, register_toolchains() फ़ंक्शन के ज़रिए WORKSPACE फ़ाइल में बताए गए टूलचेन से पहले माना जाएगा.
--grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
चेक-इन की गई libc लाइब्रेरी का लेबल. डिफ़ॉल्ट वैल्यू को क्रॉसटूल टूलचेन चुनता है. आपको इसे बदलने की ज़रूरत शायद ही कभी पड़ती है.
--host_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह फ़्लैग कोई कार्रवाई नहीं करता. आने वाले समय में रिलीज़ होने वाले वर्शन में इसे हटा दिया जाएगा.
--host_grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेटिंग तय की जाती है, तो यह exec कॉन्फ़िगरेशन के लिए, libc की टॉप-लेवल डायरेक्ट्री (--grte_top) को बदल देती है.
--host_platform=<a build target label>default: "@bazel_tools//tools:host_platform"-
होस्ट सिस्टम की जानकारी देने वाले प्लैटफ़ॉर्म के नियम का लेबल.
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
--[no]incompatible_builtin_objc_strip_actiondefault: "true"-
objc लिंकिंग के हिस्से के तौर पर स्ट्रिप ऐक्शन को चालू करना है या नहीं.
--[no]incompatible_dont_enable_host_nonhost_crosstool_featuresdefault: "true"-
अगर यह सही है, तो Bazel, C++ टूलचेन में 'होस्ट' और 'नॉनहोस्ट' सुविधाएं चालू नहीं करेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7407 देखें.
--[no]incompatible_enable_apple_toolchain_resolutiondefault: "false"-
ऐपल के नियमों (Starlark और नेटिव) के लिए Apple SDK टूल चुनने के लिए, टूलचेन रिज़ॉल्यूशन का इस्तेमाल करें
--[no]incompatible_remove_legacy_whole_archivedefault: "true"-
अगर यह विकल्प चालू है, तो Bazel डिफ़ॉल्ट रूप से लाइब्रेरी की डिपेंडेंसी को पूरे संग्रह के तौर पर लिंक नहीं करेगा. माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/7362 देखें.
--[no]incompatible_strip_executable_safelydefault: "false"-
अगर यह सही है, तो एक्ज़ीक्यूटेबल के लिए स्ट्रिप ऐक्शन, -x फ़्लैग का इस्तेमाल करेगा. इससे डाइनैमिक सिंबल रिज़ॉल्यूशन नहीं टूटेगा.
-
अगर टूलचेन में इंटरफ़ेस शेयर किए गए ऑब्जेक्ट इस्तेमाल करने की सुविधा है, तो उनका इस्तेमाल करें. फ़िलहाल, सभी ईएलएफ़ टूलचेन इस सेटिंग के साथ काम करते हैं.
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
इससे iOS ऐप्लिकेशन बनाने के लिए, iOS SDK के वर्शन के बारे में पता चलता है. यह जानकारी उपलब्ध न होने पर, 'xcode_version' से iOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
macOS ऐप्लिकेशन बनाने के लिए, macOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से macOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--minimum_os_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
ओएस का वह कम से कम वर्शन जिसे कंपाइल करने के लिए टारगेट किया गया है.
--platform_mappings=<a main workspace-relative path>default: ""-
मैपिंग फ़ाइल की जगह. इससे यह पता चलता है कि अगर कोई प्लैटफ़ॉर्म सेट नहीं है, तो कौनसा प्लैटफ़ॉर्म इस्तेमाल करना है. साथ ही, अगर कोई प्लैटफ़ॉर्म पहले से मौजूद है, तो कौनसा फ़्लैग सेट करना है. यह मुख्य वर्कस्पेस रूट के हिसाब से होना चाहिए. डिफ़ॉल्ट रूप से, यह 'platform_mappings' पर सेट होता है. यह फ़ाइल, वर्कस्पेस के रूट फ़ोल्डर में मौजूद होती है.
टैग:
affects_outputs,changes_inputs,loading_and_analysis,non_configurable --platforms=<a build target label>default: ""-
प्लैटफ़ॉर्म के नियमों के लेबल. इनसे मौजूदा कमांड के लिए टारगेट प्लैटफ़ॉर्म के बारे में पता चलता है.
--python_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट प्लैटफ़ॉर्म पर Python टारगेट चलाने के लिए, Python इंटरप्रेटर का ऐब्सलूट पाथ. अब काम नहीं करता; --incompatible_use_python_toolchains फ़्लैग की वजह से बंद है.
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
यह tvOS ऐप्लिकेशन बनाने के लिए, tvOS SDK टूल के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से tvOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--[no]use_platforms_in_apple_crosstool_transitiondefault: "false"-
इससे apple_crosstool_transition, ज़रूरत पड़ने पर लेगसी
--cpuके बजाय--platformsफ़्लैग की वैल्यू का इस्तेमाल करता है.टैग:
loading_and_analysis --watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
watchOS ऐप्लिकेशन बनाने के लिए, watchOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से watchOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो यह बिल्ड से जुड़ी कार्रवाइयों के लिए, दिए गए वर्शन के Xcode का इस्तेमाल करता है. अगर यह विकल्प नहीं दिया जाता है, तो Xcode के एक्ज़ीक्यूटर के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version_config=<a build target label>default: "@bazel_tools//tools/cpp:host_xcodes"-
यह xcode_config नियम का लेबल है. इसका इस्तेमाल, बिल्ड कॉन्फ़िगरेशन में Xcode का वर्शन चुनने के लिए किया जाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]apple_generate_dsymdefault: "false"-
डीबग सिंबल (.dSYM) फ़ाइलें जनरेट करनी हैं या नहीं.
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]build_test_dwpdefault: "false"-
अगर यह सुविधा चालू है, तो C++ टेस्ट को स्टैटिक तौर पर और फ़िशन के साथ बनाने पर, टेस्ट बाइनरी के लिए .dwp फ़ाइल भी अपने-आप बन जाएगी.
--cc_proto_library_header_suffixes=<comma-separated set of options>default: ".pb.h"-
यह विकल्प, cc_proto_library से बनाई गई हेडर फ़ाइलों के सफ़िक्स सेट करता है.
--cc_proto_library_source_suffixes=<comma-separated set of options>default: ".pb.cc"-
यह विकल्प, उन सोर्स फ़ाइलों के सफ़िक्स सेट करता है जिन्हें cc_proto_library बनाता है.
--[no]experimental_proto_descriptor_sets_include_source_infodefault: "false"-
proto_library में, Java API के अन्य वर्शन के लिए अतिरिक्त कार्रवाइयां चलाएं.
--[no]experimental_save_feature_statedefault: "false"-
इस कुकी का इस्तेमाल, चालू की गई और अनुरोध की गई सुविधाओं की स्थिति को कंपाइल करने के आउटपुट के तौर पर सेव करने के लिए किया जाता है.
टैग:
affects_outputs,experimental --fission=<a set of compilation modes>default: "no"-
इससे यह तय होता है कि C++ कंपाइलेशन और लिंक के लिए, फ़िशन का इस्तेमाल कौनसे कंपाइलेशन मोड करते हैं. यह {'fastbuild', 'dbg', 'opt'} का कोई भी कॉम्बिनेशन हो सकता है. इसके अलावा, सभी मोड चालू करने के लिए 'yes' और सभी मोड बंद करने के लिए 'no' जैसी खास वैल्यू भी इस्तेमाल की जा सकती हैं.
टैग:
loading_and_analysis,action_command_lines,affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change --[no]objc_generate_linkmapdefault: "false"-
इससे यह तय होता है कि लिंकमैप फ़ाइल जनरेट करनी है या नहीं.
टैग:
affects_outputs --[no]save_tempsdefault: "false"-
अगर यह सेट है, तो gcc से मिले कुछ समय के लिए आउटपुट सेव किए जाएंगे. इनमें .s फ़ाइलें (असेंबलर कोड), .i फ़ाइलें (प्रीप्रोसेस्ड C), और .ii फ़ाइलें (प्रीप्रोसेस्ड C++) शामिल हैं.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]android_databinding_use_androidxdefault: "true"-
AndroidX के साथ काम करने वाली डेटा-बाइंडिंग फ़ाइलें जनरेट करें. इसका इस्तेमाल सिर्फ़ databinding v2 के साथ किया जाता है. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]android_databinding_use_v3_4_argsdefault: "true"-
3.4.0 आर्ग्युमेंट के साथ android databinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --android_dynamic_mode=<off, default or fully>default: "off"-
इससे यह तय होता है कि जब cc_binary, शेयर की गई लाइब्रेरी को साफ़ तौर पर नहीं बनाता है, तो Android नियमों की C++ डिपेंडेंसी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तौर पर लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>default: "alphabetical"-
यह विकल्प, Android बाइनरी के लिए मेनिफ़ेस्ट मर्जर को पास किए गए मेनिफ़ेस्ट का क्रम सेट करता है. ALPHABETICAL का मतलब है कि मेनिफ़ेस्ट को execroot के हिसाब से पाथ के हिसाब से क्रम में लगाया जाता है. ALPHABETICAL_BY_CONFIGURATION का मतलब है कि मेनिफ़ेस्ट को आउटपुट डायरेक्ट्री में कॉन्फ़िगरेशन डायरेक्ट्री के हिसाब से पाथ के हिसाब से क्रम से लगाया जाता है. DEPENDENCY का मतलब है कि मेनिफ़ेस्ट को इस तरह से क्रम में लगाया जाता है कि हर लाइब्रेरी का मेनिफ़ेस्ट, उसकी डिपेंडेंसी के मेनिफ़ेस्ट से पहले आता है.
--[no]android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]build_python_zipdefault: "auto"-
Python एक्ज़ीक्यूटेबल ज़िप बनाएं; Windows पर चालू और अन्य प्लैटफ़ॉर्म पर बंद
टैग:
affects_outputs --catalyst_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ऐसी सूची जिसमें कॉमा लगाकर उन आर्किटेक्चर को अलग किया गया हो जिनके लिए Apple Catalyst बाइनरी बनानी हैं.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
C सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--copt=<a string>कई बार इस्तेमाल किया गया हो-
gcc को पास करने के लिए अतिरिक्त विकल्प.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--cs_fdo_absolute_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, सीएसएफ़डीओ प्रोफ़ाइल की जानकारी का इस्तेमाल करें. प्रोफ़ाइल फ़ाइल, रॉ या इंडेक्स की गई LLVM प्रोफ़ाइल फ़ाइल वाली ZIP फ़ाइल का पूरा पाथ नेम डालें.
टैग:
affects_outputs --cs_fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कॉन्टेक्स्ट के हिसाब से संवेदनशील FDO इंस्ट्रुमेंटेशन के साथ बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --cs_fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
cs_fdo_profile, कॉन्टेक्स्ट के हिसाब से काम करने वाली प्रोफ़ाइल को दिखाता है. इसका इस्तेमाल ऑप्टिमाइज़ेशन के लिए किया जाता है.
टैग:
affects_outputs --cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--dynamic_mode=<off, default or fully>default: "default"-
इससे यह तय होता है कि C++ बाइनरी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तरीके से लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--[no]enable_propeller_optimize_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो Propeller Optimize के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी होगी.
टैग:
affects_outputs --[no]enable_remaining_fdo_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो FDO के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी दिखेगी.
टैग:
affects_outputs --[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_android_compress_java_resourcesdefault: "false"-
APK में Java संसाधनों को कंप्रेस करना
--[no]experimental_android_databinding_v2default: "true"-
Android DataBinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]experimental_android_rewrite_dexes_with_rexdefault: "false"-
dex फ़ाइलों को फिर से लिखने के लिए, rex टूल का इस्तेमाल करें
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_objc_fastbuild_options=<comma-separated list of options>default: "-O0,-DDEBUG=1"-
इन स्ट्रिंग का इस्तेमाल, objc fastbuild कंपाइलर के विकल्पों के तौर पर करता है.
टैग:
action_command_lines --[no]experimental_omitfpdefault: "false"-
अगर सही है, तो स्टैक अनवाइंडिंग के लिए libunwind का इस्तेमाल करें. साथ ही, -fomit-frame-pointer और -fasynchronous-unwind-tables के साथ कंपाइल करें.
--experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_py_binaries_include_labeldefault: "false"-
py_binary टारगेट में उनका लेबल शामिल होता है. भले ही, स्टैंपिंग की सुविधा बंद हो.
टैग:
affects_outputs,experimental --[no]experimental_use_llvm_covmapdefault: "false"-
अगर ऐसा तय किया गया है, तो collect_code_coverage चालू होने पर Bazel, gcov के बजाय llvm-cov कवरेज मैप की जानकारी जनरेट करेगा.
टैग:
changes_inputs,affects_outputs,loading_and_analysis,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
एफ़डीओ इंस्ट्रुमेंटेशन की मदद से बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --fdo_optimize=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, FDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. .gcda फ़ाइल ट्री वाली zip फ़ाइल, ऑटो प्रोफ़ाइल वाली afdo फ़ाइल या LLVM प्रोफ़ाइल फ़ाइल का नाम डालें. यह फ़्लैग, लेबल के तौर पर तय की गई फ़ाइलों को भी स्वीकार करता है.जैसे,
//foo/bar:file.afdo- आपको हो सकता है कि इससे जुड़े पैकेज में//foo/bar:file.afdoडायरेक्टिव जोड़ना पड़े. साथ ही, यहfdo_profileटारगेट की ओर इशारा करने वाले लेबल को भी स्वीकार करता है.exports_filesयह फ़्लैग,fdo_profileनियम की जगह लागू होगा.टैग:
affects_outputs --fdo_prefetch_hints=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कैश मेमोरी प्रीफ़ेच के लिए, हिंट का इस्तेमाल करें.
टैग:
affects_outputs --fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
fdo_profile, ऑप्टिमाइज़ेशन के लिए इस्तेमाल की जाने वाली प्रोफ़ाइल को दिखाता है.
टैग:
affects_outputs --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--[no]force_picdefault: "false"-
इस विकल्प के चालू होने पर, सभी C++ कंपाइलेशन, पोज़िशन-इंडिपेंडेंट कोड ("-fPIC") जनरेट करते हैं. साथ ही, लिंक, नॉन-पीआईसी लाइब्रेरी के बजाय पीआईसी प्री-बिल्ट लाइब्रेरी को प्राथमिकता देते हैं. इसके अलावा, लिंक, पोज़िशन-इंडिपेंडेंट एक्ज़ीक्यूटेबल ("-pie") जनरेट करते हैं.
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
यह एक अतिरिक्त विकल्प है. इसका इस्तेमाल, exec कॉन्फ़िगरेशन में C सोर्स फ़ाइलों को कंपाइल करते समय C कंपाइलर को पास करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल C++ सोर्स फ़ाइलों के लिए नहीं किया जा सकता.
--host_copt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C++ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--host_linkopt=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में टूल लिंक करते समय, लिंकर को पास करने का अतिरिक्त विकल्प.
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
होस्ट टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में कुछ फ़ाइलों को कंपाइल करते समय, C/C++ कंपाइलर को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --host_per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों के gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, iOS का कम से कम ज़रूरी वर्शन. अगर यह जानकारी नहीं दी गई है, तो 'ios_sdk_version' का इस्तेमाल किया जाता है.
--ios_multi_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ios_application बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. नतीजा एक यूनिवर्सल बाइनरी होती है, जिसमें सभी आर्किटेक्चर शामिल होते हैं.
--[no]legacy_whole_archivedefault: "true"-
यह विकल्प अब काम नहीं करता. इसकी जगह --incompatible_remove_legacy_whole_archive का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7362 पर जाएं. चालू होने पर, cc_binary नियमों के लिए --whole-archive का इस्तेमाल करें. इन नियमों में linkshared=True और linkopts में linkstatic=True या '-static' होना चाहिए. यह सिर्फ़ पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके बजाय, हमेशा लिंक करने की सुविधा (alwayslink=1) का इस्तेमाल करना बेहतर विकल्प है.
--linkopt=<a string>कई बार इस्तेमाल किया गया हो-
लिंक करते समय gcc को पास करने का अतिरिक्त विकल्प.
--ltobackendopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ बैकएंड के चरण में पास करने का अतिरिक्त विकल्प (under --features=thin_lto).
--ltoindexopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ इंडेक्सिंग के चरण में पास करने के लिए अतिरिक्त विकल्प (--features=thin_lto के तहत).
--macos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
Apple macOS के बाइनरी फ़ाइलें बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची.
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--memprof_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
memprof प्रोफ़ाइल का इस्तेमाल करें.
टैग:
affects_outputs --[no]objc_debug_with_GLIBCXXdefault: "false"-
अगर इसे सेट किया गया है और कंपाइलेशन मोड को 'dbg' पर सेट किया गया है, तो GLIBCXX_DEBUG, GLIBCXX_DEBUG_PEDANTIC, और GLIBCPP_CONCEPT_CHECKS को तय करें.
टैग:
action_command_lines --[no]objc_enable_binary_strippingdefault: "false"-
लिंक की गई बाइनरी पर सिंबल और डेड-कोड स्ट्रिपिंग की जानी चाहिए या नहीं. अगर इस फ़्लैग और --compilation_mode=opt, दोनों को सेट किया जाता है, तो बाइनरी स्ट्रिपिंग की जाएगी.
टैग:
action_command_lines --objccopt=<a string>कई बार इस्तेमाल किया गया हो-
Objective-C/C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने के लिए अतिरिक्त विकल्प.
टैग:
action_command_lines --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ फ़ाइलों को कंपाइल करते समय, gcc को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों की gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ बैकएंड ऑब्जेक्ट को कंपाइल करते समय, LTO बैकएंड (under --features=thin_lto) को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_ltobackendopt=//foo/.*.o,-//foo/bar.o@-O0, //foo/ में मौजूद bar.o को छोड़कर, सभी o फ़ाइलों के LTO बैकएंड कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --propeller_optimize=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
बिल्ड टारगेट को ऑप्टिमाइज़ करने के लिए, Propeller की प्रोफ़ाइल की जानकारी का इस्तेमाल करें. Propeller की प्रोफ़ाइल में, कम से कम दो फ़ाइलों में से एक फ़ाइल होनी चाहिए. ये फ़ाइलें, सीसी प्रोफ़ाइल और एलडी प्रोफ़ाइल हैं. यह फ़्लैग, बिल्ड लेबल स्वीकार करता है. यह लेबल, प्रोपेलर प्रोफ़ाइल की इनपुट फ़ाइलों का रेफ़रंस देता है. उदाहरण के लिए, a/b/BUILD में मौजूद BUILD फ़ाइल, लेबल को इस तरह से तय करती है:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Bazel को ये फ़ाइलें दिखाने के लिए, हो सकता है कि आपको संबंधित पैकेज में exports_files डायरेक्टिव जोड़ना पड़े. इस विकल्प का इस्तेमाल इस तरह किया जाना चाहिए: --propeller_optimize=//a/b:propeller_profile
--propeller_optimize_absolute_cc_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए cc_profile फ़ाइल का पूरा पाथ.
टैग:
affects_outputs --propeller_optimize_absolute_ld_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए, ld_profile फ़ाइल का ऐब्सलूट पाथ.
टैग:
affects_outputs --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines -
अगर यह विकल्प चुना जाता है, तो एक जैसी सुविधा देने वाली नेटिव लाइब्रेरी को अलग-अलग टारगेट के साथ शेयर किया जाएगा
--[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs --strip=<always, sometimes or never>डिफ़ॉल्ट: "कभी-कभी"-
इससे यह तय किया जाता है कि बाइनरी और शेयर की गई लाइब्रेरी को स्ट्रिप करना है या नहीं. इसके लिए, "-Wl,--strip-debug" का इस्तेमाल किया जाता है. 'sometimes' की डिफ़ॉल्ट वैल्यू का मतलब है कि --compilation_mode=fastbuild होने पर ही स्ट्रिप करें.
टैग:
affects_outputs --stripopt=<a string>कई बार इस्तेमाल किया गया हो-
'<name>.stripped' बाइनरी जनरेट करते समय, स्ट्रिप को पास करने के लिए अतिरिक्त विकल्प.
--tvos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. इनके लिए Apple tvOS बाइनरी बनानी हैं.
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, tvOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'tvos_sdk_version' का इस्तेमाल किया जाता है.
--visionos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन आर्किटेक्चर की सूची जिनके लिए Apple visionOS बाइनरी बनानी हैं.
--watchos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई, उन आर्किटेक्चर की सूची जिनके लिए Apple watchOS बाइनरी बनानी हैं.
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, watchOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'watchos_sdk_version' का इस्तेमाल किया जाता है.
--xbinary_fdo=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, XbinaryFDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. डिफ़ॉल्ट क्रॉस बाइनरी प्रोफ़ाइल का नाम तय करें. इस विकल्प का इस्तेमाल --fdo_instrument/--fdo_optimize/--fdo_profile के साथ करने पर, उन विकल्पों को हमेशा प्राथमिकता दी जाएगी. ऐसा माना जाएगा कि xbinary_fdo को कभी भी तय नहीं किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]desugar_for_androiddefault: "true"-
यह तय करता है कि Java 8 के बाइटकोड को dexing से पहले desugar करना है या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]desugar_java8_libsdefault: "false"-
लेगसी डिवाइसों के लिए बनाए गए ऐप्लिकेशन में, Java 8 की सुविधा वाली लाइब्रेरी शामिल करनी हैं या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_check_desugar_depsdefault: "true"-
Android बाइनरी लेवल पर, सही डिसुगरिंग की दोबारा जांच करनी है या नहीं.
--[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--experimental_one_version_enforcement=<off, warning or error>default: "OFF"-
इस विकल्प को चालू करने पर, यह लागू किया जाता है कि java_binary नियम में क्लासपाथ पर एक ही क्लास फ़ाइल का एक से ज़्यादा वर्शन नहीं हो सकता. इस नीति के उल्लंघन को लागू करने से, बिल्ड में गड़बड़ी हो सकती है या सिर्फ़ चेतावनियां मिल सकती हैं.
टैग:
loading_and_analysis --experimental_strict_java_deps=<off, warn, error, strict or default>default: "default"-
अगर यह सही है, तो यह जांच करता है कि Java टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]incompatible_disable_native_android_rulesdefault: "false"-
यह नीति चालू होने पर, Android के नेटिव नियमों का सीधे तौर पर इस्तेमाल नहीं किया जा सकेगा. कृपया https://github.com/bazelbuild/rules_android पर जाकर, Starlark Android के नियमों का इस्तेमाल करें
--[no]incompatible_disable_native_apple_binary_ruledefault: "false"-
कोई कार्रवाई नहीं. इसे पुराने सिस्टम के साथ काम करने की सुविधा के लिए यहां रखा गया है.
--[no]one_version_enforcement_on_java_testsdefault: "true"-
इसे चालू करने पर और experimental_one_version_enforcement को NONE के अलावा किसी अन्य वैल्यू पर सेट करने पर, java_test टारगेट पर एक वर्शन लागू करें. इस फ़्लैग को बंद किया जा सकता है. इससे, इंक्रीमेंटल टेस्ट की परफ़ॉर्मेंस बेहतर होगी. हालांकि, इससे एक वर्शन के संभावित उल्लंघनों का पता नहीं चल पाएगा.
टैग:
loading_and_analysis --python_native_rules_allowlist=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
--incompatible_python_disallow_native_rules को लागू करते समय इस्तेमाल करने के लिए, अनुमति वाली सूची (package_group टारगेट).
टैग:
loading_and_analysis --[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--strict_proto_deps=<off, warn, error, strict or default>डिफ़ॉल्ट: "error"-
जब तक यह विकल्प बंद नहीं होता, तब तक यह जांच करता है कि proto_library टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --strict_public_imports=<off, warn, error, strict or default>default: "off"-
अगर यह विकल्प बंद नहीं है, तो यह जांच करता है कि proto_library टारगेट, 'import public' में इस्तेमाल किए गए सभी टारगेट को एक्सपोर्ट के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --[no]strict_system_includesdefault: "false"-
अगर यह विकल्प चालू है, तो सिस्टम में शामिल किए गए पाथ (-isystem) से मिले हेडर भी घोषित किए जाने चाहिए.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- ऐसे विकल्प जो किसी बिल्ड के हस्ताक्षर करने के आउटपुट पर असर डालते हैं:
--apk_signing_method=<v1, v2, v1_v2 or v4>डिफ़ॉल्ट: "v1_v2"-
APK पर साइन करने के लिए इस्तेमाल किया जाने वाला तरीका
टैग:
action_command_lines,affects_outputs,loading_and_analysis --[no]device_debug_entitlementsdefault: "true"-
अगर यह नीति सेट है और कंपाइलेशन मोड 'opt' नहीं है, तो हस्ताक्षर करते समय, objc ऐप्लिकेशन में डीबग एनटाइटलमेंट शामिल होंगे.
टैग:
changes_inputs --ios_signing_cert_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
iOS पर हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले सर्टिफ़िकेट का नाम. इसे सेट न करने पर, प्रोविज़निंग प्रोफ़ाइल का इस्तेमाल किया जाएगा. यह सर्टिफ़िकेट की कीचेन आइडेंटिटी प्रेफ़रेंस या सर्टिफ़िकेट के कॉमन नेम का (सबस्ट्रिंग) हो सकता है. यह जानकारी, codesign के मैन पेज (SIGNING IDENTITIES) के मुताबिक है.
टैग:
action_command_lines
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_disallow_sdk_frameworks_attributesdefault: "false"-
अगर सही है, तो objc_library और objc_import में sdk_frameworks और weak_sdk_frameworks एट्रिब्यूट को अनुमति न दें.
--[no]incompatible_objc_alwayslink_by_defaultdefault: "false"-
अगर सही है, तो objc_library और objc_import में alwayslink एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू को सही पर सेट करें.
--[no]incompatible_python_disallow_native_rulesdefault: "false"-
अगर यह विकल्प सही है, तो बिल्ट-इन py_* नियमों का इस्तेमाल करने पर गड़बड़ी होती है. इसके बजाय, rule_python नियमों का इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/17773 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis --[no]break_build_on_parallel_dex2oat_failuredefault: "false"-
अगर यह विकल्प सही है, तो dex2oat की कार्रवाई पूरी न होने पर, टेस्ट रनटाइम के दौरान dex2oat को एक्ज़ीक्यूट करने के बजाय, बिल्ड टूट जाएगा.
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>कई बार इस्तेमाल किया गया हो-
टेस्ट के लिए, संसाधनों की डिफ़ॉल्ट सीमा को बदलें. सही फ़ॉर्मैट <resource>=<value> है. अगर <value> के तौर पर कोई पॉज़िटिव संख्या दी जाती है, तो यह टेस्ट के सभी साइज़ के लिए डिफ़ॉल्ट संसाधनों को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार नंबर दिए जाते हैं, तो वे छोटे, मीडियम, बड़े, और बहुत बड़े टेस्ट साइज़ के लिए, संसाधन की रकम को बदल देंगे. वैल्यू, HOST_RAM/HOST_CPU भी हो सकती हैं. इसके बाद, [-|]<float> (उदाहरण के लिए, memory=HOST_RAM.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4) भी जोड़ा जा सकता है. इस फ़्लैग से तय किए गए डिफ़ॉल्ट टेस्ट संसाधनों को, टैग में बताए गए संसाधनों से बदल दिया जाता है.
--[no]experimental_android_use_parallel_dex2oatdefault: "false"-
android_test को तेज़ करने के लिए, dex2oat का इस्तेमाल करें.
टैग:
loading_and_analysis,host_machine_resource_optimizations,experimental --[no]ios_memleaksdefault: "false"-
ios_test टारगेट में मेमोरी लीक की जांच करने की सुविधा चालू करें.
टैग:
action_command_lines --ios_simulator_device=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर में iOS ऐप्लिकेशन चलाने के दौरान, सिम्युलेट किए जाने वाले डिवाइस का नाम. उदाहरण के लिए, 'iPhone 6'. सिम्युलेटर को जिस मशीन पर चलाया जाएगा उस पर 'xcrun simctl list devicetypes' कमांड चलाकर, डिवाइसों की सूची देखी जा सकती है.
टैग:
test_runner --ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर पर चलाने या टेस्ट करने के लिए, iOS का वर्शन. अगर नियम में कोई टारगेट डिवाइस तय किया गया है, तो ios_test नियमों के लिए इसे अनदेखा कर दिया जाता है.
टैग:
test_runner --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
इससे पता चलता है कि हर टेस्ट को कितनी बार चलाना है. अगर किसी वजह से, इनमें से कोई भी कोशिश पूरी नहीं होती है, तो पूरे टेस्ट को 'टेस्ट पूरा नहीं हुआ' के तौर पर मार्क किया जाता है. आम तौर पर, बताई गई वैल्यू सिर्फ़ एक पूर्णांक होती है. उदाहरण: --runs_per_test=3 से सभी टेस्ट तीन बार चलेंगे. वैकल्पिक सिंटैक्स: regex_filter@runs_per_test. यहां runs_per_test का मतलब पूर्णांक वैल्यू से है. वहीं, regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. उदाहरण: --runs_per_test=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार चलाता है. हालांकि, foo/bar में मौजूद टेस्ट को तीन बार नहीं चलाता. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो टेस्ट सिर्फ़ एक बार चलाया जाता है.
--test_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह विकल्प, टेस्ट रनर एनवायरमेंट में इंजेक्ट किए जाने वाले अतिरिक्त एनवायरमेंट वैरिएबल के बारे में बताता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, इसकी वैल्यू Bazel क्लाइंट एनवायरमेंट से पढ़ी जाएगी. इसके अलावा, इसे <code>name=value</code> पेयर के हिसाब से भी तय किया जा सकता है. पहले से सेट किए गए वैरिएबल को <code>=name</code> के ज़रिए अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है, ताकि कई वैरिएबल तय किए जा सकें. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
टैग:
test_runner --test_timeout=<a single integer or comma-separated list of 4 integers>default: "-1"-
जांच के टाइम आउट के लिए, जांच के टाइम आउट की डिफ़ॉल्ट वैल्यू (सेकंड में) बदलें. अगर एक पॉज़िटिव पूर्णांक वैल्यू दी जाती है, तो यह सभी कैटगरी को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार पूर्णांक दिए जाते हैं, तो वे छोटे, सामान्य, लंबे, और हमेशा के लिए (इसी क्रम में) टाइम आउट को बदल देंगे. दोनों फ़ॉर्म में, -1 वैल्यू से Blaze को उस कैटगरी के लिए डिफ़ॉल्ट टाइमआउट का इस्तेमाल करने के लिए कहा जाता है.
--[no]zip_undeclared_test_outputsdefault: "false"-
सही होने पर, टेस्ट के ऐसे आउटपुट को zip फ़ाइल में संग्रहित किया जाएगा जिनके बारे में जानकारी नहीं दी गई है.
टैग:
test_runner
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--[no]experimental_filter_library_jar_with_program_jardefault: "false"-
ProGuard ProgramJar को फ़िल्टर करें, ताकि LibraryJar में मौजूद सभी क्लास हट जाएं.
--[no]experimental_inmemory_dotd_filesdefault: "true"-
अगर यह सुविधा चालू है, तो C++ .d फ़ाइलें सीधे तौर पर रिमोट बिल्ड नोड से मेमोरी में पास की जाएंगी. इन्हें डिस्क में नहीं लिखा जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_inmemory_jdeps_filesdefault: "true"-
अगर यह सुविधा चालू है, तो Java कंपाइलेशन से जनरेट हुई डिपेंडेंसी (.jdeps) फ़ाइलों को डिस्क में सेव करने के बजाय, सीधे रिमोट बिल्ड नोड से मेमोरी में पास किया जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_retain_test_configuration_across_testonlydefault: "false"-
इस विकल्प को चालू करने पर, --trim_test_configuration, testonly=1 के तौर पर मार्क किए गए नियमों के लिए टेस्ट कॉन्फ़िगरेशन को ट्रिम नहीं करेगा. इसका मकसद, कार्रवाई से जुड़ी समस्याओं को कम करना है. ऐसा तब होता है, जब टेस्ट नहीं किए गए नियम, cc_test नियमों पर निर्भर होते हैं. अगर --trim_test_configuration की वैल्यू 'गलत है' पर सेट है, तो इसका कोई असर नहीं होगा.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_unsupported_and_brittle_include_scanningdefault: "false"-
इनपुट फ़ाइलों से #include लाइनें पार्स करके, इनपुट को C/C++ कंपाइलेशन तक सीमित करना है या नहीं. इससे परफ़ॉर्मेंस और इंक्रीमेंटैलिटी को बेहतर बनाया जा सकता है. इसके लिए, कंपाइलेशन इनपुट ट्री का साइज़ कम किया जाता है. हालांकि, इससे बिल्ड भी टूट सकते हैं, क्योंकि include स्कैनर, C प्रीप्रोसेसर सिमैंटिक्स को पूरी तरह से लागू नहीं करता है. खास तौर पर, यह डाइनैमिक #include डायरेक्टिव को नहीं समझता है और प्रीप्रोसेसर की शर्त वाली लॉजिक को अनदेखा करता है. इसे अपने जोखिम पर इस्तेमाल करें. इस फ़्लैग से जुड़ी सभी समस्याएं बंद कर दी जाएंगी.
टैग:
loading_and_analysis,execution,changes_inputs,experimental --[no]incremental_dexingdefault: "true"-
यह हर जार फ़ाइल के लिए, अलग से डेक्सिंग का ज़्यादातर काम करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]objc_use_dotd_pruningdefault: "true"-
अगर इसे सेट किया जाता है, तो clang से जनरेट हुई .d फ़ाइलों का इस्तेमाल, objc कंपाइल में पास किए गए इनपुट के सेट को कम करने के लिए किया जाएगा.
--[no]process_headers_in_dependenciesdefault: "false"-
//a:a टारगेट बनाते समय, उन सभी टारगेट में हेडर प्रोसेस करें जिन पर //a:a निर्भर करता है. ऐसा तब करें, जब टूलचेन के लिए हेडर प्रोसेसिंग चालू हो.
टैग:
execution --[no]trim_test_configurationdefault: "true"-
यह सुविधा चालू करने पर, टेस्ट से जुड़े विकल्प, बिल्ड के टॉप लेवल के नीचे से हट जाएंगे. इस फ़्लैग के चालू होने पर, टेस्ट को नॉन-टेस्ट नियमों की डिपेंडेंसी के तौर पर नहीं बनाया जा सकता. हालांकि, टेस्ट से जुड़े विकल्पों में बदलाव करने से, नॉन-टेस्ट नियमों का फिर से विश्लेषण नहीं किया जाएगा.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-.*"-
टूलचेन रिज़ॉल्यूशन के दौरान डीबग की जानकारी प्रिंट करें. इस फ़्लैग में रेगुलर एक्सप्रेशन का इस्तेमाल किया जाता है. इसकी जांच टूलचेन टाइप और खास टारगेट के हिसाब से की जाती है, ताकि यह पता लगाया जा सके कि किसे डीबग करना है. एक से ज़्यादा रेगुलर एक्सप्रेशन को कॉमा लगाकर अलग किया जा सकता है. इसके बाद, हर रेगुलर एक्सप्रेशन की अलग-अलग जांच की जाती है. ध्यान दें: इस फ़्लैग का आउटपुट बहुत जटिल होता है. इसलिए, यह सिर्फ़ टूलचेन की समस्या हल करने वाले विशेषज्ञों के लिए काम का हो सकता है.
टैग:
terminal_output --[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
--[no]incompatible_default_to_explicit_init_pydefault: "false"-
इस फ़्लैग से डिफ़ॉल्ट व्यवहार बदल जाता है, ताकि Python टारगेट की रनफ़ाइल में init.py फ़ाइलें अपने-आप न बन पाएं. खास तौर पर, जब किसी py_binary या py_test टारगेट के लिए legacy_create_init को "auto" (डिफ़ॉल्ट) पर सेट किया जाता है, तो इस फ़्लैग के सेट होने पर ही इसे फ़ॉल्स के तौर पर माना जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10076 पर जाएं.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]cache_test_results[-t] default: "auto"-
'auto' पर सेट होने पर, Bazel किसी टेस्ट को सिर्फ़ तब फिर से चलाता है, जब: (1) Bazel को टेस्ट या उसकी डिपेंडेंसी में बदलावों का पता चलता है, (2) टेस्ट को बाहरी के तौर पर मार्क किया गया है, (3) --runs_per_test के साथ कई टेस्ट रन का अनुरोध किया गया था या(4) टेस्ट पहले फ़ेल हो गया था. अगर इसे 'हां' पर सेट किया जाता है, तो Bazel, बाहरी के तौर पर मार्क किए गए टेस्ट को छोड़कर, सभी टेस्ट के नतीजों को कैश मेमोरी में सेव करता है. 'नहीं' पर सेट करने पर, Bazel किसी भी टेस्ट के नतीजे को कैश मेमोरी में सेव नहीं करता है.
--[no]experimental_cancel_concurrent_testsdefault: "never"-
अगर 'on_failed' या 'on_passed' है, तो Blaze उस नतीजे के साथ पहली बार चलने वाले टेस्ट को रद्द कर देगा. यह विकल्प, सिर्फ़ --runs_per_test_detects_flakes के साथ काम करता है.
--[no]experimental_fetch_all_coverage_outputsdefault: "false"-
अगर यह विकल्प सही है, तो कवरेज रन के दौरान Bazel, हर टेस्ट के लिए कवरेज डेटा डायरेक्ट्री को फ़ेच करता है.
--[no]experimental_generate_llvm_lcovdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो Clang के लिए कवरेज, LCOV रिपोर्ट जनरेट करेगा.
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback>default: "bazel"-
यह Java कंपाइलेशन के लिए, कम किए गए क्लासपाथ को चालू करता है.
--[no]experimental_run_android_lint_on_java_rulesdefault: "false"-
java_* सोर्स की पुष्टि करनी है या नहीं.
टैग:
affects_outputs,experimental --[no]explicit_java_test_depsdefault: "false"-
java_test में JUnit या Hamcrest के लिए, TestRunner के deps से गलती से पाने के बजाय, साफ़ तौर पर डिपेंडेंसी तय करें. फ़िलहाल, यह सिर्फ़ Bazel के लिए काम करता है.
--host_java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह Java लॉन्चर है. इसका इस्तेमाल उन टूल के लिए किया जाता है जिन्हें बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है.
--host_javacopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान लागू होने वाले टूल बनाने के लिए, javac को पास किए जाने वाले अतिरिक्त विकल्प.
--host_jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान एक्ज़ीक्यूट किए जाने वाले टूल बनाते समय, Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--[no]incompatible_check_sharding_supportdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, शेयर किए गए टेस्ट को तब फ़ेल कर देगा, जब टेस्ट रनर यह नहीं बताता कि वह TEST_SHARD_STATUS_FILE में दिए गए पाथ पर फ़ाइल को ऐक्सेस करके, शेयर करने की सुविधा के साथ काम करता है. अगर यह वैल्यू गलत है, तो शार्डिंग की सुविधा के साथ काम न करने वाला टेस्ट रनर, हर शार्ड में सभी टेस्ट चलाएगा.
टैग:
incompatible_change --[no]incompatible_exclusive_test_sandboxeddefault: "true"-
अगर यह विकल्प चुना जाता है, तो एक्सक्लूसिव टेस्ट, सैंडबॉक्स की गई रणनीति के साथ चलेंगे. 'local' टैग जोड़कर, स्थानीय तौर पर सिर्फ़ एक टेस्ट रन करें
टैग:
incompatible_change --[no]incompatible_strict_action_envdefault: "false"-
अगर यह विकल्प सही है, तो Bazel ऐसे एनवायरमेंट का इस्तेमाल करता है जिसमें PATH के लिए स्टैटिक वैल्यू होती है. साथ ही, यह LD_LIBRARY_PATH को इनहेरिट नहीं करता. अगर आपको क्लाइंट से कुछ एनवायरमेंट वैरिएबल इनहेरिट करने हैं, तो --action_env=ENV_VARIABLE का इस्तेमाल करें. हालांकि, ध्यान दें कि ऐसा करने से, अलग-अलग उपयोगकर्ताओं के लिए कैश मेमोरी का इस्तेमाल नहीं किया जा सकेगा. ऐसा तब होगा, जब शेयर की गई कैश मेमोरी का इस्तेमाल किया जा रहा हो.
--j2objc_translation_flags=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
J2ObjC टूल को पास करने के लिए अन्य विकल्प.
--java_debug-
इस विकल्प का इस्तेमाल करने पर, Java टेस्ट की Java वर्चुअल मशीन, JDWP के साथ काम करने वाले डीबगर (जैसे कि jdb) से कनेक्शन मिलने का इंतज़ार करती है. इसके बाद ही, टेस्ट शुरू होता है. इसका मतलब है कि -test_output=streamed.
बढ़कर:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results --[no]java_depsdefault: "true"-
हर Java टारगेट के लिए, डिपेंडेंसी की जानकारी जनरेट करता है. फ़िलहाल, यह कंपाइल-टाइम क्लासपाथ के लिए है.
--[no]java_header_compilationdefault: "true"-
सोर्स से सीधे तौर पर ijars कंपाइल करें.
--java_language_version=<a string>default: ""-
Java भाषा का वर्शन
--java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
Java बाइनरी बनाते समय इस्तेमाल किया जाने वाला Java लॉन्चर. अगर इस फ़्लैग को खाली स्ट्रिंग पर सेट किया जाता है, तो JDK लॉन्चर का इस्तेमाल किया जाता है. "लॉन्चर" एट्रिब्यूट, इस फ़्लैग को बदल देता है.
--java_runtime_version=<a string>डिफ़ॉल्ट: "local_jdk"-
Java रनटाइम का वर्शन
--javacopt=<a string>कई बार इस्तेमाल किया गया हो-
javac को पास करने के लिए अन्य विकल्प.
--jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--legacy_main_dex_list_generator=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक बाइनरी तय करता है, जिसका इस्तेमाल उन क्लास की सूची जनरेट करने के लिए किया जाता है जिन्हें लेगसी मल्टीडेक्स को कंपाइल करते समय, मुख्य डेक्स में होना चाहिए.
--optimizing_dexer=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बिना शार्डिंग के डेक्सिंग करने के लिए, बाइनरी तय करता है.
--plugin=<a build target label>कई बार इस्तेमाल किया गया हो-
बिल्ड में इस्तेमाल किए जाने वाले प्लगिन. फ़िलहाल, यह java_plugin के साथ काम करता है.
--proguard_top=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बताता है कि Java बाइनरी बनाते समय, कोड हटाने के लिए ProGuard के किस वर्शन का इस्तेमाल करना है.
--proto_compiler=<a build target label>default: "@bazel_tools//tools/proto:protoc"-
प्रोटो-कंपाइलर का लेबल.
--[no]proto_profiledefault: "true"-
प्रोटो कंपाइलर को profile_path पास करना है या नहीं.
--proto_profile_path=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रोफ़ाइल, proto कंपाइलर को profile_path के तौर पर पास की जाती है. अगर इसे सेट नहीं किया गया है, लेकिन --proto_profile सही है (डिफ़ॉल्ट रूप से), तो --fdo_optimize से पाथ का अनुमान लगाता है.
--proto_toolchain_for_cc=<a build target label>default: "@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें C++ प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_j2objc=<a build target label>default: "@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें j2objc प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_java=<a build target label>default: "@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें Java protos को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_javalite=<a build target label>default: "@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें JavaLite protos को कंपाइल करने का तरीका बताया गया है
--protocopt=<a string>कई बार इस्तेमाल किया गया हो-
प्रोटोबफ़ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
टैग:
affects_outputs --[no]runs_per_test_detects_flakesdefault: "false"-
अगर यह विकल्प चुना जाता है, तो जिस भी शार्ड में कम से कम एक रन/कोशिश पास होती है और कम से कम एक रन/कोशिश फ़ेल होती है उसे FLAKY स्टेटस मिलता है.
--shell_executable=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Bazel के इस्तेमाल के लिए, शेल एक्ज़ीक्यूटेबल का ऐब्सलूट पाथ. अगर इसे सेट नहीं किया जाता है, लेकिन BAZEL_SH एनवायरमेंट वैरिएबल को Bazel के पहले इनवोकेशन (जो Bazel सर्वर शुरू करता है) पर सेट किया जाता है, तो Bazel इसका इस्तेमाल करता है. अगर इनमें से कोई भी सेट नहीं है, तो Bazel, ऑपरेटिंग सिस्टम के हिसाब से हार्ड-कोड किए गए डिफ़ॉल्ट पाथ का इस्तेमाल करता है. जैसे, Windows: c:/msys64/usr/bin/bash.exe, FreeBSD: /usr/local/bin/bash, और अन्य सभी: /bin/bash. ध्यान दें कि bash के साथ काम न करने वाले शेल का इस्तेमाल करने से, जनरेट की गई बाइनरी फ़ाइलों को बनाने या उन्हें चलाने में समस्याएं आ सकती हैं.
टैग:
loading_and_analysis --test_arg=<a string>कई बार इस्तेमाल किया गया हो-
इस विकल्प की मदद से, टेस्ट एक्ज़ीक्यूटेबल को पास किए जाने वाले अतिरिक्त विकल्प और आर्ग्युमेंट तय किए जाते हैं. कई आर्ग्युमेंट तय करने के लिए, इसका इस्तेमाल कई बार किया जा सकता है. अगर एक से ज़्यादा टेस्ट किए जाते हैं, तो हर टेस्ट को एक जैसे आर्ग्युमेंट मिलेंगे. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
--test_filter=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह टेस्ट फ़्रेमवर्क को फ़ॉरवर्ड किए जाने वाले फ़िल्टर के बारे में बताता है. इस कुकी का इस्तेमाल, टेस्ट को सीमित करने के लिए किया जाता है. ध्यान दें कि इससे यह तय नहीं होता कि कौनसे टारगेट बनाए जाएंगे.
--test_result_expiration=<an integer>default: "-1"-
इस विकल्प को बंद कर दिया गया है और इससे कोई असर नहीं पड़ता.
--[no]test_runner_fail_fastdefault: "false"-
यह विकल्प, टेस्ट रनर को तुरंत फ़ॉरवर्ड करता है. पहली गड़बड़ी होने पर, टेस्ट रनर को टेस्ट बंद कर देना चाहिए.
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>default: "explicit"-
टेस्ट शार्डिंग के लिए रणनीति तय करें: 'shard_count' BUILD एट्रिब्यूट मौजूद होने पर ही शार्डिंग का इस्तेमाल करने के लिए, 'explicit' का इस्तेमाल करें. 'disabled' को कभी भी टेस्ट शार्डिंग का इस्तेमाल न करने के लिए सेट करें. 'forced=k' का इस्तेमाल, 'shard_count' BUILD एट्रिब्यूट के बावजूद, टेस्टिंग के लिए 'k' शार्ड लागू करने के लिए किया जाता है.
--tool_java_language_version=<a string>default: ""-
बिल्ड के दौरान ज़रूरी टूल को चलाने के लिए इस्तेमाल किया गया Java भाषा का वर्शन
--tool_java_runtime_version=<a string>default: "remotejdk_11"-
बिल्ड के दौरान टूल को एक्ज़ीक्यूट करने के लिए इस्तेमाल किया गया Java रनटाइम वर्शन
--[no]use_ijarsdefault: "true"-
अगर यह विकल्प चालू है, तो Java कंपाइलेशन के लिए इंटरफ़ेस जार का इस्तेमाल किया जाता है. इससे इन्क्रीमेंटल कंपाइलेशन तेज़ी से होगा, लेकिन गड़बड़ी के मैसेज अलग-अलग हो सकते हैं.
बनाने के विकल्प
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
-
अगर यह विकल्प सेट किया जाता है, तो कम से कम एक कार्रवाई को चलने की अनुमति दें. भले ही, संसाधन ज़रूरत के मुताबिक न हो या उपलब्ध न हो.
टैग:
execution --[no]check_up_to_datedefault: "false"-
बिल्ड न करें. बस यह देखें कि यह अप-टू-डेट है या नहीं. अगर सभी टारगेट अप-टू-डेट हैं, तो बिल्ड पूरा हो जाता है. अगर किसी चरण को पूरा करने में कोई गड़बड़ी होती है, तो इसकी सूचना दी जाती है और बिल्ड पूरा नहीं हो पाता.
टैग:
execution --dynamic_local_execution_delay=<an integer>डिफ़ॉल्ट: "1000"-
अगर बिल्ड के दौरान रिमोट एक्ज़ीक्यूशन कम से कम एक बार तेज़ था, तो लोकल एक्ज़ीक्यूशन को कितने मिलीसेकंड तक डिले किया जाना चाहिए?
--dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment>कई बार इस्तेमाल किया गया हो-
दिए गए नेमोनिक के लिए, क्रम से स्थानीय रणनीतियां. सबसे पहले लागू होने वाली रणनीति का इस्तेमाल किया जाता है. उदाहरण के लिए,
worker,sandboxedउन कार्रवाइयों को पूरा करता है जो वर्कर की रणनीति का इस्तेमाल करके, लगातार काम करने वाले वर्कर के साथ काम करती हैं. साथ ही, अन्य सभी कार्रवाइयों को सैंडबॉक्स की रणनीति का इस्तेमाल करके पूरा करता है. अगर कोई नेमोनिक नहीं दिया गया है, तो रणनीतियों की सूची का इस्तेमाल सभी नेमोनिक के लिए फ़ॉलबैक के तौर पर किया जाता है. डिफ़ॉल्ट फ़ॉलबैक सूचीworker,sandboxedहै. अगरexperimental_local_lockfree_outputसेट है, तो यहworker,sandboxed,standaloneहै. Takes [mnemonic=]local_strategy[,local_strategy,...] --dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment>कई बार इस्तेमाल किया गया हो-
दिए गए नेमोनिक के लिए, क्रम से रिमोट रणनीतियां. सबसे पहले लागू होने वाली रणनीति का इस्तेमाल किया जाता है. अगर कोई नेमोनिक नहीं दिया गया है, तो रणनीतियों की सूची का इस्तेमाल सभी नेमोनिक के लिए फ़ॉलबैक के तौर पर किया जाता है. डिफ़ॉल्ट फ़ॉलबैक सूची
remoteहै. इसलिए, आम तौर पर इस फ़्लैग को साफ़ तौर पर सेट करने की ज़रूरत नहीं होती. Takes [mnemonic=]remote_strategy[,remote_strategy,...] --[no]experimental_async_executiondefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो Bazel को वर्चुअल थ्रेड में कार्रवाई करने की अनुमति मिलती है. फ़्लाइट में कार्रवाइयों की संख्या अब भी --jobs के साथ सीमित है.
टैग:
host_machine_resource_optimizations,execution,incompatible_change --experimental_async_execution_max_concurrent_actions=<an integer>default: "5000"-
एसिंक्रोनस तरीके से एक साथ की जा सकने वाली कार्रवाइयों की ज़्यादा से ज़्यादा संख्या. अगर वैल्यू --jobs से कम है, तो इसे --jobs पर सेट कर दिया जाता है.
--experimental_docker_image=<a string>default: ""-
डॉकटर इमेज का ऐसा नाम (जैसे, "ubuntu:latest") तय करें जिसका इस्तेमाल, सैंडबॉक्स किए गए ऐक्शन को एक्ज़ीक्यूट करने के लिए किया जाना चाहिए. ऐसा तब किया जाता है, जब docker रणनीति का इस्तेमाल किया जा रहा हो और ऐक्शन में, प्लैटफ़ॉर्म के ब्यौरे में मौजूद remote_execution_properties में पहले से कोई container-image एट्रिब्यूट न हो. इस फ़्लैग की वैल्यू को 'docker run' में पास किया जाता है. इसलिए, यह Docker के सिंटैक्स और मेकैनिज़्म के साथ काम करता है.
टैग:
execution --[no]experimental_docker_use_customized_imagesdefault: "true"-
यह विकल्प चालू होने पर, Docker इमेज का इस्तेमाल करने से पहले, मौजूदा उपयोगकर्ता के यूआईडी और जीआईडी को उसमें शामिल किया जाता है. अगर आपके बिल्ड / टेस्ट इस बात पर निर्भर करते हैं कि उपयोगकर्ता के पास कंटेनर में नाम और होम डायरेक्ट्री है, तो यह ज़रूरी है. यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है. हालांकि, अगर आपके मामले में इमेज को अपने-आप पसंद के मुताबिक बनाने की सुविधा काम नहीं करती है या आपको पता है कि आपको इसकी ज़रूरत नहीं है, तो इसे बंद किया जा सकता है.
टैग:
execution --[no]experimental_dynamic_exclude_toolsdefault: "true"-
इस विकल्प को सेट करने पर, "टूल के लिए" बनाए गए टारगेट, डाइनैमिक तरीके से लागू नहीं होते. ऐसे टारगेट को धीरे-धीरे नहीं बनाया जा सकता. इसलिए, इन पर लोकल साइकल खर्च करना फ़ायदेमंद नहीं है.
--experimental_dynamic_local_load_factor=<a double>default: "0"-
इससे यह कंट्रोल किया जाता है कि डाइनैमिक एक्ज़ीक्यूशन से लोकल मशीन पर कितना लोड डाला जाए. यह फ़्लैग, डाइनैमिक एक्ज़ीक्यूशन में एक साथ शेड्यूल की जाने वाली कार्रवाइयों की संख्या को अडजस्ट करता है. यह इस बात पर निर्भर करता है कि Blaze के हिसाब से कितने सीपीयू उपलब्ध हैं. इसे --local_resources=cpu= फ़्लैग से कंट्रोल किया जा सकता है. अगर इस फ़्लैग की वैल्यू 0 है, तो सभी कार्रवाइयों को तुरंत स्थानीय तौर पर शेड्यूल किया जाता है. अगर वैल्यू > 0 है, तो स्थानीय तौर पर शेड्यूल की गई कार्रवाइयों की संख्या, उपलब्ध सीपीयू की संख्या के हिसाब से तय होती है. अगर इसकी वैल्यू < 1 है, तो लोड फ़ैक्टर का इस्तेमाल, स्थानीय तौर पर शेड्यूल की गई कार्रवाइयों की संख्या को कम करने के लिए किया जाता है. ऐसा तब किया जाता है, जब शेड्यूल की जाने वाली कार्रवाइयों की संख्या ज़्यादा हो. इससे क्लीन बिल्ड के मामले में, लोकल मशीन पर लोड कम हो जाता है. इसमें लोकल मशीन का ज़्यादा योगदान नहीं होता.
--experimental_dynamic_slow_remote_time=<An immutable length of time.>default: "0"-
अगर वैल्यू >0 है, तो इसका मतलब है कि डाइनैमिक तरीके से चलने वाली कार्रवाई को सिर्फ़ रिमोट तरीके से तब तक चलना चाहिए, जब तक हम उसे स्थानीय तौर पर चलाने को प्राथमिकता नहीं देते. इससे रिमोट टाइमआउट से बचा जा सकता है. इससे रिमोट एक्ज़ीक्यूशन सिस्टम में कुछ समस्याएं छिप सकती हैं. रिमोट एक्ज़ीक्यूशन से जुड़ी समस्याओं की निगरानी किए बिना, इसे चालू न करें.
--[no]experimental_enable_docker_sandboxdefault: "false"-
Docker पर आधारित सैंडबॉक्सिंग की सुविधा चालू करें. अगर Docker इंस्टॉल नहीं है, तो इस विकल्प का कोई असर नहीं पड़ता.
टैग:
execution --[no]experimental_inmemory_sandbox_stashesdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो reuse_sandbox_directories के लिए स्टैश किए गए सैंडबॉक्स के कॉन्टेंट को मेमोरी में ट्रैक किया जाएगा. इससे, दोबारा इस्तेमाल के दौरान ज़रूरी I/O की मात्रा कम हो जाती है. बिल्ड के हिसाब से, यह फ़्लैग वॉल टाइम को बेहतर बना सकता है. बिल्ड के आधार पर, यह फ़्लैग काफ़ी ज़्यादा मेमोरी इस्तेमाल कर सकता है.
--experimental_sandbox_async_tree_delete_idle_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "4"-
अगर इसकी वैल्यू 0 है, तो कार्रवाइयां पूरी होते ही सैंडबॉक्स मिटा दिए जाते हैं. इससे कार्रवाइयों को पूरा होने से रोका जाता है. अगर इसकी वैल्यू 0 से ज़्यादा है, तो सैंडबॉक्स को बैकग्राउंड में एसिंक्रोनस तरीके से मिटाया जाता है. इससे कार्रवाई पूरी होने में कोई रुकावट नहीं आती. एसिंक्रोनस मिटाने की प्रोसेस में, कमांड के चालू होने पर एक थ्रेड का इस्तेमाल किया जाता है. हालांकि, सर्वर के निष्क्रिय होने के बाद, यह फ़्लैग की वैल्यू के बराबर थ्रेड का इस्तेमाल करता है. सीपीयू की संख्या के बराबर थ्रेड इस्तेमाल करने के लिए, इसे
autoपर सेट करें. सर्वर बंद होने पर, एसिंक्रोनस तरीके से मिटाए जाने वाले सभी आइटम ब्लॉक हो जाते हैं. --experimental_sandbox_enforce_resources_regexp=<a valid Java regular expression>default: ""-
अगर यह वैल्यू true पर सेट है, तो जिन कार्रवाइयों के नेमोनिक, इनपुट किए गए रेगुलर एक्सप्रेशन से मेल खाते हैं उनके संसाधन अनुरोधों पर सीमाएं लागू की जाएंगी. अगर संसाधन का टाइप इसकी अनुमति देता है, तो --experimental_sandbox_limits की वैल्यू को बदल दिया जाएगा. उदाहरण के लिए, अगर किसी टेस्ट में cpu:3 और resources:memory:10 तय किया गया है, तो वह ज़्यादा से ज़्यादा तीन सीपीयू और 10 मेगाबाइट मेमोरी के साथ चलेगा.
टैग:
execution --experimental_sandbox_limits=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">कई बार इस्तेमाल किया गया हो-
अगर वैल्यू > 0 है, तो हर Linux सैंडबॉक्स को तय किए गए संसाधन के लिए, दी गई सीमा तक ही इस्तेमाल किया जा सकेगा. इसके लिए, --incompatible_use_new_cgroup_implementation का इस्तेमाल करना ज़रूरी है. साथ ही, यह --experimental_sandbox_memory_limit_mb को बदल देता है. इसके लिए, cgroups v1 या v2 और उपयोगकर्ताओं को cgroups डायरेक्ट्री का ऐक्सेस देने की अनुमतियां ज़रूरी हैं.
टैग:
execution --experimental_sandbox_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>default: "0"-
अगर इसकी वैल्यू > 0 है, तो हर Linux सैंडबॉक्स के लिए मेमोरी की सीमा तय की जाएगी. यह सीमा, एमबी में दी गई वैल्यू के बराबर होगी. इसके लिए, cgroups v1 या v2 और उपयोगकर्ताओं को cgroups डायरेक्ट्री का ऐक्सेस देने की अनुमतियां ज़रूरी हैं.
टैग:
execution --[no]experimental_shrink_worker_pooldefault: "false"-
अगर यह सुविधा चालू है, तो वर्कर पूल छोटा हो सकता है. ऐसा तब होता है, जब वर्कर की मेमोरी पर ज़्यादा दबाव पड़ता है. यह फ़्लैग सिर्फ़ तब काम करता है, जब experimental_total_worker_memory_limit_mb फ़्लैग चालू हो.
--experimental_total_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>default: "0"-
अगर यह सीमा शून्य से ज़्यादा है, तो सभी वर्कर के कुल मेमोरी इस्तेमाल की सीमा से ज़्यादा होने पर, कुछ वर्कर बंद किए जा सकते हैं.
--[no]experimental_use_hermetic_linux_sandboxdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो रूट को माउंट न करें. सिर्फ़ sandbox_add_mount_pair के साथ दिए गए आइटम को माउंट करें. इनपुट फ़ाइलों को सैंडबॉक्स से सिंक करने के बजाय, सैंडबॉक्स से हार्डलिंक किया जाएगा. अगर ऐक्शन इनपुट फ़ाइलें, सैंडबॉक्स से अलग फ़ाइल सिस्टम पर मौजूद हैं, तो इनपुट फ़ाइलों को कॉपी किया जाएगा.
टैग:
execution --[no]experimental_use_windows_sandboxdefault: "false"-
कार्रवाइयां करने के लिए, Windows सैंडबॉक्स का इस्तेमाल करें. अगर "हां" है, तो --experimental_windows_sandbox_path से दिया गया बाइनरी मान्य होना चाहिए. साथ ही, यह sandboxfs के साथ काम करने वाले वर्शन से मेल खाना चाहिए. अगर "auto" है, तो हो सकता है कि बाइनरी मौजूद न हो या काम न करे.
टैग:
execution --experimental_windows_sandbox_path=<a string>default: "BazelSandbox.exe"-
Windows सैंडबॉक्स बाइनरी का पाथ. इसका इस्तेमाल तब किया जाता है, जब --experimental_use_windows_sandbox की वैल्यू 'सही' होती है. अगर कोई बेयर नेम है, तो PATH में मिले उस नाम के पहले बाइनरी का इस्तेमाल करें.
टैग:
execution --experimental_worker_allowlist=<comma-separated set of options>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह फ़ील्ड खाली नहीं है, तो सिर्फ़ दिए गए वर्कर की-निमोनिक के साथ परसिस्टेंट वर्कर का इस्तेमाल करने की अनुमति दें.
--[no]experimental_worker_cancellationdefault: "false"-
अगर यह सुविधा चालू है, तो Bazel उन वर्कर को रद्द करने के अनुरोध भेज सकता है जो इस सुविधा के साथ काम करते हैं.
टैग:
execution --experimental_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>default: "0"-
अगर यह सीमा शून्य से ज़्यादा है, तो वर्कर की मेमोरी का इस्तेमाल सीमा से ज़्यादा होने पर, वर्कर बंद किए जा सकते हैं. अगर इसका इस्तेमाल डाइनैमिक एक्ज़ीक्यूशन और
--experimental_dynamic_ignore_local_signals=9के साथ नहीं किया जाता है, तो हो सकता है कि आपका बिल्ड क्रैश हो जाए. --experimental_worker_metrics_poll_interval=<An immutable length of time.>default: "5s"-
वर्कर मेट्रिक इकट्ठा करने और वर्कर को हटाने की कोशिश करने के बीच का अंतराल. परफ़ॉर्मेंस की वजह से, इसे एक सेकंड से कम नहीं किया जा सकता.
--[no]experimental_worker_multiplex_sandboxingdefault: "false"-
अगर यह सुविधा चालू है, तो 'supports-multiplex-sandboxing' की ज़रूरी शर्त पूरी करने वाले मल्टीप्लेक्स वर्कर, सैंडबॉक्स किए गए एनवायरमेंट में काम करेंगे. इसके लिए, हर काम के अनुरोध के हिसाब से अलग सैंडबॉक्स डायरेक्ट्री का इस्तेमाल किया जाएगा. जिन मल्टीप्लेक्स वर्कर को एक्ज़ीक्यूशन की ज़रूरत होती है उन्हें डाइनैमिक एक्ज़ीक्यूशन की रणनीति के तहत हमेशा सैंडबॉक्स किया जाता है. भले ही, यह फ़्लैग सेट किया गया हो या नहीं.
टैग:
execution --[no]experimental_worker_sandbox_hardeningdefault: "false"-
अगर यह सेटिंग चालू है, तो वर्कर को एक सुरक्षित सैंडबॉक्स में चलाया जाता है. हालांकि, ऐसा सिर्फ़ तब किया जाता है, जब लागू करने की प्रोसेस इसकी अनुमति देती हो. अगर हार्डनिंग की सुविधा चालू है, तो अलग-अलग वर्कर के लिए tmp डायरेक्ट्री अलग-अलग होती हैं.
टैग:
execution --experimental_worker_sandbox_inmemory_tracking=<a string>कई बार इस्तेमाल किया गया हो-
वर्कर की कुंजी का नेमोनिक, जिसके लिए सैंडबॉक्स डायरेक्ट्री के कॉन्टेंट को मेमोरी में ट्रैक किया जाता है. इससे, मेमोरी के ज़्यादा इस्तेमाल की वजह से, बिल्ड की परफ़ॉर्मेंस बेहतर हो सकती है. इसका असर सिर्फ़ सैंडबॉक्स किए गए वर्कर पर पड़ता है. अलग-अलग नेमोनिक के लिए, इसे एक से ज़्यादा बार तय किया जा सकता है.
टैग:
execution --[no]experimental_worker_strict_flagfilesdefault: "false"-
अगर यह सुविधा चालू है, तो वर्कर के लिए कार्रवाइयों के ऐसे आर्ग्युमेंट से गड़बड़ी होगी जो वर्कर के स्पेसिफ़िकेशन के मुताबिक नहीं हैं. वर्कर आर्ग्युमेंट में, आर्ग्युमेंट की सूची के आखिर में सिर्फ़ एक @flagfile आर्ग्युमेंट होना चाहिए.
टैग:
execution --genrule_strategy=<comma-separated list of options>default: ""-
genrules को लागू करने का तरीका बताएं. इस फ़्लैग को धीरे-धीरे हटाया जाएगा. इसके बजाय, सभी कार्रवाइयों को कंट्रोल करने के लिए --spawn_strategy=<value> या सिर्फ़ जनरूल को कंट्रोल करने के लिए --strategy=Genrule=<value> का इस्तेमाल करें.
टैग:
execution --[no]incompatible_use_new_cgroup_implementationdefault: "true"-
अगर यह सही है, तो cgroup के लिए नए तरीके का इस्तेमाल करें. पुराना वर्शन सिर्फ़ मेमोरी कंट्रोलर के साथ काम करता है और --experimental_sandbox_limits की वैल्यू को अनदेखा करता है.
टैग:
execution --[no]internal_spawn_schedulerdefault: "true"-
यह एक प्लेसहोल्डर विकल्प है, ताकि हम Blaze में यह बता सकें कि स्पॉन शेड्यूलर चालू था या नहीं.
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">[-j] default: "auto"-
एक साथ चलाए जाने वाले जॉब की संख्या. यह पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") लेता है. इसके बाद, विकल्प के तौर पर कोई कार्रवाई ([-|]<float>) की जा सकती है. उदाहरण के लिए, "auto", "HOST_CPUS.5". वैल्यू, 1 से 5,000 के बीच होनी चाहिए. 2500 से ज़्यादा वैल्यू होने पर, मेमोरी से जुड़ी समस्याएं हो सकती हैं. "auto" विकल्प, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट वैल्यू का हिसाब लगाता है.
--[no]keep_going[-k] डिफ़ॉल्ट: "false"-
गड़बड़ी होने के बाद भी ज़्यादा से ज़्यादा काम जारी रखें. हालांकि, फ़ेल हुए टारगेट और उस पर निर्भर टारगेट का विश्लेषण नहीं किया जा सकता. हालांकि, इन टारगेट की अन्य ज़रूरी शर्तों का विश्लेषण किया जा सकता है.
टैग:
eagerness_to_exit --loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
डेटा लोड करने/विश्लेषण करने के लिए, एक साथ इस्तेमाल की जाने वाली थ्रेड की संख्या. इसमें पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") का इस्तेमाल किया जाता है. इसके बाद, ऑपरेशन ([-|]<float>) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, "auto", "HOST_CPUS.5". "auto" वैल्यू, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू सेट करती है. कम से कम 1 होना चाहिए
--[no]reuse_sandbox_directoriesdefault: "true"-
अगर इसे 'सही है' पर सेट किया जाता है, तो सैंडबॉक्स किए गए नॉन-वर्कर एक्ज़ीक्यूशन के लिए इस्तेमाल की गई डायरेक्ट्री को फिर से इस्तेमाल किया जा सकता है, ताकि सेटअप पर लगने वाले गैर-ज़रूरी शुल्क से बचा जा सके.
--sandbox_base=<a string>default: ""-
इस पाथ के नीचे सैंडबॉक्स को अपनी सैंडबॉक्स डायरेक्ट्री बनाने की अनुमति देता है. अगर आपके बिल्ड /टेस्ट में कई इनपुट फ़ाइलें हैं, तो परफ़ॉर्मेंस को बेहतर बनाने के लिए, tmpfs पर कोई पाथ (जैसे कि/run / shm) तय करें. ध्यान दें: कार्रवाइयां चलाने से जनरेट होने वाली आउटपुट और इंटरमीडिएट फ़ाइलों को सेव करने के लिए, आपके पास tmpfs पर ज़रूरत के मुताबिक रैम और खाली जगह होनी चाहिए.
--[no]sandbox_enable_loopback_devicedefault: "true"-
अगर यह विकल्प 'सही है' पर सेट है, तो स्थानीय कार्रवाइयों के लिए, linux-sandbox नेटवर्क नेमस्पेस में एक लूपबैक डिवाइस सेट अप किया जाएगा.
टैग:
execution --[no]sandbox_explicit_pseudoterminaldefault: "false"-
सैंडबॉक्स की गई कार्रवाइयों के लिए, स्यूडो टर्मिनल बनाने की सुविधा को साफ़ तौर पर चालू करें. कुछ Linux डिस्ट्रिब्यूशन में, सैंडबॉक्स के अंदर प्रोसेस के ग्रुप आईडी को 'tty' पर सेट करना ज़रूरी होता है, ताकि स्यूडोटर्मिनल काम कर सकें. अगर इसकी वजह से समस्याएं आ रही हैं, तो इस फ़्लैग को बंद किया जा सकता है, ताकि अन्य ग्रुप का इस्तेमाल किया जा सके.
टैग:
execution --sandbox_tmpfs_path=<an absolute path>कई बार इस्तेमाल किया गया हो-
सैंडबॉक्स की गई कार्रवाइयों के लिए, इस पूरे पाथ पर एक खाली डायरेक्ट्री माउंट करें, जिसमें लिखा जा सकता हो. अगर सैंडबॉक्सिंग लागू करने की सुविधा इसे सपोर्ट करती है, तो इसे अनदेखा कर दिया जाता है.
--[no]skip_incompatible_explicit_targetsdefault: "false"-
कमांड लाइन पर साफ़ तौर पर दिए गए, काम न करने वाले टारगेट को छोड़ें. डिफ़ॉल्ट रूप से, ऐसे टारगेट बनाने पर गड़बड़ी होती है. हालांकि, इस विकल्प के चालू होने पर, इन्हें चुपचाप तरीके से छोड़ दिया जाता है. इस लिंक पर जाएं: https://bazel.build/extending/platforms#skipping-incompatible-targets
टैग:
loading_and_analysis --spawn_strategy=<comma-separated list of options>default: ""-
यह तय करें कि स्पॉन ऐक्शन डिफ़ॉल्ट रूप से कैसे लागू किए जाते हैं. यह सबसे ज़्यादा से लेकर सबसे कम प्राथमिकता वाली रणनीतियों की कॉमा-सेपरेटेड लिस्ट स्वीकार करता है. हर कार्रवाई के लिए, Bazel सबसे ज़्यादा प्राथमिकता वाली ऐसी रणनीति चुनता है जो कार्रवाई को पूरा कर सकती है. डिफ़ॉल्ट वैल्यू "remote,worker,sandboxed,local" होती है. ज़्यादा जानकारी के लिए, https://blog.bazel.build/2019/06/19/list-strategy.html पर जाएं.
टैग:
execution --strategy=<a '[name=]value1[,..,valueN]' assignment>कई बार इस्तेमाल किया गया हो-
बताएं कि अन्य स्पॉन ऐक्शन के कंपाइलेशन को कैसे डिस्ट्रिब्यूट करना है. यह सबसे ज़्यादा से लेकर सबसे कम प्राथमिकता वाली रणनीतियों की कॉमा-सेपरेटेड लिस्ट स्वीकार करता है. हर कार्रवाई के लिए, Bazel सबसे ज़्यादा प्राथमिकता वाली ऐसी रणनीति चुनता है जो कार्रवाई को पूरा कर सकती है. डिफ़ॉल्ट वैल्यू "remote,worker,sandboxed,local" होती है. यह फ़्लैग, --spawn_strategy से सेट की गई वैल्यू को बदल देता है. साथ ही, अगर इसे नेमोनिक Genrule के साथ इस्तेमाल किया जाता है, तो --genrule_strategy से सेट की गई वैल्यू को भी बदल देता है. ज़्यादा जानकारी के लिए, https://blog.bazel.build/2019/06/19/list-strategy.html पर जाएं.
टैग:
execution --strategy_regexp=<a '<RegexFilter>=value[,value]' assignment>कई बार इस्तेमाल किया गया हो-
यह तय करें कि regex_filter से मेल खाने वाले ब्यौरे वाले स्पॉन ऐक्शन को लागू करने के लिए, किस स्पॉन रणनीति का इस्तेमाल किया जाना चाहिए. regex_filter मैचिंग के बारे में ज़्यादा जानने के लिए, --per_file_copt देखें. ब्यौरे से मेल खाने वाले आखिरी regex_filter का इस्तेमाल किया जाता है. यह विकल्प, रणनीति तय करने के लिए अन्य फ़्लैग को बदल देता है. उदाहरण: --strategy_regexp=//foo..cc,-//foo/bar=local का मतलब है कि अगर कार्रवाइयों के ब्यौरे, //foo..cc से मेल खाते हैं, लेकिन //foo/bar से नहीं, तो लोकल रणनीति का इस्तेमाल करके कार्रवाइयां करें. उदाहरण: --strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed, 'Compiling //foo/bar/baz' को 'local' रणनीति के साथ चलाएगा. हालांकि, क्रम बदलने पर इसे 'sandboxed' रणनीति के साथ चलाया जाएगा.
टैग:
execution --worker_extra_flag=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
--persistent_worker के अलावा, वर्कर प्रोसेस को पास किए जाने वाले अतिरिक्त कमांड-फ़्लैग.ये नेमोनिक के हिसाब से तय किए जाते हैं. उदाहरण के लिए, --worker_extra_flag=Javac=--debug.
--worker_max_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">कई बार इस्तेमाल किया गया हो-
'worker' रणनीति का इस्तेमाल करने पर, हर तरह के परसिस्टेंट वर्कर के कितने इंस्टेंस लॉन्च किए जा सकते हैं. इसे [name=value] के तौर पर तय किया जा सकता है, ताकि हर निमोनिक के लिए अलग वैल्यू दी जा सके. यह सीमा वर्कर कुंजियों पर आधारित होती है. इन्हें नेमोनिक के आधार पर अलग-अलग किया जाता है. हालांकि, इन्हें स्टार्टअप फ़्लैग और एनवायरमेंट के आधार पर भी अलग-अलग किया जाता है. इसलिए, कुछ मामलों में हर नेमोनिक के लिए, इस फ़्लैग में बताई गई संख्या से ज़्यादा वर्कर हो सकते हैं. यह पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") लेता है. इसके बाद, विकल्प के तौर पर कोई कार्रवाई ([-|]<float>) की जा सकती है. उदाहरण के लिए, "auto", "HOST_CPUS.5". 'auto' विकल्प, मशीन की क्षमता के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू का हिसाब लगाता है. "=value" से, बिना बताए गए निमोनिक के लिए डिफ़ॉल्ट वैल्यू सेट की जाती है.
--worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">कई बार इस्तेमाल किया गया हो-
अगर आपने --worker_multiplex के साथ 'worker' रणनीति का इस्तेमाल किया है, तो मल्टीप्लेक्स वर्कर प्रोसेस को एक साथ कितनी WorkRequests मिल सकती हैं. इसे [name=value] के तौर पर तय किया जा सकता है, ताकि हर निमोनिक के लिए अलग वैल्यू दी जा सके. यह सीमा वर्कर कुंजियों पर आधारित होती है. इन्हें नेमोनिक के आधार पर अलग-अलग किया जाता है. हालांकि, इन्हें स्टार्टअप फ़्लैग और एनवायरमेंट के आधार पर भी अलग-अलग किया जाता है. इसलिए, कुछ मामलों में हर नेमोनिक के लिए, इस फ़्लैग में बताई गई संख्या से ज़्यादा वर्कर हो सकते हैं. यह पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") लेता है. इसके बाद, विकल्प के तौर पर कोई कार्रवाई ([-|]<float>) की जा सकती है. उदाहरण के लिए, "auto", "HOST_CPUS.5". 'auto' विकल्प, मशीन की क्षमता के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू का हिसाब लगाता है. "=value" से, बिना बताए गए निमोनिक के लिए डिफ़ॉल्ट वैल्यू सेट की जाती है.
--[no]worker_multiplexdefault: "true"-
यह सुविधा चालू होने पर, अगर वर्कर्स मल्टीप्लेक्सिंग की सुविधा के साथ काम करते हैं, तो वे इसका इस्तेमाल करेंगे.
--[no]worker_quit_after_builddefault: "false"-
इस सुविधा के चालू होने पर, बिल्ड पूरा होने के बाद सभी वर्कर बंद हो जाते हैं.
--[no]worker_sandboxingdefault: "false"-
अगर यह सुविधा चालू है, तो सिंगलप्लेक्स वर्कर, सैंडबॉक्स वाले एनवायरमेंट में चलेंगे. डाइनैमिक एक्ज़ीक्यूशन की रणनीति के तहत काम करने वाले सिंगलप्लेक्स वर्कर को हमेशा सैंडबॉक्स किया जाता है. भले ही, यह फ़्लैग सेट किया गया हो या नहीं.
टैग:
execution --[no]worker_verbosedefault: "false"-
यह विकल्प चालू होने पर, वर्कर के शुरू होने, बंद होने वगैरह के दौरान ज़्यादा जानकारी वाले मैसेज प्रिंट करता है...
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]builddefault: "true"-
बिल्ड को एक्ज़ीक्यूट करें. ऐसा आम तौर पर होता है. --nobuild विकल्प का इस्तेमाल करने पर, बिल्ड की प्रोसेस पूरी होने से पहले ही रुक जाती है. अगर पैकेज लोड करने और विश्लेषण करने की प्रोसेस पूरी हो जाती है, तो यह विकल्प शून्य दिखाता है. यह मोड, इन प्रोसेस की जांच करने के लिए काम आता है.
टैग:
execution,affects_outputs --[no]experimental_use_validation_aspectdefault: "false"-
क्या पहलू का इस्तेमाल करके पुष्टि करने वाली कार्रवाइयां करनी हैं (टेस्ट के साथ समानता के लिए).
टैग:
execution,affects_outputs --output_groups=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आउटपुट ग्रुप के नामों की सूची. इनमें से हर नाम के पहले, + या - का इस्तेमाल किया जा सकता है. + से पहले वाला ग्रुप, आउटपुट ग्रुप के डिफ़ॉल्ट सेट में जोड़ा जाता है. वहीं, - से पहले वाला ग्रुप, डिफ़ॉल्ट सेट से हटा दिया जाता है. अगर कम से कम एक ग्रुप में प्रीफ़िक्स नहीं लगाया गया है, तो आउटपुट ग्रुप का डिफ़ॉल्ट सेट नहीं दिखाया जाएगा. उदाहरण के लिए, --output_groups=+foo,+bar से डिफ़ॉल्ट सेट, foo, और bar का यूनियन बनता है. वहीं, --output_groups=foo,bar से डिफ़ॉल्ट सेट ओवरराइड हो जाता है, ताकि सिर्फ़ foo और bar बन सकें.
टैग:
execution,affects_outputs --[no]run_validationsdefault: "true"-
बिल्ड के दौरान पुष्टि करने वाली कार्रवाइयां करनी हैं या नहीं. https://bazel.build/extending/rules#validation_actions पर जाएं
टैग:
execution,affects_outputs --serialized_frontier_profile=<a string>default: ""-
सीरियल किए गए फ़्रंटियर बाइट की प्रोफ़ाइल डंप करें. इससे आउटपुट पाथ के बारे में पता चलता है.
टैग:
bazel_monitoring
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
सबसे ऊपर के लेवल के टारगेट पर लागू किए जाने वाले पहलुओं की सूची, जिसमें कॉमा लगाकर पहलुओं को अलग-अलग किया गया है. अगर सूची में, कुछ_आसपेक्ट, ज़रूरी_आसपेक्ट_प्रोवाइडर के ज़रिए ज़रूरी आसपेक्ट प्रोवाइडर तय करता है, तो कुछ_आसपेक्ट, आसपेक्ट की सूची में उससे पहले बताए गए हर उस आसपेक्ट के बाद चलेगा जिसके विज्ञापित प्रोवाइडर, कुछ_आसपेक्ट के ज़रूरी आसपेक्ट प्रोवाइडर की ज़रूरी शर्तों को पूरा करते हैं. इसके अलावा, requires एट्रिब्यूट के ज़रिए तय किए गए सभी ज़रूरी पहलुओं के बाद, some_aspect चलेगा. इसके बाद, some_aspect के पास उन पहलुओं के प्रोवाइडर की वैल्यू का ऐक्सेस होगा. <bzl-file-label>%<aspect_name>, उदाहरण के लिए '//tools:my_def.bzl%my_aspect', जहां 'my_aspect' फ़ाइल tools/my_def.bzl की टॉप-लेवल वैल्यू है
--bep_maximum_open_remote_upload_files=<an integer>default: "-1"-
बीईपी आर्टफ़ैक्ट अपलोड करते समय, ज़्यादा से ज़्यादा कितनी फ़ाइलें खुली रखी जा सकती हैं.
टैग:
affects_outputs --[no]experimental_convenience_symlinksdefault: "normal"-
इस फ़्लैग से यह कंट्रोल किया जाता है कि सुविधा के लिए उपलब्ध सिमलंक (ऐसे सिमलंक जो बिल्ड के बाद वर्कस्पेस में दिखते हैं) को कैसे मैनेज किया जाएगा. संभावित वैल्यू: normal (डिफ़ॉल्ट): बिल्ड के हिसाब से, हर तरह का सुविधा वाला सिंबल लिंक बनाया या मिटाया जाएगा. clean: सभी सिंबल लिंक बिना किसी शर्त के मिटा दिए जाएंगे. ignore: सिंबल लिंक न तो बनाए जाएंगे और न ही मिटाए जाएंगे. log_only: ऐसे लॉग मैसेज जनरेट करें जैसे 'normal' पास किया गया हो. हालांकि, फ़ाइल सिस्टम से जुड़ी कोई भी कार्रवाई न करें. यह टूल के लिए फ़ायदेमंद है. ध्यान दें कि सिर्फ़ उन सिंबल लिंक पर असर पड़ सकता है जिनके नाम, --symlink_prefix की मौजूदा वैल्यू से जनरेट किए गए हैं. अगर प्रीफ़िक्स बदलता है, तो पहले से मौजूद किसी भी सिंबल लिंक पर कोई असर नहीं पड़ेगा.
टैग:
affects_outputs --[no]experimental_convenience_symlinks_bep_eventdefault: "true"-
इस फ़्लैग से यह कंट्रोल किया जाता है कि हम BuildEventProtocol में build eventConvenienceSymlinksIdentified पोस्ट करेंगे या नहीं. अगर वैल्यू सही है, तो BuildEventProtocol में convenienceSymlinksIdentified के लिए एक एंट्री होगी. इसमें आपके वर्कस्पेस में बनाए गए सभी सुविधा वाले सिंबल लिंक की सूची होगी. अगर यह वैल्यू 'गलत है', तो BuildEventProtocol में convenienceSymlinksIdentified एंट्री खाली होगी.
टैग:
affects_outputs --remote_download_all-
इस विकल्प से, सभी रिमोट आउटपुट को लोकल मशीन पर डाउनलोड किया जाता है. यह फ़्लैग, --remote_download_outputs=all के लिए एलियास है.
बढ़कर:
--remote_download_outputs=allटैग:
affects_outputs --remote_download_minimal-
यह रिमोट बिल्ड के किसी भी आउटपुट को लोकल मशीन पर डाउनलोड नहीं करता है. यह फ़्लैग, --remote_download_outputs=minimal का अन्य नाम है.
बढ़कर:
--remote_download_outputs=minimalटैग:
affects_outputs --remote_download_outputs=<all, minimal or toplevel>default: "toplevel"-
'कम से कम' पर सेट होने पर, रिमोट बिल्ड के किसी भी आउटपुट को लोकल मशीन पर डाउनलोड नहीं करता है. हालांकि, स्थानीय कार्रवाइयों के लिए ज़रूरी आउटपुट डाउनलोड किए जाते हैं. 'toplevel' पर सेट करने पर, यह 'minimal' की तरह काम करता है. हालांकि, यह टॉप लेवल के टारगेट के आउटपुट को भी लोकल मशीन पर डाउनलोड करता है. अगर नेटवर्क बैंडविड्थ की वजह से बिल्ड करने में ज़्यादा समय लगता है, तो इन दोनों विकल्पों से बिल्ड करने में लगने वाला समय काफ़ी कम हो सकता है.
टैग:
affects_outputs --remote_download_symlink_template=<a string>default: ""-
रिमोट बिल्ड के आउटपुट को लोकल मशीन पर डाउनलोड करने के बजाय, सिंबॉलिक लिंक बनाएं. सिंबॉलिक लिंक के टारगेट को टेंप्लेट स्ट्रिंग के तौर पर तय किया जा सकता है. इस टेंप्लेट स्ट्रिंग में {hash} और {size_bytes} शामिल हो सकते हैं. ये ऑब्जेक्ट के हैश और साइज़ को बाइट में दिखाते हैं. उदाहरण के लिए, ये सिंबॉलिक लिंक, FUSE फ़ाइल सिस्टम की ओर ले जा सकते हैं. यह सिस्टम, ज़रूरत के हिसाब से CAS से ऑब्जेक्ट लोड करता है.
टैग:
affects_outputs --remote_download_toplevel-
यह सिर्फ़ टॉप लेवल के टारगेट के रिमोट आउटपुट को स्थानीय मशीन पर डाउनलोड करता है. यह फ़्लैग, --remote_download_outputs=toplevel के लिए उपनाम है.
बढ़कर:
--remote_download_outputs=toplevelटैग:
affects_outputs --symlink_prefix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रीफ़िक्स, बिल्ड के बाद बनाए गए किसी भी सुविधा वाले सिमलंक से पहले जोड़ा जाता है. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट वैल्यू, बिल्ड टूल का नाम और उसके बाद हाइफ़न होती है. अगर '/' पास किया जाता है, तो कोई सिमलंक नहीं बनाया जाता है और कोई चेतावनी नहीं दी जाती है. चेतावनी: '/' के लिए खास सुविधा जल्द ही बंद हो जाएगी; इसके बजाय --experimental_convenience_symlinks=ignore का इस्तेमाल करें.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]experimental_docker_privilegeddefault: "false"-
इस विकल्प के चालू होने पर, Bazel, कार्रवाइयां करते समय 'docker run' को --privileged फ़्लैग पास करेगा. यह आपके बिल्ड के लिए ज़रूरी हो सकता है. हालांकि, इससे हर्मेटिकनेस कम हो सकता है.
टैग:
execution --[no]experimental_sandboxfs_map_symlink_targetsdefault: "false"-
कोई कार्रवाई नहीं
--sandbox_add_mount_pair=<a single path or a 'source:target' pair>कई बार इस्तेमाल किया गया हो-
सैंडबॉक्स में माउंट करने के लिए, एक और पाथ पेयर जोड़ें.
टैग:
execution --sandbox_block_path=<a string>कई बार इस्तेमाल किया गया हो-
सैंडबॉक्स की गई कार्रवाइयों के लिए, इस पाथ का ऐक्सेस न दें.
टैग:
execution --[no]sandbox_default_allow_networkdefault: "true"-
कार्रवाइयों के लिए, डिफ़ॉल्ट रूप से नेटवर्क ऐक्सेस की अनुमति दें. ऐसा हो सकता है कि यह सुविधा, सैंडबॉक्सिंग की सभी सुविधाओं के साथ काम न करे.
टैग:
execution --[no]sandbox_fake_hostnamedefault: "false"-
सैंडबॉक्स की गई कार्रवाइयों के लिए, मौजूदा होस्टनेम को 'localhost' में बदलें.
टैग:
execution --[no]sandbox_fake_usernamedefault: "false"-
सैंडबॉक्स की गई कार्रवाइयों के लिए, मौजूदा यूज़रनेम को 'nobody' में बदलें.
टैग:
execution --sandbox_writable_path=<a string>कई बार इस्तेमाल किया गया हो-
सैंडबॉक्स की गई कार्रवाइयों के लिए, सैंडबॉक्स में मौजूद किसी डायरेक्ट्री को लिखने लायक बनाएं. अगर सैंडबॉक्सिंग लागू करने की सुविधा इसका समर्थन करती है, तो इसे अनदेखा कर दिया जाता है.
टैग:
execution
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]check_tests_up_to_datedefault: "false"-
जांच न करें, बस यह देखें कि वे अप-टू-डेट हैं या नहीं. अगर सभी टेस्ट के नतीजे अप-टू-डेट हैं, तो टेस्टिंग पूरी हो जाती है. अगर किसी टेस्ट को बनाने या उसे लागू करने की ज़रूरत होती है, तो गड़बड़ी की सूचना दी जाती है और टेस्टिंग नहीं हो पाती. इस विकल्प का मतलब है कि --check_up_to_date का इस्तेमाल किया गया है.
टैग:
execution --flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
अगर कोई टेस्ट पूरा नहीं होता है, तो उसे तय की गई संख्या के हिसाब से फिर से आज़माया जाएगा. जिन टेस्ट को पास करने के लिए एक से ज़्यादा बार कोशिश करनी पड़ी उन्हें टेस्ट की खास जानकारी में 'FLAKY' के तौर पर मार्क किया जाता है. आम तौर पर, दी गई वैल्यू सिर्फ़ एक पूर्णांक या 'default' स्ट्रिंग होती है. अगर यह पूर्णांक है, तो सभी टेस्ट N बार चलाए जाएंगे. अगर 'default' चुना जाता है, तो सामान्य टेस्ट के लिए सिर्फ़ एक बार और ऐसे टेस्ट के लिए तीन बार कोशिश की जाएगी जिन्हें नियम के हिसाब से, साफ़ तौर पर फ़्लेकी के तौर पर मार्क किया गया है (flaky=1 एट्रिब्यूट). वैकल्पिक सिंटैक्स: regex_filter@flaky_test_attempts. यहां flaky_test_attempts ऊपर दिए गए तरीके से तय किए जाते हैं. साथ ही, regex_filter में शामिल और बाहर रखे गए रेगुलर एक्सप्रेशन पैटर्न की सूची होती है. --runs_per_test भी देखें. उदाहरण: --flaky_test_attempts=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार छोड़कर, foo/bar में मौजूद सभी टेस्ट को तीन बार डीफ़्लेक करता है. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो 'default' के तौर पर ऊपर दिया गया तरीका लागू होता है.
टैग:
execution --local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
एक साथ चलाए जा सकने वाले लोकल टेस्ट जॉब की ज़्यादा से ज़्यादा संख्या. यह पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") लेता है. इसके बाद, विकल्प के तौर पर कोई कार्रवाई ([-|]<float>) की जा सकती है. उदाहरण के लिए, "auto", "HOST_CPUS.5". 0 का मतलब है कि लोकल संसाधनों का इस्तेमाल करके, एक साथ चलाए जा सकने वाले लोकल टेस्ट जॉब की संख्या सीमित की जाएगी. इसे --jobs की वैल्यू से ज़्यादा पर सेट करने से कोई फ़र्क़ नहीं पड़ता.
टैग:
execution --[no]test_keep_goingdefault: "true"-
इस सुविधा के बंद होने पर, टेस्ट पास न होने की वजह से पूरा बिल्ड रुक जाएगा. डिफ़ॉल्ट रूप से, सभी टेस्ट चलाए जाते हैं. भले ही, कुछ टेस्ट पास न हुए हों.
टैग:
execution --test_strategy=<a string>default: ""-
यह तय करता है कि टेस्ट चलाने के लिए किस रणनीति का इस्तेमाल करना है.
टैग:
execution --test_tmpdir=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, 'bazel test' के लिए, इस्तेमाल की जाने वाली बुनियादी अस्थायी डायरेक्ट्री के बारे में बताता है.
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--cache_computed_file_digests=<a long integer>default: "50000"-
अगर इसकी वैल्यू 0 से ज़्यादा है, तो Bazel को कॉन्फ़िगर किया जाता है. इससे Bazel, फ़ाइल के डाइजेस्ट को मेमोरी में कैश मेमोरी के तौर पर सेव करता है. ऐसा फ़ाइल के मेटाडेटा के आधार पर किया जाता है. इससे, जब भी फ़ाइल के डाइजेस्ट की ज़रूरत होती है, तो Bazel को डिस्क से डाइजेस्ट को फिर से कंप्यूट नहीं करना पड़ता. इसे 0 पर सेट करने से, यह पक्का किया जा सकता है कि फ़ाइल में किए गए सभी बदलावों की जानकारी सही हो. ऐसा इसलिए, क्योंकि फ़ाइल के मेटाडेटा से सभी बदलावों की जानकारी नहीं मिलती. शून्य न होने पर, यह संख्या कैश मेमोरी के साइज़ को दिखाती है. यह कैश मेमोरी में सेव किए जाने वाले फ़ाइल डाइजेस्ट की संख्या के तौर पर दिखती है.
--experimental_active_directories=<comma-separated list of options>default: ""-
Skyfocus और रिमोट ऐनलिसिस कैश मेमोरी के लिए चालू डायरेक्ट्री. कॉमा लगाकर अलग किए गए, वर्कस्पेस के रूट से जुड़े पाथ के तौर पर तय करें. यह एक स्टेटफ़ुल फ़्लैग है. किसी फ़ंक्शन को एक बार तय करने पर, उसे बाद के इनवोकेशन के लिए सेव कर दिया जाता है. ऐसा तब तक होता है, जब तक उसे नए सेट के साथ फिर से तय नहीं किया जाता.
--[no]experimental_cpu_load_schedulingdefault: "false"-
यह कुकी, सीपीयू लोड के आधार पर एक्सपेरिमेंट के तौर पर स्थानीय तौर पर एक्ज़ीक्यूट होने वाले शेड्यूल को चालू करती है. यह एक-एक करके कार्रवाइयों का अनुमान लगाने के आधार पर काम नहीं करती. एक्सपेरिमेंट के तौर पर उपलब्ध शेड्यूलिंग की सुविधा से, ज़्यादा कोर वाली पावरफ़ुल मशीनों पर लोकल बिल्ड को काफ़ी फ़ायदा मिला है. इसे --local_resources=cpu=HOST_CPUS के साथ इस्तेमाल करने का सुझाव दिया जाता है
टैग:
execution --experimental_dynamic_ignore_local_signals=<a comma-separated list of signal numbers>डिफ़ॉल्ट: ब्यौरा देखें-
यह ओएस सिग्नल नंबर की सूची लेता है. अगर डाइनैमिक एक्ज़ीक्यूशन की कोई लोकल ब्रांच, इनमें से किसी भी सिग्नल की वजह से बंद हो जाती है, तो रिमोट ब्रांच को पूरा होने दिया जाएगा. पर्सिस्टेंट वर्कर के लिए, इससे सिर्फ़ उन सिग्नल पर असर पड़ता है जो वर्कर प्रोसेस को बंद करते हैं.
टैग:
execution --[no]experimental_enable_skyfocusdefault: "false"-
अगर यह विकल्प सही है, तो --experimental_active_directories का इस्तेमाल चालू करें. इससे इंक्रीमेंटल बिल्ड के लिए, Bazel के मेमोरी फ़ुटप्रिंट को कम किया जा सकता है. इस सुविधा को Skyfocus के नाम से जाना जाता है.
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.>डिफ़ॉल्ट: "HOST_CPUS"-
Bazel के लिए, स्थानीय सीपीयू कोर की कुल संख्या साफ़ तौर पर सेट करें. इससे Bazel, स्थानीय तौर पर एक्ज़ीक्यूट की गई बिल्ड कार्रवाइयों पर खर्च कर पाएगा. यह पूर्णांक या "HOST_CPUS" लेता है. इसके बाद, [-|]<float> (उदाहरण के लिए, HOST_CPUS.5 का इस्तेमाल करें, ताकि उपलब्ध सीपीयू कोर का आधा हिस्सा इस्तेमाल किया जा सके). डिफ़ॉल्ट रूप से, ("HOST_CPUS") Bazel, सिस्टम कॉन्फ़िगरेशन के बारे में क्वेरी करेगा, ताकि उपलब्ध सीपीयू कोर की संख्या का अनुमान लगाया जा सके.
--local_extra_resources=<a named float, 'name=value'>कई बार इस्तेमाल किया गया हो-
Bazel के लिए उपलब्ध अतिरिक्त संसाधनों की संख्या सेट करें. यह स्ट्रिंग-फ़्लोट पेयर लेता है. इसका इस्तेमाल कई बार किया जा सकता है, ताकि अलग-अलग तरह के अतिरिक्त संसाधन तय किए जा सकें. Bazel, उपलब्ध अतिरिक्त संसाधनों और ज़रूरी अतिरिक्त संसाधनों के आधार पर, एक साथ चल रही कार्रवाइयों को सीमित करेगा. जांचें, "resources:<resoucename>:<amount>" फ़ॉर्मैट वाले टैग का इस्तेमाल करके, यह तय कर सकती हैं कि उन्हें कितने अतिरिक्त संसाधनों की ज़रूरत है. इस फ़्लैग की मदद से, उपलब्ध सीपीयू, रैम, और संसाधनों को सेट नहीं किया जा सकता.
--local_ram_resources=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>डिफ़ॉल्ट: "HOST_RAM*.67"-
Bazel के लिए, लोकल होस्ट रैम की कुल रकम (एमबी में) साफ़ तौर पर सेट करें. इसका इस्तेमाल, स्थानीय तौर पर की गई बिल्ड कार्रवाइयों पर किया जाएगा. यह पूर्णांक या "HOST_RAM" लेता है. इसके बाद, [-|]<float> (उदाहरण के लिए, HOST_RAM.5 का इस्तेमाल करके, उपलब्ध RAM का आधा हिस्सा इस्तेमाल किया जा सकता है). डिफ़ॉल्ट रूप से, Bazel ("HOST_RAM*.67") उपलब्ध RAM का अनुमान लगाने के लिए, सिस्टम कॉन्फ़िगरेशन के बारे में क्वेरी करेगा. साथ ही, उपलब्ध RAM का 67% इस्तेमाल करेगा.
--local_resources=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">कई बार इस्तेमाल किया गया हो-
Bazel के लिए उपलब्ध संसाधनों की संख्या सेट करें. यह फ़्लोट या HOST_RAM/HOST_CPUS को असाइनमेंट में लेता है. इसके बाद, [-|]<float> (उदाहरण के लिए, उपलब्ध रैम का आधा हिस्सा इस्तेमाल करने के लिए memory=HOST_RAM.5) का इस्तेमाल किया जा सकता है. इसका इस्तेमाल कई बार किया जा सकता है, ताकि अलग-अलग तरह के संसाधनों के बारे में बताया जा सके. Bazel, उपलब्ध संसाधनों और ज़रूरी संसाधनों के आधार पर, एक साथ चल रही कार्रवाइयों को सीमित करेगा. जांचें कि "resources:<resource name>:<amount>" फ़ॉर्मैट वाले टैग का इस्तेमाल करके, ज़रूरी संसाधनों की संख्या का एलान किया जा सकता है. यह --local_{cpu|ram|extra}_resources में बताए गए संसाधनों को बदलता है.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--build_event_upload_max_retries=<an integer>default: "4"-
Bazel को, बिल्ड इवेंट को अपलोड करने की कोशिश ज़्यादा से ज़्यादा कितनी बार करनी चाहिए.
--[no]debug_spawn_schedulerdefault: "false"--[no]experimental_bep_target_summarydefault: "false"-
TargetSummary इवेंट पब्लिश करने हैं या नहीं.
--[no]experimental_build_event_expand_filesetsdefault: "false"-
अगर यह वैल्यू सही है, तो आउटपुट फ़ाइलें दिखाते समय बीईपी में फ़ाइलसेट को बड़ा करें.
टैग:
affects_outputs --experimental_build_event_output_group_mode=<an output group name followed by an OutputGroupFileMode, e.g. default=both>कई बार इस्तेमाल किया गया हो-
यह तय करें कि TargetComplete/AspectComplete BEP इवेंट में, आउटपुट ग्रुप की फ़ाइलों को कैसे दिखाया जाएगा. वैल्यू, आउटपुट ग्रुप के नाम को 'NAMED_SET_OF_FILES_ONLY', 'INLINE_ONLY' या 'BOTH' में से किसी एक को असाइन की जाती है. डिफ़ॉल्ट वैल्यू 'NAMED_SET_OF_FILES_ONLY' होती है. अगर किसी आउटपुट ग्रुप को दोहराया जाता है, तो दिखने वाली फ़ाइनल वैल्यू का इस्तेमाल किया जाता है. डिफ़ॉल्ट वैल्यू, कवरेज आर्टफ़ैक्ट के लिए मोड को BOTH पर सेट करती है: --experimental_build_event_output_group_mode=baseline.lcov=both
टैग:
affects_outputs --experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>डिफ़ॉल्ट: "1s"-
बीईपी अपलोड करने में गड़बड़ी होने पर, एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करने में लगने वाला शुरुआती और कम से कम समय. (एक्सपोनेंट: 1.6)
--experimental_build_event_upload_strategy=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कुकी, बिल्ड इवेंट प्रोटोकॉल में रेफ़र किए गए आर्टफ़ैक्ट को अपलोड करने का तरीका चुनती है. बेसल में, मान्य विकल्पों में 'local' और 'remote' शामिल हैं. डिफ़ॉल्ट वैल्यू 'local' होती है.
टैग:
affects_outputs --[no]experimental_docker_verbosedefault: "false"-
इस विकल्प को चालू करने पर, Bazel, Docker सैंडबॉक्स की रणनीति के बारे में ज़्यादा जानकारी वाले मैसेज प्रिंट करेगा.
टैग:
execution --experimental_frontier_violation_check=<strict, warn or disabled_for_testing>default: "strict"-
फ़्रंटियर के बाहर (यानी कि ऐक्टिव डायरेक्ट्री के बाहर) किए गए बदलावों से जुड़ी संभावित गलतियों को ठीक करने की रणनीतियां
टैग:
eagerness_to_exit --[no]experimental_frontier_violation_verbosedefault: "false"-
अगर यह सही है, तो Bazel, Skycache के उल्लंघन ठीक करने के निर्देश प्रिंट करेगा
टैग:
terminal_output --[no]experimental_materialize_param_files_directlydefault: "false"-
अगर पैरामीटर फ़ाइलों को मटीरियलाइज़ किया जा रहा है, तो उन्हें सीधे डिस्क पर लिखें.
टैग:
execution --[no]experimental_run_bep_event_include_residuedefault: "false"-
क्या रन बिल्ड इवेंट में कमांड-लाइन के बचे हुए हिस्से को शामिल करना है. इसमें बचा हुआ हिस्सा शामिल हो सकता है. डिफ़ॉल्ट रूप से, रन कमांड के बिल्ड इवेंट में बचे हुए डेटा को शामिल नहीं किया जाता. हालांकि, इसमें बचे हुए डेटा को शामिल किया जा सकता है.
टैग:
affects_outputs --experimental_skyfocus_dump_keys=<none, count or verbose>डिफ़ॉल्ट: "none"-
इस कुकी का इस्तेमाल Skyfocus को डीबग करने के लिए किया जाता है. फ़ोकस किए गए SkyKeys (रूट, पत्तियां, फ़ोकस किए गए deps, फ़ोकस किए गए rdeps) को डंप करें.
टैग:
terminal_output --[no]experimental_skyfocus_dump_post_gc_statsdefault: "false"-
इस कुकी का इस्तेमाल Skyfocus को डीबग करने के लिए किया जाता है. अगर यह विकल्प चालू है, तो फ़ोकस करने से पहले/बाद में मैन्युअल जीसी को ट्रिगर करें, ताकि हीप साइज़ में हुई कमी की जानकारी दी जा सके. इससे Skyfocus की लेटेन्सी बढ़ जाएगी.
टैग:
terminal_output --[no]experimental_stream_log_file_uploadsdefault: "false"-
स्ट्रीम लॉग फ़ाइल अपलोड करने की सुविधा, फ़ाइलों को डिस्क में सेव करने के बजाय सीधे रिमोट स्टोरेज में अपलोड करती है.
टैग:
affects_outputs --explain=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
इस विकल्प का इस्तेमाल करने पर, बिल्ड सिस्टम, बिल्ड के हर चरण के बारे में जानकारी देता है. वजह को बताई गई लॉग फ़ाइल में लिखा जाता है.
टैग:
affects_outputs --[no]ignore_unsupported_sandboxingdefault: "false"-
अगर इस सिस्टम पर सैंडबॉक्स किए गए कोड को चलाने की सुविधा काम नहीं करती है, तो चेतावनी न दिखाएं.
टैग:
terminal_output --[no]legacy_important_outputsdefault: "false"-
इसका इस्तेमाल, TargetComplete इवेंट में लेगसी important_outputs फ़ील्ड को जनरेट होने से रोकने के लिए करें. Bazel को ResultStore/BTX इंटिग्रेशन के लिए important_outputs की ज़रूरत होती है.
टैग:
affects_outputs --[no]materialize_param_filesdefault: "false"-
यह कुकी, रिमोट ऐक्शन एक्ज़ीक्यूशन या कैश मेमोरी का इस्तेमाल करने पर भी, आउटपुट ट्री में इंटरमीडिएट पैरामीटर फ़ाइलें लिखती है. कार्रवाइयों को डीबग करते समय यह काम का होता है. --subcommands और --verbose_failures से यह पता चलता है.
टैग:
execution --max_config_changes_to_show=<an integer>default: "3"-
बिल्ड के विकल्पों में बदलाव होने की वजह से, विश्लेषण की कैश मेमोरी को खारिज करने पर, बदले गए विकल्पों के नाम की दी गई संख्या तक दिखाता है. अगर दी गई संख्या -1 है, तो बदले गए सभी विकल्प दिखेंगे.
टैग:
terminal_output --max_test_output_bytes=<an integer>default: "-1"-
यह हर टेस्ट के लॉग का ज़्यादा से ज़्यादा साइज़ तय करता है. यह साइज़ तब लागू होता है, जब --test_output की वैल्यू 'errors' या 'all' पर सेट हो. यह विकल्प, टेस्ट के बहुत ज़्यादा शोर वाले आउटपुट से आउटपुट को ज़्यादा जानकारी से भरने से बचने के लिए काम का है. टेस्ट हेडर को लॉग के साइज़ में शामिल किया जाता है. नेगेटिव वैल्यू का मतलब है कि कोई सीमा नहीं है. आउटपुट या तो पूरा होगा या कुछ भी नहीं होगा.
टैग:
test_runner,terminal_output,execution --output_filter=<a valid Java regular expression>डिफ़ॉल्ट: ब्यौरा देखें-
यह सिर्फ़ उन नियमों के लिए चेतावनियां और कार्रवाई के आउटपुट दिखाता है जिनके नाम, दिए गए रेगुलर एक्सप्रेशन से मेल खाते हैं.
टैग:
affects_outputs --progress_report_interval=<an integer in 0-3600 range>default: "0"-
अब भी चल रहे कामों की रिपोर्ट के बीच इंतज़ार करने के लिए सेकंड की संख्या. डिफ़ॉल्ट वैल्यू 0 का मतलब है कि पहली रिपोर्ट 10 सेकंड बाद प्रिंट होगी. इसके बाद, 30 सेकंड बाद और फिर हर मिनट में प्रोग्रेस की रिपोर्ट दी जाएगी. --curses विकल्प चालू होने पर, हर सेकंड में प्रोग्रेस की जानकारी मिलती है.
टैग:
affects_outputs --remote_analysis_json_log=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर इस विकल्प को सेट किया जाता है, तो इस जगह पर एक JSON फ़ाइल लिखी जाती है. इसमें रिमोट ऐनलिसिस की कैश मेमोरी के व्यवहार का पूरा लॉग होता है. इसे मौजूदा वर्किंग डायरेक्ट्री के हिसाब से पाथ के तौर पर माना जाता है.
टैग:
bazel_monitoring --remote_print_execution_messages=<failure, success or all>default: "failure"-
रिमोट एक्ज़ीक्यूशन के मैसेज कब प्रिंट करने हैं, यह चुनें. मान्य वैल्यू ये हैं:
failure, सिर्फ़ फ़ेल होने पर प्रिंट करने के लिए,successसिर्फ़ पास होने पर प्रिंट करने के लिए, औरallहमेशा प्रिंट करने के लिए.टैग:
terminal_output --[no]sandbox_debugdefault: "false"-
यह कुकी, सैंडबॉक्सिंग की सुविधा के लिए डीबग करने की सुविधाएं चालू करती है. इसमें दो चीज़ें शामिल हैं: पहली, बिल्ड के बाद सैंडबॉक्स के रूट कॉन्टेंट में कोई बदलाव नहीं किया जाता; और दूसरी, यह एक्ज़ीक्यूशन पर डीबग करने से जुड़ी अतिरिक्त जानकारी प्रिंट करता है. इससे Bazel या Starlark के नियमों के डेवलपर को, इनपुट फ़ाइलें मौजूद न होने की वजह से डीबग करने में मदद मिल सकती है.
टैग:
terminal_output --show_result=<an integer>default: "1"-
बिल्ड के नतीजे दिखाएं. हर टारगेट के लिए, यह बताएं कि उसे अप-टू-डेट किया गया है या नहीं. अगर हां, तो बनाई गई आउटपुट फ़ाइलों की सूची दें. प्रिंट की गई फ़ाइलें, शेल में कॉपी करके चिपकाने के लिए सुविधाजनक स्ट्रिंग होती हैं, ताकि उन्हें एक्ज़ीक्यूट किया जा सके. इस विकल्प के लिए, पूर्णांक आर्ग्युमेंट की ज़रूरत होती है. यह टारगेट की थ्रेशोल्ड संख्या होती है. इससे ज़्यादा टारगेट होने पर, नतीजे की जानकारी प्रिंट नहीं की जाती. इसलिए, शून्य की वजह से मैसेज नहीं दिखता है और MAX_INT की वजह से, नतीजे हमेशा दिखते हैं. डिफ़ॉल्ट रूप से, इसकी वैल्यू एक होती है. अगर किसी टारगेट के लिए कुछ भी नहीं बनाया गया है, तो उसके नतीजों को हटाया जा सकता है, ताकि आउटपुट तय सीमा के अंदर रहे.
टैग:
affects_outputs --[no]subcommands[-s] डिफ़ॉल्ट: "false"-
बिल्ड के दौरान लागू की गई सब-कमांड दिखाएं. इससे जुड़े फ़्लैग: --execution_log_json_file, --execution_log_binary_file (उप-कमांड को टूल के हिसाब से फ़ॉर्मैट की गई फ़ाइल में लॉग करने के लिए).
टैग:
terminal_output --test_output=<summary, errors, all or streamed>default: "summary"-
इससे आउटपुट का पसंदीदा मोड तय किया जाता है. मान्य वैल्यू ये हैं: 'summary' का इस्तेमाल सिर्फ़ टेस्ट की स्थिति की खास जानकारी दिखाने के लिए किया जाता है, 'errors' का इस्तेमाल फ़ेल हुए टेस्ट के लिए टेस्ट लॉग भी प्रिंट करने के लिए किया जाता है, 'all' का इस्तेमाल सभी टेस्ट के लिए लॉग प्रिंट करने के लिए किया जाता है, और 'streamed' का इस्तेमाल सभी टेस्ट के लिए रीयल टाइम में लॉग दिखाने के लिए किया जाता है. इससे टेस्ट को एक-एक करके स्थानीय तौर पर चलाने के लिए मजबूर किया जाएगा, भले ही --test_strategy की वैल्यू कुछ भी हो.
टैग:
test_runner,terminal_output,execution --test_summary=<short, terse, detailed, none or testcase>डिफ़ॉल्ट: "short"-
इससे टेस्ट की खास जानकारी का फ़ॉर्मैट तय होता है. मान्य वैल्यू ये हैं: 'short' का इस्तेमाल सिर्फ़ उन टेस्ट के बारे में जानकारी प्रिंट करने के लिए किया जाता है जिन्हें पूरा किया गया है, 'terse' का इस्तेमाल सिर्फ़ उन टेस्ट के बारे में जानकारी प्रिंट करने के लिए किया जाता है जिन्हें पूरा नहीं किया जा सका, 'detailed' का इस्तेमाल उन टेस्ट केस के बारे में ज़्यादा जानकारी प्रिंट करने के लिए किया जाता है जो पूरे नहीं किए जा सके, 'testcase' का इस्तेमाल टेस्ट केस के समाधान में खास जानकारी प्रिंट करने के लिए किया जाता है. इससे उन टेस्ट केस के बारे में ज़्यादा जानकारी प्रिंट नहीं की जाती जिन्हें पूरा नहीं किया जा सका. 'none' का इस्तेमाल खास जानकारी को हटाने के लिए किया जाता है.
टैग:
terminal_output --[no]verbose_failuresdefault: "false"-
अगर कोई निर्देश काम नहीं करता है, तो पूरी कमांड लाइन प्रिंट करें.
टैग:
terminal_output
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--aspects_parameters=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
यह कमांड-लाइन के पहलुओं के पैरामीटर की वैल्यू तय करता है. हर पैरामीटर वैल्यू को <param_name>=<param_value> के ज़रिए तय किया जाता है. उदाहरण के लिए, 'my_param=my_val', जहां 'my_param' --aspects सूची में किसी पहलू का पैरामीटर है या सूची में किसी पहलू के लिए ज़रूरी है. इस विकल्प का इस्तेमाल एक से ज़्यादा बार किया जा सकता है. हालांकि, एक ही पैरामीटर को एक से ज़्यादा बार वैल्यू असाइन करने की अनुमति नहीं है.
टैग:
loading_and_analysis --target_pattern_file=<a string>default: ""-
अगर इसे सेट किया जाता है, तो बिल्ड, कमांड लाइन के बजाय यहां दी गई फ़ाइल से पैटर्न पढ़ेगा. यहां फ़ाइल और कमांड-लाइन पैटर्न, दोनों को एक साथ तय करना गड़बड़ी है.
टैग:
changes_inputs
- रिमोट कैशिंग और एक्ज़ीक्यूशन के विकल्प:
--experimental_circuit_breaker_strategy=<failure>डिफ़ॉल्ट: ब्यौरा देखें-
यह कुकी, सर्किट ब्रेकर के इस्तेमाल की रणनीति के बारे में बताती है. उपलब्ध रणनीतियां "failure" हैं. विकल्प के लिए अमान्य वैल्यू होने पर, विकल्प सेट न होने पर जैसा व्यवहार होता है वैसा ही व्यवहार होता है.
टैग:
execution --experimental_remote_cache_compression_threshold=<an integer>डिफ़ॉल्ट: "100"-
zstd का इस्तेमाल करके कंप्रेस/डीकंप्रेस करने के लिए, कम से कम ब्लोब साइज़. जब तक --remote_cache_compression सेट नहीं किया जाता, तब तक यह विकल्प काम नहीं करता.
--experimental_remote_cache_eviction_retries=<an integer>डिफ़ॉल्ट: "5"-
अगर बिल्ड के दौरान, रिमोट कैश से जुड़ी कोई ऐसी अस्थायी गड़बड़ी होती है जिसकी वजह से बिल्ड पूरा नहीं हो पाता है, तो उसे फिर से बनाने की कोशिश करने की ज़्यादा से ज़्यादा संख्या. उदाहरण के लिए, यह तब लागू होता है, जब रिमोट कैश से आर्टफ़ैक्ट हटा दिए जाते हैं या कैश मेमोरी काम नहीं करती है. हर कोशिश के लिए, एक नया इनवोकेशन आईडी जनरेट किया जाएगा.
टैग:
execution --[no]experimental_remote_cache_lease_extensiondefault: "false"-
अगर इस विकल्प को 'चालू है' पर सेट किया जाता है, तो Bazel, बिल्ड के दौरान रिमोट ऐक्शन के आउटपुट के लिए लीज़ को बढ़ा देगा. इसके लिए, वह रिमोट कैश को समय-समय पर
FindMissingBlobsकॉल भेजेगा. फ़्रीक्वेंसी,--experimental_remote_cache_ttlकी वैल्यू पर आधारित होती है. --experimental_remote_cache_ttl=<An immutable length of time.>default: "3h"-
डाइजेस्ट का हाल ही में रेफ़रंस दिए जाने के बाद, रिमोट कैश में मौजूद ब्लॉब का कम से कम टीटीएल. उदाहरण के लिए, ActionResult या FindMissingBlobs. Bazel, ब्लॉब के टीटीएल के आधार पर कई ऑप्टिमाइज़ेशन करता है. उदाहरण के लिए, इंक्रीमेंटल बिल्ड में GetActionResult को बार-बार कॉल नहीं करता है. वैल्यू को असली टीटीएल से थोड़ा कम पर सेट किया जाना चाहिए, क्योंकि सर्वर के डाइजेस्ट वापस भेजने और Bazel के उन्हें पाने के बीच कुछ समय लगता है.
टैग:
execution --experimental_remote_capture_corrupted_outputs=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
उस डायरेक्ट्री का पाथ जहां खराब आउटपुट कैप्चर किए जाएंगे.
--[no]experimental_remote_discard_merkle_treesdefault: "true"-
अगर इसे 'सही' पर सेट किया जाता है, तो GetActionResult() और Execute() को कॉल करने के दौरान, इनपुट रूट के Merkle ट्री और उससे जुड़े इनपुट मैपिंग की इन-मेमोरी कॉपी को खारिज कर दें. इससे मेमोरी का इस्तेमाल काफ़ी कम हो जाता है. हालांकि, रिमोट कैश मेमोरी में मौजूद न होने और फिर से कोशिश करने पर, Bazel को इन्हें फिर से कंप्यूट करना पड़ता है.
--experimental_remote_downloader=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट ऐसेट एपीआई एंडपॉइंट यूआरआई, जिसका इस्तेमाल रिमोट डाउनलोड प्रॉक्सी के तौर पर किया जाना है. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. इस लिंक पर जानकारी पाएं: https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallbackdefault: "false"-
अगर रिमोट डाउनलोडर काम नहीं करता है, तो लोकल डाउनलोडर का इस्तेमाल करना है या नहीं.
--[no]experimental_remote_downloader_propagate_credentialsdefault: "false"-
यह तय करता है कि netrc और क्रेडेंशियल हेल्पर से क्रेडेंशियल को रिमोट डाउनलोडर सर्वर पर भेजना है या नहीं. सर्वर पर लागू करने के लिए, नए
http_header_url:<url-index>:<header-key>क्वालिफ़ायर का इस्तेमाल किया जाना चाहिए. इसमें<url-index>, FetchBlobRequest केurisफ़ील्ड में मौजूद यूआरएल की 0 से शुरू होने वाली पोज़िशन होती है. यूआरएल के हिसाब से तय किए गए हेडर को ग्लोबल हेडर से ज़्यादा प्राथमिकता दी जानी चाहिए. --[no]experimental_remote_execution_keepalivedefault: "false"-
रिमोट तरीके से एक्ज़ीक्यूट करने के लिए कॉल के लिए, कीपअलाइव का इस्तेमाल करना है या नहीं.
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range>default: "10"-
यह किसी खास समयावधि के लिए, फ़ेल होने की दर को प्रतिशत में सेट करता है. इसके बाद, यह रिमोट कैश/एक्ज़ीक्यूटर को कॉल करना बंद कर देता है. डिफ़ॉल्ट रूप से इसकी वैल्यू 10 होती है. इसे 0 पर सेट करने का मतलब है कि कोई सीमा नहीं है.
टैग:
execution --experimental_remote_failure_window_interval=<An immutable length of time.>default: "60s"-
वह समयावधि जिसमें रिमोट अनुरोधों के पूरे न होने की दर का हिसाब लगाया जाता है. शून्य या नेगेटिव वैल्यू होने पर, फ़ेल होने की अवधि को पूरे एक्ज़ीक्यूशन की अवधि के तौर पर कैलकुलेट किया जाता है.इन यूनिट का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
टैग:
execution --[no]experimental_remote_mark_tool_inputsdefault: "false"-
अगर इसे 'सही है' पर सेट किया जाता है, तो Bazel, रिमोट एक्ज़ीक्यूटर के लिए इनपुट को टूल इनपुट के तौर पर मार्क करेगा. इसका इस्तेमाल, रिमोट पर्सिस्टेंट वर्कर को लागू करने के लिए किया जा सकता है.
--[no]experimental_remote_merkle_tree_cachedefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो मेर्कल ट्री के हिसाब-किताब को मेमोराइज़ किया जाएगा. इससे रिमोट कैश हिट की जांच करने की स्पीड बेहतर होगी. कैश मेमोरी के फ़ुटप्रिंट को --experimental_remote_merkle_tree_cache_size कंट्रोल करता है.
--experimental_remote_merkle_tree_cache_size=<a long integer>डिफ़ॉल्ट: "1000"-
रिमोट कैश हिट की जांच करने की स्पीड को बेहतर बनाने के लिए, मेमोइज़ किए जाने वाले मर्कल ट्री की संख्या. Java में सॉफ़्ट रेफ़रंस को मैनेज करने के तरीके के हिसाब से, कैश मेमोरी अपने-आप कम हो जाती है. हालांकि, अगर इसे बहुत ज़्यादा पर सेट किया जाता है, तो मेमोरी से जुड़ी गड़बड़ियां हो सकती हैं. अगर इसे 0 पर सेट किया जाता है, तो कैश मेमोरी का साइज़ अनलिमिटेड होता है. सबसे सही वैल्यू, प्रोजेक्ट के साइज़ के हिसाब से अलग-अलग होती है. डिफ़ॉल्ट रूप से 1,000 पर सेट होता है.
--experimental_remote_output_service=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट आउटपुट सेवा के एंडपॉइंट का HOST या HOST:PORT. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc:// या unix: स्कीमा तय करें.
--experimental_remote_output_service_output_path_prefix=<a string>default: ""-
यह वह पाथ है जिसके तहत, --experimental_remote_output_service मैनेज की गई आउटपुट डायरेक्ट्री का कॉन्टेंट रखा जाता है. किसी बिल्ड के लिए इस्तेमाल की जाने वाली आउटपुट डायरेक्ट्री, इस पाथ की डिसेंडेंट होगी. साथ ही, इसे आउटपुट सेवा तय करेगी.
--[no]experimental_remote_require_cacheddefault: "false"-
अगर इस विकल्प को 'सही है' पर सेट किया जाता है, तो यह ज़रूरी हो जाता है कि दूर से की जा सकने वाली सभी कार्रवाइयों को कैश मेमोरी में सेव किया जाए. ऐसा न होने पर, बिल्ड पूरा नहीं होगा. यह गैर-निर्धारित समस्याओं को हल करने के लिए उपयोगी है. इससे यह जांच की जा सकती है कि जिन कार्रवाइयों को कैश मेमोरी में सेव किया जाना चाहिए उन्हें कैश मेमोरी में सेव किया गया है या नहीं. साथ ही, यह भी जांच की जा सकती है कि कैश मेमोरी में नए नतीजे गलत तरीके से तो नहीं डाले गए हैं.
--experimental_remote_scrubbing_config=<Converts to a Scrubber>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, दी गई कॉन्फ़िगरेशन फ़ाइल की मदद से, रिमोट कैश मेमोरी की कुंजी को मिटाने की सुविधा चालू करता है. यह फ़ाइल, टेक्स्ट फ़ॉर्मैट में प्रोटोकॉल बफ़र होनी चाहिए. इसके बारे में ज़्यादा जानने के लिए, src/main/protobuf/remote_scrubbing.proto देखें.
इस सुविधा का मकसद, अलग-अलग प्लैटफ़ॉर्म पर एक्ज़ीक्यूट की जा रही कार्रवाइयों के बीच रिमोट/डिस्क कैश मेमोरी को शेयर करना है. हालांकि, ये कार्रवाइयां एक ही प्लैटफ़ॉर्म को टारगेट करती हैं. इसका इस्तेमाल बहुत सावधानी से करना चाहिए, क्योंकि गलत सेटिंग की वजह से कैश मेमोरी की एंट्री अनजाने में शेयर हो सकती हैं. इससे गलत बिल्ड बन सकते हैं.
स्क्रबिंग से, किसी कार्रवाई के लागू होने के तरीके पर कोई असर नहीं पड़ता. इससे सिर्फ़ यह तय होता है कि कार्रवाई के नतीजे को वापस पाने या सेव करने के लिए, उसकी रिमोट/डिस्क कैश मेमोरी की कुंजी कैसे कैलकुलेट की जाती है. स्क्रब की गई कार्रवाइयां, रिमोट एक्ज़ीक्यूशन के साथ काम नहीं करती हैं. इसलिए, इन्हें हमेशा स्थानीय तौर पर ही एक्ज़ीक्यूट किया जाएगा.
स्क्रबिंग कॉन्फ़िगरेशन में बदलाव करने से, लोकल फ़ाइल सिस्टम या इंटरनल कैश मेमोरी में मौजूद आउटपुट अमान्य नहीं होते. जिन कार्रवाइयों पर असर पड़ा है उन्हें फिर से लागू करने के लिए, क्लीन बिल्ड की ज़रूरत होती है.
इस सुविधा का इस्तेमाल करने के लिए, आपको --host_platform को --experimental_platform_in_output_dir (आउटपुट प्रीफ़िक्स को सामान्य बनाने के लिए) और --incompatible_strict_action_env (एनवायरमेंट वैरिएबल को सामान्य बनाने के लिए) के साथ सेट करना होगा.
--[no]guard_against_concurrent_changesdefault: "lite"-
इसे 'full' पर सेट करें, ताकि रिमोट कैश में अपलोड करने से पहले, किसी कार्रवाई की सभी इनपुट फ़ाइलों के ctime की जांच की जा सके. ऐसा हो सकता है कि कुछ मामलों में Linux कर्नल, फ़ाइलों को लिखने में देरी करे. इससे गलत पॉज़िटिव नतीजे मिल सकते हैं. डिफ़ॉल्ट रूप से, 'lite' मोड चालू होता है. इसमें सिर्फ़ मुख्य रिपॉज़िटरी में मौजूद सोर्स फ़ाइलों की जांच की जाती है. इसे 'बंद है' पर सेट करने से, सभी जांच बंद हो जाती हैं. हमारा सुझाव है कि ऐसा न करें. ऐसा इसलिए, क्योंकि जब किसी सोर्स फ़ाइल में बदलाव किया जाता है, तब उसे इनपुट के तौर पर लेने वाली कार्रवाई चल रही होती है. इससे कैश मेमोरी में मौजूद डेटा खराब हो सकता है.
टैग:
execution --[no]remote_accept_cacheddefault: "true"-
दूर से कैश मेमोरी में सेव किए गए कार्रवाई के नतीजों को स्वीकार करना है या नहीं.
--remote_build_event_upload=<all or minimal>default: "minimal"-
अगर इसे 'all' पर सेट किया जाता है, तो BEP से रेफ़र किए गए सभी लोकल आउटपुट, रिमोट कैश में अपलोड किए जाते हैं. अगर इसे 'कम से कम' पर सेट किया जाता है, तो बीईपी से रेफ़र की गई लोकल आउटपुट फ़ाइलों को रिमोट कैश में अपलोड नहीं किया जाता. हालांकि, बीईपी के उपभोक्ताओं के लिए ज़रूरी फ़ाइलों को अपलोड किया जाता है. जैसे, टेस्ट लॉग और टाइमिंग प्रोफ़ाइल. फ़ाइलों के यूआरआई के लिए, हमेशा bytestream:// स्कीम का इस्तेमाल किया जाता है. भले ही, वे रिमोट कैश में मौजूद न हों. डिफ़ॉल्ट रूप से 'minimal' पर सेट होता है.
--remote_bytestream_uri_prefix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
होस्टनेम और इंस्टेंस का नाम, जिसका इस्तेमाल उन bytestream:// यूआरआई में किया जाना है जिन्हें बिल्ड इवेंट स्ट्रीम में लिखा जाता है. इस विकल्प को तब सेट किया जा सकता है, जब प्रॉक्सी का इस्तेमाल करके बिल्ड किए जाते हैं. इससे --remote_executor और --remote_instance_name की वैल्यू, रिमोट एक्ज़ीक्यूशन सेवा के कैननिकल नाम से मेल नहीं खाती हैं. अगर इसे सेट नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से "${hostname}/${instance_name}" पर सेट हो जाएगा.
--remote_cache=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कैशिंग एंडपॉइंट का यूआरआई. इन स्कीमा का इस्तेमाल किया जा सकता है: http, https, grpc, grpcs (TLS की सुविधा के साथ grpc) और unix (लोकल UNIX सॉकेट). अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc://, http:// या unix: स्कीमा तय करें. https://bazel.build/remote/caching पर जाएं
--[no]remote_cache_asyncdefault: "true"-
अगर यह वैल्यू सही है, तो कार्रवाई के नतीजों को डिस्क या रिमोट कैश में अपलोड करने की प्रोसेस बैकग्राउंड में होगी. इससे कार्रवाई पूरी होने में कोई रुकावट नहीं आएगी. कुछ कार्रवाइयां, बैकग्राउंड में अपलोड करने की सुविधा के साथ काम नहीं करती हैं. इसलिए, इस फ़्लैग को सेट करने के बाद भी, ये कार्रवाइयां अपलोड होने में रुकावट डाल सकती हैं.
--[no]remote_cache_compressiondefault: "false"-
अगर यह विकल्प चालू है, तो कैश मेमोरी के बड़े ऑब्जेक्ट को zstd की मदद से कंप्रेस/डिकंप्रेस करें. ऐसा तब करें, जब उनका साइज़ कम से कम --experimental_remote_cache_compression_threshold हो.
--remote_cache_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे कैश मेमोरी के अनुरोधों में शामिल किया जाएगा: --remote_cache_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_default_exec_properties=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
डिफ़ॉल्ट exec प्रॉपर्टी सेट करें, ताकि उन्हें रिमोट एक्ज़ीक्यूशन प्लैटफ़ॉर्म के तौर पर इस्तेमाल किया जा सके. ऐसा तब किया जाता है, जब एक्ज़ीक्यूशन प्लैटफ़ॉर्म पहले से exec_properties सेट न करता हो.
टैग:
affects_outputs --remote_default_platform_properties=<a string>default: ""-
अगर एक्ज़ीक्यूशन प्लैटफ़ॉर्म ने पहले से remote_execution_properties सेट नहीं की हैं, तो रिमोट एक्ज़ीक्यूशन एपीआई के लिए सेट की जाने वाली डिफ़ॉल्ट प्लैटफ़ॉर्म प्रॉपर्टी सेट करें. अगर रिमोट एक्ज़ीक्यूशन के लिए होस्ट प्लैटफ़ॉर्म को एक्ज़ीक्यूशन प्लैटफ़ॉर्म के तौर पर चुना जाता है, तो इस वैल्यू का इस्तेमाल किया जाएगा.
--remote_download_regex=<a valid Java regular expression>कई बार इस्तेमाल किया गया हो-
इस पैटर्न से मेल खाने वाले पाथ के रिमोट बिल्ड आउटपुट को डाउनलोड करने के लिए मजबूर करें. भले ही, --remote_download_outputs का इस्तेमाल किया गया हो या नहीं. इस फ़्लैग को दोहराकर, कई पैटर्न तय किए जा सकते हैं.
टैग:
affects_outputs --remote_downloader_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे रिमोट डाउनलोडर के अनुरोधों में शामिल किया जाएगा: --remote_downloader_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_exec_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर तय करें जिसे एक्ज़ीक्यूशन के अनुरोधों में शामिल किया जाएगा: --remote_exec_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_execution_priority=<an integer>default: "0"-
रिमोट ऐक्शन को लागू करने की प्राथमिकता. प्राथमिकता की खास वैल्यू का सिमैंटिक, सर्वर पर निर्भर करता है.
--remote_executor=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
रिमोट एक्ज़ीक्यूशन एंडपॉइंट का HOST या HOST:PORT. grpc, grpcs (TLS की सुविधा के साथ grpc), और unix (लोकल UNIX सॉकेट) स्कीमा का इस्तेमाल किया जा सकता है. अगर कोई स्कीमा नहीं दिया जाता है, तो Bazel डिफ़ॉल्ट रूप से grpcs का इस्तेमाल करेगा. TLS को बंद करने के लिए, grpc:// या unix: स्कीमा तय करें.
--remote_grpc_log=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो gRPC कॉल से जुड़ी जानकारी को लॉग करने के लिए फ़ाइल का पाथ. इस लॉग में, com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobufs का क्रम होता है. हर मैसेज के पहले एक varint होता है, जो इसके बाद आने वाले क्रमबद्ध protobuf मैसेज के साइज़ को दिखाता है. यह काम, LogEntry.writeDelimitedTo(OutputStream) तरीके से किया जाता है.
--remote_header=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
ऐसा हेडर डालें जिसे अनुरोधों में शामिल किया जाएगा: --remote_header=Name=Value. फ़्लैग को कई बार तय करके, एक से ज़्यादा हेडर पास किए जा सकते हैं. एक ही नाम की कई वैल्यू को कॉमा लगाकर अलग की गई सूची में बदल दिया जाएगा.
--remote_instance_name=<a string>default: ""-
रिमोट एक्ज़ीक्यूशन एपीआई में instance_name के तौर पर पास की जाने वाली वैल्यू.
--[no]remote_local_fallbackdefault: "false"-
अगर रिमोट एक्सीक्यूशन काम नहीं करता है, तो क्या स्टैंडअलोन लोकल एक्सीक्यूशन की रणनीति पर वापस जाना है.
--remote_local_fallback_strategy=<a string>default: "local"-
समर्थन नहीं होना या रुकना. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7480 पर जाएं.
--remote_max_connections=<an integer>डिफ़ॉल्ट: "100"-
रिमोट कैश/एक्ज़ीक्यूटर से एक साथ कनेक्ट होने वाले कनेक्शन की ज़्यादा से ज़्यादा संख्या को सीमित करें. डिफ़ॉल्ट रूप से, इसकी वैल्यू 100 होती है. इसे 0 पर सेट करने का मतलब है कि कोई सीमा नहीं है. एचटीटीपी रिमोट कैश के लिए, एक टीसीपी कनेक्शन एक बार में एक अनुरोध को हैंडल कर सकता है. इसलिए, Bazel एक साथ --remote_max_connections अनुरोध कर सकता है. gRPC रिमोट कैश/एक्ज़ीक्यूटर के लिए, एक gRPC चैनल आम तौर पर 100 से ज़्यादा एक साथ किए गए अनुरोधों को हैंडल कर सकता है. इसलिए, Bazel एक साथ करीब
--remote_max_connections * 100अनुरोध कर सकता है. --remote_proxy=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
प्रॉक्सी के ज़रिए रिमोट कैश से कनेक्ट करें. फ़िलहाल, इस फ़्लैग का इस्तेमाल सिर्फ़ Unix डोमेन सॉकेट (unix:/path/to/socket) को कॉन्फ़िगर करने के लिए किया जा सकता है.
--remote_result_cache_priority=<an integer>default: "0"-
रिमोट कैश मेमोरी में सेव किए जाने वाले रिमोट ऐक्शन की प्राथमिकता. प्राथमिकता की खास वैल्यू का सिमैंटिक, सर्वर पर निर्भर करता है.
--remote_retries=<an integer>डिफ़ॉल्ट: "5"-
कुछ समय के लिए हुई गड़बड़ी को ठीक करने के लिए, ज़्यादा से ज़्यादा कोशिशें की जा सकती हैं. अगर इसे 0 पर सेट किया जाता है, तो फिर से कोशिश करने की सुविधा बंद हो जाती है.
--remote_retry_max_delay=<An immutable length of time.>default: "5s"-
रीमोट तरीके से फिर से कोशिश करने के बीच ज़्यादा से ज़्यादा बैकऑफ़ डिले. इन इकाइयों का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
--remote_timeout=<An immutable length of time.>default: "60s"-
रिमोट एक्ज़ीक्यूशन और कैश मेमोरी के कॉल के लिए, इंतज़ार करने का ज़्यादा से ज़्यादा समय. REST कैश के लिए, यह कनेक्ट और रीड, दोनों के लिए टाइमआउट होता है. इन इकाइयों का इस्तेमाल किया जा सकता है: दिन (d), घंटे (h), मिनट (m), सेकंड (s), और मिलीसेकंड (ms). अगर यूनिट को शामिल नहीं किया जाता है, तो वैल्यू को सेकंड के तौर पर माना जाता है.
--[no]remote_upload_local_resultsdefault: "true"-
अगर रिमोट कैश मेमोरी इस सुविधा के साथ काम करती है और उपयोगकर्ता के पास ऐसा करने की अनुमति है, तो क्या स्थानीय तौर पर की गई कार्रवाई के नतीजों को रिमोट कैश मेमोरी में अपलोड करना है.
--[no]remote_verify_downloadsdefault: "true"-
इस विकल्प को सही पर सेट करने पर, Bazel सभी रिमोट डाउनलोड के हैश सम का हिसाब लगाएगा. साथ ही, अगर रिमोट से कैश की गई वैल्यू, अनुमानित वैल्यू से मैच नहीं करती हैं, तो उन्हें खारिज कर देगा.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]allow_analysis_cache_discarddefault: "true"-
अगर बिल्ड सिस्टम में बदलाव की वजह से, विश्लेषण की कैश मेमोरी को खारिज किया जा रहा है, तो इस विकल्प को 'गलत है' पर सेट करने से, Bazel बिल्ड जारी रखने के बजाय बंद हो जाएगा. अगर 'discard_analysis_cache' विकल्प भी सेट है, तो इस विकल्प का कोई असर नहीं पड़ता.
टैग:
eagerness_to_exit --auto_output_filter=<none, all, packages or subpackages>डिफ़ॉल्ट: "none"-
अगर --output_filter तय नहीं किया गया है, तो इस विकल्प की वैल्यू का इस्तेमाल करके फ़िल्टर अपने-आप बन जाता है. अनुमति वाली वैल्यू ये हैं: 'none' (किसी भी चीज़ को फ़िल्टर न करें / सब कुछ दिखाएं), 'all' (सब कुछ फ़िल्टर करें / कुछ भी न दिखाएं), 'packages' (Blaze कमांड लाइन पर बताए गए पैकेज में मौजूद नियमों का आउटपुट शामिल करें), और 'subpackages' ('packages' की तरह, लेकिन इसमें सबपैकेज भी शामिल हैं). 'packages' और 'subpackages' वैल्यू के लिए //java/foo और //javatests/foo को एक पैकेज माना जाता है)'.
--[no]build_manual_testsdefault: "false"-
'मैन्युअल' के तौर पर टैग किए गए टेस्ट टारगेट को बनाने के लिए मजबूर करता है. 'मैन्युअल' टेस्ट को प्रोसेस से बाहर रखा जाता है. इस विकल्प से, उन्हें बनाया जा सकता है, लेकिन लागू नहीं किया जा सकता.
--build_tag_filters=<comma-separated list of options>default: ""-
यह कॉमा लगाकर अलग किए गए टैग की सूची तय करता है. जिन टैग को शामिल नहीं करना है उन्हें तय करने के लिए, हर टैग से पहले '-' का इस्तेमाल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है. सिर्फ़ ऐसे टारगेट बनाए जाएंगे जिनमें कम से कम एक शामिल किया गया टैग हो और कोई भी बाहर रखा गया टैग न हो. इस विकल्प से, 'test' कमांड के साथ लागू किए गए टेस्ट के सेट पर कोई असर नहीं पड़ता. ये टेस्ट, टेस्ट फ़िल्टर करने के विकल्पों के हिसाब से काम करते हैं. उदाहरण के लिए, '--test_tag_filters'
--[no]build_tests_onlydefault: "false"-
अगर यह विकल्प दिया गया है, तो सिर्फ़ *_test और test_suite नियम बनाए जाएंगे. साथ ही, कमांड लाइन पर दिए गए अन्य टारगेट को अनदेखा कर दिया जाएगा. डिफ़ॉल्ट रूप से, अनुरोध की गई सभी चीज़ें बनाई जाएंगी.
--combined_report=<none or lcov>default: "lcov"-
इससे, कवरेज रिपोर्ट का वह टाइप तय होता है जो आपको चाहिए. फ़िलहाल, सिर्फ़ LCOV फ़ॉर्मैट इस्तेमाल किया जा सकता है.
--[no]compile_one_dependencydefault: "false"-
आर्ग्युमेंट फ़ाइलों की एक ही डिपेंडेंसी कंपाइल करता है. यह आईडीई में सोर्स फ़ाइलों के सिंटैक्स की जांच करने के लिए उपयोगी है. उदाहरण के लिए, सोर्स फ़ाइल पर निर्भर किसी एक टारगेट को फिर से बनाकर, बदलाव/बिल्ड/टेस्ट साइकल में गड़बड़ियों का जल्द से जल्द पता लगाया जा सकता है. इस तर्क से, फ़्लैग नहीं किए गए सभी तर्कों को समझने के तरीके पर असर पड़ता है. ये तर्क, सोर्स फ़ाइल के नाम होते हैं, न कि टारगेट बनाने के लिए इस्तेमाल किए जाने वाले नाम. हर सोर्स फ़ाइल के नाम के लिए, एक मनमाना टारगेट बनाया जाएगा. यह टारगेट, सोर्स फ़ाइल के नाम पर निर्भर करेगा.
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]discard_analysis_cachedefault: "false"-
विश्लेषण पूरा होने के तुरंत बाद, विश्लेषण की कैश मेमोरी को खारिज कर दें. इससे मेमोरी का इस्तेमाल ~10% तक कम हो जाता है. हालांकि, इसके बाद इंक्रीमेंटल बिल्ड की प्रोसेस धीमी हो जाती है.
--disk_cache=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक डायरेक्ट्री का पाथ होता है. Bazel इस डायरेक्ट्री में कार्रवाइयां और कार्रवाई के आउटपुट को पढ़ और लिख सकता है. अगर डायरेक्ट्री मौजूद नहीं है, तो उसे बनाया जाएगा.
--embed_label=<a one-line string>default: ""-
सोर्स कंट्रोल के वर्शन या रिलीज़ लेबल को बाइनरी में एम्बेड करना
--execution_log_binary_file=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
इस फ़ाइल में, src/main/protobuf/spawn.proto के मुताबिक, एक्ज़ीक्यूट किए गए स्पॉन को लंबाई के हिसाब से सीमा तय किए गए SpawnExec protos के तौर पर लॉग करें. --execution_log_compact_file को प्राथमिकता दें. यह काफ़ी छोटा होता है और इसे जनरेट करने में कम खर्च आता है. इससे जुड़े फ़्लैग: --execution_log_compact_file (कॉम्पैक्ट फ़ॉर्मैट; एक-दूसरे से अलग), --execution_log_json_file (टेक्स्ट JSON फ़ॉर्मैट; एक-दूसरे से अलग), --execution_log_sort (एक्ज़ीक्यूशन लॉग को क्रम से लगाना है या नहीं), --subcommands (टर्मिनल आउटपुट में सब-कमांड दिखाने के लिए).
--execution_log_compact_file=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
इस फ़ाइल में, एक्ज़ीक्यूट किए गए स्पॉन को लंबाई के हिसाब से सीमा तय किए गए ExecLogEntry प्रोटो के तौर पर लॉग करें. इसके लिए, src/main/protobuf/spawn.proto के निर्देशों का पालन करें. पूरी फ़ाइल को zstd फ़ॉर्मैट में कंप्रेस किया गया है. इससे जुड़े फ़्लैग: --execution_log_binary_file (बाइनरी प्रोटोबफ़ फ़ॉर्मैट; एक-दूसरे से अलग), --execution_log_json_file (टेक्स्ट JSON फ़ॉर्मैट; एक-दूसरे से अलग), --subcommands (टर्मिनल आउटपुट में सब-कमांड दिखाने के लिए).
--execution_log_json_file=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
इस फ़ाइल में, src/main/protobuf/spawn.proto के मुताबिक, SpawnExec protos के न्यूलाइन-डीलिमिटेड JSON फ़ॉर्मैट के तौर पर, एक्ज़ीक्यूट किए गए स्पॉन को लॉग करें. --execution_log_compact_file को प्राथमिकता दें. यह काफ़ी छोटा होता है और इसे जनरेट करने में कम खर्च आता है. इससे जुड़े फ़्लैग: --execution_log_compact_file (कॉम्पैक्ट फ़ॉर्मैट; एक-दूसरे से अलग), --execution_log_binary_file (बाइनरी protobuf फ़ॉर्मैट; एक-दूसरे से अलग), --execution_log_sort (एक्ज़ीक्यूशन लॉग को क्रम से लगाना है या नहीं), --subcommands (टर्मिनल आउटपुट में सब-कमांड दिखाने के लिए).
--[no]execution_log_sortdefault: "true"-
क्या एक्ज़ीक्यूशन लॉग को क्रम से लगाना है, ताकि अलग-अलग इनवोकेशन के लॉग की तुलना करना आसान हो. इस विकल्प को false पर सेट करने से, इनवॉकेशन के आखिर में सीपीयू और मेमोरी का इस्तेमाल कम हो जाता है. हालांकि, इससे लॉग को नॉनडिटरमिनिस्टिक एक्ज़ीक्यूशन ऑर्डर में जनरेट किया जाता है. यह सिर्फ़ बाइनरी और JSON फ़ॉर्मैट पर लागू होता है. कॉम्पैक्ट फ़ॉर्मैट को कभी भी क्रम से नहीं लगाया जाता.
--[no]expand_test_suitesdefault: "true"-
विश्लेषण करने से पहले, test_suite टारगेट को उनके कॉम्पोनेंट टेस्ट में बड़ा करें. इस फ़्लैग को चालू करने पर (डिफ़ॉल्ट रूप से चालू होता है), नेगेटिव टारगेट पैटर्न, टेस्ट सुइट से जुड़े टेस्ट पर लागू होंगे. ऐसा न करने पर, वे लागू नहीं होंगे. इस फ़्लैग को बंद करने से, कमांड लाइन पर टॉप-लेवल के पहलुओं को लागू करने में मदद मिलती है. इसके बाद, वे test_suite टारगेट का विश्लेषण कर सकते हैं.
टैग:
loading_and_analysis --experimental_disk_cache_gc_idle_delay=<An immutable length of time.>default: "5m"-
डिस्क कैश मेमोरी की गार्बेज कलेक्शन की प्रोसेस शुरू होने से पहले, सर्वर को कितने समय तक बंद रहना चाहिए. कचरा इकट्ठा करने की नीति तय करने के लिए, --experimental_disk_cache_gc_max_size और/या --experimental_disk_cache_gc_max_age सेट करें.
--experimental_disk_cache_gc_max_age=<An immutable length of time.>default: "0"-
अगर इसे पॉज़िटिव वैल्यू पर सेट किया जाता है, तो डिस्क कैश मेमोरी से समय-समय पर ऐसी एंट्री हटा दी जाएंगी जो इस वैल्यू से ज़्यादा पुरानी हैं. अगर इसे --experimental_disk_cache_gc_max_size के साथ सेट किया जाता है, तो दोनों शर्तें लागू होती हैं. सर्वर के निष्क्रिय होने के बाद, बैकग्राउंड में गार्बेज कलेक्शन होता है. सर्वर के निष्क्रिय होने का समय, --experimental_disk_cache_gc_idle_delay फ़्लैग से तय होता है.
--experimental_disk_cache_gc_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>default: "0"-
अगर इसे पॉज़िटिव वैल्यू पर सेट किया जाता है, तो डिस्क कैश को समय-समय पर रीसाइकल किया जाएगा, ताकि यह इस साइज़ से ज़्यादा न हो. अगर इसे --experimental_disk_cache_gc_max_age के साथ सेट किया जाता है, तो दोनों शर्तें लागू होती हैं. सर्वर के निष्क्रिय होने के बाद, बैकग्राउंड में गार्बेज कलेक्शन होता है. सर्वर के निष्क्रिय होने का समय, --experimental_disk_cache_gc_idle_delay फ़्लैग से तय होता है.
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: ""-
इसे पहलुओं के लिए बंद कर दिया गया है. यह फ़िल्टर, टारगेट का ऐसा सेट बनाता है जिसके लिए extra_actions को शेड्यूल किया जा सकता है.
--[no]experimental_extra_action_top_level_onlydefault: "false"-
इसे पहलुओं के लिए बंद कर दिया गया है. यह सिर्फ़ टॉप लेवल के टारगेट के लिए extra_actions शेड्यूल करता है.
--experimental_spawn_scheduler-
कार्रवाइयों को स्थानीय और रिमोट तौर पर एक साथ चलाकर, डाइनैमिक तरीके से एक्ज़ीक्यूट करने की सुविधा चालू करें. Bazel, हर कार्रवाई को स्थानीय और रिमोट, दोनों जगहों पर शुरू करता है. इसके बाद, वह उस कार्रवाई को चुनता है जो सबसे पहले पूरी होती है. अगर किसी कार्रवाई के लिए वर्कर की ज़रूरत होती है, तो स्थानीय कार्रवाई को पर्सिस्टेंट वर्कर मोड में चलाया जाएगा. किसी कार्रवाई के लिए डाइनैमिक तरीके से एक्ज़ीक्यूशन की सुविधा चालू करने के लिए,
--internal_spawn_schedulerऔर--strategy=<mnemonic>=dynamicफ़्लैग का इस्तेमाल करें. --[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--local_termination_grace_seconds=<an integer>default: "15"-
टाइम आउट होने की वजह से किसी लोकल प्रोसेस को बंद करने और उसे ज़बरदस्ती बंद करने के बीच इंतज़ार करने का समय.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
--test_lang_filters=<comma-separated list of options>default: ""-
यह कॉमा लगाकर अलग की गई टेस्ट भाषाओं की सूची तय करता है. हर भाषा से पहले '-' का इस्तेमाल करके, उन भाषाओं के बारे में बताया जा सकता है जिन्हें शामिल नहीं किया गया है. सिर्फ़ वे टेस्ट टारगेट मिलेंगे जो बताई गई भाषाओं में लिखे गए हैं. हर भाषा के लिए इस्तेमाल किया गया नाम, *_test नियम में भाषा के प्रीफ़िक्स के जैसा होना चाहिए. उदाहरण के लिए, 'cc', 'java', 'py' वगैरह. इस विकल्प से, --build_tests_only के व्यवहार और टेस्ट कमांड पर असर पड़ता है.
--test_size_filters=<comma-separated list of values: small, medium, large, or enormous>default: ""-
यह विकल्प, टेस्ट के साइज़ की कॉमा लगाकर अलग की गई सूची तय करता है. हर साइज़ से पहले '-' का इस्तेमाल करके, उन साइज़ के बारे में बताया जा सकता है जिन्हें शामिल नहीं करना है. हालांकि, ऐसा करना ज़रूरी नहीं है. सिर्फ़ वे टेस्ट टारगेट मिलेंगे जिनमें कम से कम एक साइज़ शामिल हो और कोई भी साइज़ शामिल न हो. इस विकल्प से, --build_tests_only के व्यवहार और टेस्ट कमांड पर असर पड़ता है.
--test_tag_filters=<comma-separated list of options>default: ""-
यह कॉमा लगाकर अलग किए गए टेस्ट टैग की सूची तय करता है. जिन टैग को शामिल नहीं करना है उन्हें तय करने के लिए, हर टैग से पहले '-' का इस्तेमाल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है. सिर्फ़ वे टेस्ट टारगेट मिलेंगे जिनमें कम से कम एक शामिल किया गया टैग हो और कोई भी बाहर रखा गया टैग न हो. इस विकल्प से, --build_tests_only के व्यवहार और टेस्ट कमांड पर असर पड़ता है.
--test_timeout_filters=<comma-separated list of values: short, moderate, long, or eternal>default: ""-
यह सेटिंग, टेस्ट के टाइम आउट की कॉमा लगाकर अलग की गई सूची तय करती है. हर टाइमआउट से पहले '-' का इस्तेमाल करके, बाहर रखे गए टाइमआउट के बारे में बताया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है. सिर्फ़ वे टेस्ट टारगेट मिलेंगे जिनमें कम से कम एक टाइमआउट शामिल हो और कोई भी टाइमआउट शामिल न हो. इस विकल्प से, --build_tests_only के व्यवहार और टेस्ट कमांड पर असर पड़ता है.
--workspace_status_command=<path>default: ""-
यह एक कमांड है, जिसे बिल्ड की शुरुआत में लागू किया जाता है. इससे की/वैल्यू पेयर के तौर पर, वर्कस्पेस की स्थिति के बारे में जानकारी मिलती है. पूरी जानकारी के लिए, उपयोगकर्ता का मैन्युअल देखें. उदाहरण के लिए, tools/buildstamp/get_workspace_status भी देखें.
- बिल्ड के एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_persistent_aar_extractordefault: "false"-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट एएआर एक्सट्रैक्टर चालू करें.
टैग:
execution,experimental --[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_split_coverage_postprocessingdefault: "false"-
सही होने पर, Bazel एक नए स्पॉन में टेस्ट के लिए कवरेज पोस्टप्रोसेसिंग चलाएगा.
टैग:
execution,experimental --[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--persistent_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार चालू करें.
बढ़कर:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker --persistent_android_resource_processor-
वर्कर्स का इस्तेमाल करके, Android रिसॉर्स प्रोसेसर को लगातार चालू रखने की सुविधा चालू करें.
इनमें बदल जाता है:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker --persistent_multiplex_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार कई बार चलाने की सुविधा चालू करें.
बढ़कर:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar --persistent_multiplex_android_resource_processor-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट मल्टीप्लेक्स किए गए Android रिसॉर्स प्रोसेसर को चालू करें.
बढ़कर:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers --persistent_multiplex_android_tools-
Android के लगातार काम करने वाले और मल्टीप्लेक्स किए गए टूल (dexing, desugaring, resource processing) चालू करें.
बढ़कर:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar --[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--android_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Android टारगेट कंपाइलर.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_manifest_merger=<legacy, android or force_android>डिफ़ॉल्ट: "android"-
android_binary नियमों के लिए, मेनिफ़ेस्ट मर्जर को चुनता है. यह फ़्लैग, लेगसी मर्जर से Android मेनिफ़ेस्ट मर्जर पर ट्रांज़िशन करने में मदद करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_platforms=<a build target label>default: ""-
यह विकल्प उन प्लैटफ़ॉर्म को सेट करता है जिनका इस्तेमाल android_binary टारगेट करते हैं. अगर एक से ज़्यादा प्लैटफ़ॉर्म तय किए गए हैं, तो बाइनरी एक फ़ैट APK है. इसमें हर टारगेट प्लैटफ़ॉर्म के लिए नेटिव बाइनरी शामिल होती हैं.
टैग:
changes_inputs,loading_and_analysis,loses_incremental_state --cc_output_directory_tag=<a string>default: ""-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
affects_outputs --compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट को कंपाइल करने के लिए, C++ कंपाइलर.
--coverage_output_generator=<a build target label>default: "@bazel_tools//tools/test:lcov_merger"-
उस बाइनरी का पाथ जिसका इस्तेमाल, रॉ कवरेज रिपोर्ट को पोस्टप्रोसेस करने के लिए किया जाता है. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:lcov_merger' होती है.
--coverage_report_generator=<a build target label>default: "@bazel_tools//tools/test:coverage_report_generator"-
कवरेज रिपोर्ट जनरेट करने के लिए इस्तेमाल किए गए बाइनरी की जगह. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:coverage_report_generator' होती है.
--coverage_support=<a build target label>default: "@bazel_tools//tools/test:coverage_support"-
सहायता देने वाली फ़ाइलों की जगह. ये फ़ाइलें, कोड कवरेज की जानकारी इकट्ठा करने वाली हर टेस्ट कार्रवाई के इनपुट के लिए ज़रूरी होती हैं. डिफ़ॉल्ट रूप से, यह '//tools/test:coverage_support' पर सेट होती है.
--custom_malloc=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, malloc को लागू करने का कस्टम तरीका तय करता है. यह सेटिंग, बिल्ड के नियमों में malloc एट्रिब्यूट को बदल देती है.
--[no]experimental_include_xcode_execution_requirementsdefault: "false"-
अगर सेट है, तो हर Xcode ऐक्शन में "requires-xcode:{version}" एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें. अगर Xcode के वर्शन में हाइफ़न वाला लेबल है, तो "requires-xcode-label:{version_label}" के तौर पर भी एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें.
टैग:
loses_incremental_state,loading_and_analysis,execution,experimental --[no]experimental_prefer_mutual_xcodedefault: "true"-
अगर यह नीति 'सही है' पर सेट है, तो स्थानीय और रिमोट, दोनों जगहों पर उपलब्ध Xcode के सबसे नए वर्शन का इस्तेमाल करें. अगर यह गलत है या दोनों के लिए कोई भी वर्शन उपलब्ध नहीं है, तो xcode-select के ज़रिए चुने गए Xcode के लोकल वर्शन का इस्तेमाल करें.
--extra_execution_platforms=<comma-separated list of options>default: ""-
कार्रवाइयां करने के लिए, इन प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. प्लेटफ़ॉर्म को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. register_execution_platforms() में बताए गए प्लैटफ़ॉर्म से पहले, इन प्लैटफ़ॉर्म पर विचार किया जाएगा. इस विकल्प को सिर्फ़ एक बार सेट किया जा सकता है. बाद में, फ़्लैग की सेटिंग पहले की सेटिंग को बदल देंगी.
टैग:
execution --extra_toolchains=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
टूलचेन के नियमों को टूलचेन रिज़ॉल्यूशन के दौरान ध्यान में रखा जाना चाहिए. टूलचेन को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. इन टूलचेन को, register_toolchains() फ़ंक्शन के ज़रिए WORKSPACE फ़ाइल में बताए गए टूलचेन से पहले माना जाएगा.
--grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
चेक-इन की गई libc लाइब्रेरी का लेबल. डिफ़ॉल्ट वैल्यू को क्रॉसटूल टूलचेन चुनता है. आपको इसे बदलने की ज़रूरत शायद ही कभी पड़ती है.
--host_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह फ़्लैग कोई कार्रवाई नहीं करता. आने वाले समय में रिलीज़ होने वाले वर्शन में इसे हटा दिया जाएगा.
--host_grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेटिंग तय की जाती है, तो यह exec कॉन्फ़िगरेशन के लिए, libc की टॉप-लेवल डायरेक्ट्री (--grte_top) को बदल देती है.
--host_platform=<a build target label>default: "@bazel_tools//tools:host_platform"-
होस्ट सिस्टम की जानकारी देने वाले प्लैटफ़ॉर्म के नियम का लेबल.
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
--[no]incompatible_builtin_objc_strip_actiondefault: "true"-
objc लिंकिंग के हिस्से के तौर पर स्ट्रिप ऐक्शन को चालू करना है या नहीं.
--[no]incompatible_dont_enable_host_nonhost_crosstool_featuresdefault: "true"-
अगर यह सही है, तो Bazel, C++ टूलचेन में 'होस्ट' और 'नॉनहोस्ट' सुविधाएं चालू नहीं करेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7407 देखें.
--[no]incompatible_enable_apple_toolchain_resolutiondefault: "false"-
ऐपल के नियमों (Starlark और नेटिव) के लिए Apple SDK टूल चुनने के लिए, टूलचेन रिज़ॉल्यूशन का इस्तेमाल करें
--[no]incompatible_remove_legacy_whole_archivedefault: "true"-
अगर यह विकल्प चालू है, तो Bazel डिफ़ॉल्ट रूप से लाइब्रेरी की डिपेंडेंसी को पूरे संग्रह के तौर पर लिंक नहीं करेगा. माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/7362 देखें.
--[no]incompatible_strip_executable_safelydefault: "false"-
अगर यह सही है, तो एक्ज़ीक्यूटेबल के लिए स्ट्रिप ऐक्शन, -x फ़्लैग का इस्तेमाल करेगा. इससे डाइनैमिक सिंबल रिज़ॉल्यूशन नहीं टूटेगा.
-
अगर टूलचेन में इंटरफ़ेस शेयर किए गए ऑब्जेक्ट इस्तेमाल करने की सुविधा है, तो उनका इस्तेमाल करें. फ़िलहाल, सभी ईएलएफ़ टूलचेन इस सेटिंग के साथ काम करते हैं.
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
इससे iOS ऐप्लिकेशन बनाने के लिए, iOS SDK के वर्शन के बारे में पता चलता है. यह जानकारी उपलब्ध न होने पर, 'xcode_version' से iOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
macOS ऐप्लिकेशन बनाने के लिए, macOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से macOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--minimum_os_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
ओएस का वह कम से कम वर्शन जिसे कंपाइल करने के लिए टारगेट किया गया है.
--platform_mappings=<a main workspace-relative path>default: ""-
मैपिंग फ़ाइल की जगह. इससे यह पता चलता है कि अगर कोई प्लैटफ़ॉर्म सेट नहीं है, तो कौनसा प्लैटफ़ॉर्म इस्तेमाल करना है. साथ ही, अगर कोई प्लैटफ़ॉर्म पहले से मौजूद है, तो कौनसा फ़्लैग सेट करना है. यह मुख्य वर्कस्पेस रूट के हिसाब से होना चाहिए. डिफ़ॉल्ट रूप से, यह 'platform_mappings' पर सेट होता है. यह फ़ाइल, वर्कस्पेस के रूट फ़ोल्डर में मौजूद होती है.
टैग:
affects_outputs,changes_inputs,loading_and_analysis,non_configurable --platforms=<a build target label>default: ""-
प्लैटफ़ॉर्म के नियमों के लेबल. इनसे मौजूदा कमांड के लिए टारगेट प्लैटफ़ॉर्म के बारे में पता चलता है.
--python_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट प्लैटफ़ॉर्म पर Python टारगेट चलाने के लिए, Python इंटरप्रेटर का ऐब्सलूट पाथ. अब काम नहीं करता; --incompatible_use_python_toolchains फ़्लैग की वजह से बंद है.
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
यह tvOS ऐप्लिकेशन बनाने के लिए, tvOS SDK टूल के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से tvOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--[no]use_platforms_in_apple_crosstool_transitiondefault: "false"-
इससे apple_crosstool_transition, ज़रूरत पड़ने पर लेगसी
--cpuके बजाय--platformsफ़्लैग की वैल्यू का इस्तेमाल करता है.टैग:
loading_and_analysis --watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
watchOS ऐप्लिकेशन बनाने के लिए, watchOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से watchOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो यह बिल्ड से जुड़ी कार्रवाइयों के लिए, दिए गए वर्शन के Xcode का इस्तेमाल करता है. अगर यह विकल्प नहीं दिया जाता है, तो Xcode के एक्ज़ीक्यूटर के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version_config=<a build target label>default: "@bazel_tools//tools/cpp:host_xcodes"-
यह xcode_config नियम का लेबल है. इसका इस्तेमाल, बिल्ड कॉन्फ़िगरेशन में Xcode का वर्शन चुनने के लिए किया जाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]apple_generate_dsymdefault: "false"-
डीबग सिंबल (.dSYM) फ़ाइलें जनरेट करनी हैं या नहीं.
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]build_test_dwpdefault: "false"-
अगर यह सुविधा चालू है, तो C++ टेस्ट को स्टैटिक तौर पर और फ़िशन के साथ बनाने पर, टेस्ट बाइनरी के लिए .dwp फ़ाइल भी अपने-आप बन जाएगी.
--cc_proto_library_header_suffixes=<comma-separated set of options>default: ".pb.h"-
यह विकल्प, cc_proto_library से बनाई गई हेडर फ़ाइलों के सफ़िक्स सेट करता है.
--cc_proto_library_source_suffixes=<comma-separated set of options>default: ".pb.cc"-
यह विकल्प, उन सोर्स फ़ाइलों के सफ़िक्स सेट करता है जिन्हें cc_proto_library बनाता है.
--[no]experimental_proto_descriptor_sets_include_source_infodefault: "false"-
proto_library में, Java API के अन्य वर्शन के लिए अतिरिक्त कार्रवाइयां चलाएं.
--[no]experimental_save_feature_statedefault: "false"-
इस कुकी का इस्तेमाल, चालू की गई और अनुरोध की गई सुविधाओं की स्थिति को कंपाइल करने के आउटपुट के तौर पर सेव करने के लिए किया जाता है.
टैग:
affects_outputs,experimental --fission=<a set of compilation modes>default: "no"-
इससे यह तय होता है कि C++ कंपाइलेशन और लिंक के लिए, फ़िशन का इस्तेमाल कौनसे कंपाइलेशन मोड करते हैं. यह {'fastbuild', 'dbg', 'opt'} का कोई भी कॉम्बिनेशन हो सकता है. इसके अलावा, सभी मोड चालू करने के लिए 'yes' और सभी मोड बंद करने के लिए 'no' जैसी खास वैल्यू भी इस्तेमाल की जा सकती हैं.
टैग:
loading_and_analysis,action_command_lines,affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change --[no]objc_generate_linkmapdefault: "false"-
इससे यह तय होता है कि लिंकमैप फ़ाइल जनरेट करनी है या नहीं.
टैग:
affects_outputs --[no]save_tempsdefault: "false"-
अगर यह सेट है, तो gcc से मिले कुछ समय के लिए आउटपुट सेव किए जाएंगे. इनमें .s फ़ाइलें (असेंबलर कोड), .i फ़ाइलें (प्रीप्रोसेस्ड C), और .ii फ़ाइलें (प्रीप्रोसेस्ड C++) शामिल हैं.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]android_databinding_use_androidxdefault: "true"-
AndroidX के साथ काम करने वाली डेटा-बाइंडिंग फ़ाइलें जनरेट करें. इसका इस्तेमाल सिर्फ़ databinding v2 के साथ किया जाता है. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]android_databinding_use_v3_4_argsdefault: "true"-
3.4.0 आर्ग्युमेंट के साथ android databinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --android_dynamic_mode=<off, default or fully>default: "off"-
इससे यह तय होता है कि जब cc_binary, शेयर की गई लाइब्रेरी को साफ़ तौर पर नहीं बनाता है, तो Android नियमों की C++ डिपेंडेंसी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तौर पर लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>default: "alphabetical"-
यह विकल्प, Android बाइनरी के लिए मेनिफ़ेस्ट मर्जर को पास किए गए मेनिफ़ेस्ट का क्रम सेट करता है. ALPHABETICAL का मतलब है कि मेनिफ़ेस्ट को execroot के हिसाब से पाथ के हिसाब से क्रम में लगाया जाता है. ALPHABETICAL_BY_CONFIGURATION का मतलब है कि मेनिफ़ेस्ट को आउटपुट डायरेक्ट्री में कॉन्फ़िगरेशन डायरेक्ट्री के हिसाब से पाथ के हिसाब से क्रम से लगाया जाता है. DEPENDENCY का मतलब है कि मेनिफ़ेस्ट को इस तरह से क्रम में लगाया जाता है कि हर लाइब्रेरी का मेनिफ़ेस्ट, उसकी डिपेंडेंसी के मेनिफ़ेस्ट से पहले आता है.
--[no]android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]build_python_zipdefault: "auto"-
Python एक्ज़ीक्यूटेबल ज़िप बनाएं; Windows पर चालू और अन्य प्लैटफ़ॉर्म पर बंद
टैग:
affects_outputs --catalyst_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ऐसी सूची जिसमें कॉमा लगाकर उन आर्किटेक्चर को अलग किया गया हो जिनके लिए Apple Catalyst बाइनरी बनानी हैं.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
C सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--copt=<a string>कई बार इस्तेमाल किया गया हो-
gcc को पास करने के लिए अतिरिक्त विकल्प.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--cs_fdo_absolute_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, सीएसएफ़डीओ प्रोफ़ाइल की जानकारी का इस्तेमाल करें. प्रोफ़ाइल फ़ाइल, रॉ या इंडेक्स की गई LLVM प्रोफ़ाइल फ़ाइल वाली ZIP फ़ाइल का पूरा पाथ नेम डालें.
टैग:
affects_outputs --cs_fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कॉन्टेक्स्ट के हिसाब से संवेदनशील FDO इंस्ट्रुमेंटेशन के साथ बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --cs_fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
cs_fdo_profile, कॉन्टेक्स्ट के हिसाब से काम करने वाली प्रोफ़ाइल को दिखाता है. इसका इस्तेमाल ऑप्टिमाइज़ेशन के लिए किया जाता है.
टैग:
affects_outputs --cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--dynamic_mode=<off, default or fully>default: "default"-
इससे यह तय होता है कि C++ बाइनरी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तरीके से लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--[no]enable_propeller_optimize_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो Propeller Optimize के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी होगी.
टैग:
affects_outputs --[no]enable_remaining_fdo_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो FDO के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी दिखेगी.
टैग:
affects_outputs --[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_android_compress_java_resourcesdefault: "false"-
APK में Java संसाधनों को कंप्रेस करना
--[no]experimental_android_databinding_v2default: "true"-
Android DataBinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]experimental_android_rewrite_dexes_with_rexdefault: "false"-
dex फ़ाइलों को फिर से लिखने के लिए, rex टूल का इस्तेमाल करें
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_objc_fastbuild_options=<comma-separated list of options>default: "-O0,-DDEBUG=1"-
इन स्ट्रिंग का इस्तेमाल, objc fastbuild कंपाइलर के विकल्पों के तौर पर करता है.
टैग:
action_command_lines --[no]experimental_omitfpdefault: "false"-
अगर सही है, तो स्टैक अनवाइंडिंग के लिए libunwind का इस्तेमाल करें. साथ ही, -fomit-frame-pointer और -fasynchronous-unwind-tables के साथ कंपाइल करें.
--experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_py_binaries_include_labeldefault: "false"-
py_binary टारगेट में उनका लेबल शामिल होता है. भले ही, स्टैंपिंग की सुविधा बंद हो.
टैग:
affects_outputs,experimental --[no]experimental_use_llvm_covmapdefault: "false"-
अगर ऐसा तय किया गया है, तो collect_code_coverage चालू होने पर Bazel, gcov के बजाय llvm-cov कवरेज मैप की जानकारी जनरेट करेगा.
टैग:
changes_inputs,affects_outputs,loading_and_analysis,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
एफ़डीओ इंस्ट्रुमेंटेशन की मदद से बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --fdo_optimize=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, FDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. .gcda फ़ाइल ट्री वाली zip फ़ाइल, ऑटो प्रोफ़ाइल वाली afdo फ़ाइल या LLVM प्रोफ़ाइल फ़ाइल का नाम डालें. यह फ़्लैग, लेबल के तौर पर तय की गई फ़ाइलों को भी स्वीकार करता है.जैसे,
//foo/bar:file.afdo- आपको हो सकता है कि इससे जुड़े पैकेज में//foo/bar:file.afdoडायरेक्टिव जोड़ना पड़े. साथ ही, यहfdo_profileटारगेट की ओर इशारा करने वाले लेबल को भी स्वीकार करता है.exports_filesयह फ़्लैग,fdo_profileनियम की जगह लागू होगा.टैग:
affects_outputs --fdo_prefetch_hints=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कैश मेमोरी प्रीफ़ेच के लिए, हिंट का इस्तेमाल करें.
टैग:
affects_outputs --fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
fdo_profile, ऑप्टिमाइज़ेशन के लिए इस्तेमाल की जाने वाली प्रोफ़ाइल को दिखाता है.
टैग:
affects_outputs --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--[no]force_picdefault: "false"-
इस विकल्प के चालू होने पर, सभी C++ कंपाइलेशन, पोज़िशन-इंडिपेंडेंट कोड ("-fPIC") जनरेट करते हैं. साथ ही, लिंक, नॉन-पीआईसी लाइब्रेरी के बजाय पीआईसी प्री-बिल्ट लाइब्रेरी को प्राथमिकता देते हैं. इसके अलावा, लिंक, पोज़िशन-इंडिपेंडेंट एक्ज़ीक्यूटेबल ("-pie") जनरेट करते हैं.
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
यह एक अतिरिक्त विकल्प है. इसका इस्तेमाल, exec कॉन्फ़िगरेशन में C सोर्स फ़ाइलों को कंपाइल करते समय C कंपाइलर को पास करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल C++ सोर्स फ़ाइलों के लिए नहीं किया जा सकता.
--host_copt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C++ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--host_linkopt=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में टूल लिंक करते समय, लिंकर को पास करने का अतिरिक्त विकल्प.
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
होस्ट टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में कुछ फ़ाइलों को कंपाइल करते समय, C/C++ कंपाइलर को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --host_per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों के gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, iOS का कम से कम ज़रूरी वर्शन. अगर यह जानकारी नहीं दी गई है, तो 'ios_sdk_version' का इस्तेमाल किया जाता है.
--ios_multi_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ios_application बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. नतीजा एक यूनिवर्सल बाइनरी होती है, जिसमें सभी आर्किटेक्चर शामिल होते हैं.
--[no]legacy_whole_archivedefault: "true"-
यह विकल्प अब काम नहीं करता. इसकी जगह --incompatible_remove_legacy_whole_archive का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7362 पर जाएं. चालू होने पर, cc_binary नियमों के लिए --whole-archive का इस्तेमाल करें. इन नियमों में linkshared=True और linkopts में linkstatic=True या '-static' होना चाहिए. यह सिर्फ़ पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके बजाय, हमेशा लिंक करने की सुविधा (alwayslink=1) का इस्तेमाल करना बेहतर विकल्प है.
--linkopt=<a string>कई बार इस्तेमाल किया गया हो-
लिंक करते समय gcc को पास करने का अतिरिक्त विकल्प.
--ltobackendopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ बैकएंड के चरण में पास करने का अतिरिक्त विकल्प (under --features=thin_lto).
--ltoindexopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ इंडेक्सिंग के चरण में पास करने के लिए अतिरिक्त विकल्प (--features=thin_lto के तहत).
--macos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
Apple macOS के बाइनरी फ़ाइलें बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची.
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--memprof_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
memprof प्रोफ़ाइल का इस्तेमाल करें.
टैग:
affects_outputs --[no]objc_debug_with_GLIBCXXdefault: "false"-
अगर इसे सेट किया गया है और कंपाइलेशन मोड को 'dbg' पर सेट किया गया है, तो GLIBCXX_DEBUG, GLIBCXX_DEBUG_PEDANTIC, और GLIBCPP_CONCEPT_CHECKS को तय करें.
टैग:
action_command_lines --[no]objc_enable_binary_strippingdefault: "false"-
लिंक की गई बाइनरी पर सिंबल और डेड-कोड स्ट्रिपिंग की जानी चाहिए या नहीं. अगर इस फ़्लैग और --compilation_mode=opt, दोनों को सेट किया जाता है, तो बाइनरी स्ट्रिपिंग की जाएगी.
टैग:
action_command_lines --objccopt=<a string>कई बार इस्तेमाल किया गया हो-
Objective-C/C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने के लिए अतिरिक्त विकल्प.
टैग:
action_command_lines --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ फ़ाइलों को कंपाइल करते समय, gcc को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों की gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ बैकएंड ऑब्जेक्ट को कंपाइल करते समय, LTO बैकएंड (under --features=thin_lto) को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_ltobackendopt=//foo/.*.o,-//foo/bar.o@-O0, //foo/ में मौजूद bar.o को छोड़कर, सभी o फ़ाइलों के LTO बैकएंड कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --propeller_optimize=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
बिल्ड टारगेट को ऑप्टिमाइज़ करने के लिए, Propeller की प्रोफ़ाइल की जानकारी का इस्तेमाल करें. Propeller की प्रोफ़ाइल में, कम से कम दो फ़ाइलों में से एक फ़ाइल होनी चाहिए. ये फ़ाइलें, सीसी प्रोफ़ाइल और एलडी प्रोफ़ाइल हैं. यह फ़्लैग, बिल्ड लेबल स्वीकार करता है. यह लेबल, प्रोपेलर प्रोफ़ाइल की इनपुट फ़ाइलों का रेफ़रंस देता है. उदाहरण के लिए, a/b/BUILD में मौजूद BUILD फ़ाइल, लेबल को इस तरह से तय करती है:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Bazel को ये फ़ाइलें दिखाने के लिए, हो सकता है कि आपको संबंधित पैकेज में exports_files डायरेक्टिव जोड़ना पड़े. इस विकल्प का इस्तेमाल इस तरह किया जाना चाहिए: --propeller_optimize=//a/b:propeller_profile
--propeller_optimize_absolute_cc_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए cc_profile फ़ाइल का पूरा पाथ.
टैग:
affects_outputs --propeller_optimize_absolute_ld_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए, ld_profile फ़ाइल का ऐब्सलूट पाथ.
टैग:
affects_outputs --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines -
अगर यह विकल्प चुना जाता है, तो एक जैसी सुविधा देने वाली नेटिव लाइब्रेरी को अलग-अलग टारगेट के साथ शेयर किया जाएगा
--[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs --strip=<always, sometimes or never>डिफ़ॉल्ट: "कभी-कभी"-
इससे यह तय किया जाता है कि बाइनरी और शेयर की गई लाइब्रेरी को स्ट्रिप करना है या नहीं. इसके लिए, "-Wl,--strip-debug" का इस्तेमाल किया जाता है. 'sometimes' की डिफ़ॉल्ट वैल्यू का मतलब है कि --compilation_mode=fastbuild होने पर ही स्ट्रिप करें.
टैग:
affects_outputs --stripopt=<a string>कई बार इस्तेमाल किया गया हो-
'<name>.stripped' बाइनरी जनरेट करते समय, स्ट्रिप को पास करने के लिए अतिरिक्त विकल्प.
--tvos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. इनके लिए Apple tvOS बाइनरी बनानी हैं.
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, tvOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'tvos_sdk_version' का इस्तेमाल किया जाता है.
--visionos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन आर्किटेक्चर की सूची जिनके लिए Apple visionOS बाइनरी बनानी हैं.
--watchos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई, उन आर्किटेक्चर की सूची जिनके लिए Apple watchOS बाइनरी बनानी हैं.
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, watchOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'watchos_sdk_version' का इस्तेमाल किया जाता है.
--xbinary_fdo=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, XbinaryFDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. डिफ़ॉल्ट क्रॉस बाइनरी प्रोफ़ाइल का नाम तय करें. इस विकल्प का इस्तेमाल --fdo_instrument/--fdo_optimize/--fdo_profile के साथ करने पर, उन विकल्पों को हमेशा प्राथमिकता दी जाएगी. ऐसा माना जाएगा कि xbinary_fdo को कभी भी तय नहीं किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]desugar_for_androiddefault: "true"-
यह तय करता है कि Java 8 के बाइटकोड को dexing से पहले desugar करना है या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]desugar_java8_libsdefault: "false"-
लेगसी डिवाइसों के लिए बनाए गए ऐप्लिकेशन में, Java 8 की सुविधा वाली लाइब्रेरी शामिल करनी हैं या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_check_desugar_depsdefault: "true"-
Android बाइनरी लेवल पर, सही डिसुगरिंग की दोबारा जांच करनी है या नहीं.
--[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--experimental_one_version_enforcement=<off, warning or error>default: "OFF"-
इस विकल्प को चालू करने पर, यह लागू किया जाता है कि java_binary नियम में क्लासपाथ पर एक ही क्लास फ़ाइल का एक से ज़्यादा वर्शन नहीं हो सकता. इस नीति के उल्लंघन को लागू करने से, बिल्ड में गड़बड़ी हो सकती है या सिर्फ़ चेतावनियां मिल सकती हैं.
टैग:
loading_and_analysis --experimental_strict_java_deps=<off, warn, error, strict or default>default: "default"-
अगर यह सही है, तो यह जांच करता है कि Java टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]incompatible_disable_native_android_rulesdefault: "false"-
यह नीति चालू होने पर, Android के नेटिव नियमों का सीधे तौर पर इस्तेमाल नहीं किया जा सकेगा. कृपया https://github.com/bazelbuild/rules_android पर जाकर, Starlark Android के नियमों का इस्तेमाल करें
--[no]incompatible_disable_native_apple_binary_ruledefault: "false"-
कोई कार्रवाई नहीं. इसे पुराने सिस्टम के साथ काम करने की सुविधा के लिए यहां रखा गया है.
--[no]one_version_enforcement_on_java_testsdefault: "true"-
इसे चालू करने पर और experimental_one_version_enforcement को NONE के अलावा किसी अन्य वैल्यू पर सेट करने पर, java_test टारगेट पर एक वर्शन लागू करें. इस फ़्लैग को बंद किया जा सकता है. इससे, इंक्रीमेंटल टेस्ट की परफ़ॉर्मेंस बेहतर होगी. हालांकि, इससे एक वर्शन के संभावित उल्लंघनों का पता नहीं चल पाएगा.
टैग:
loading_and_analysis --python_native_rules_allowlist=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
--incompatible_python_disallow_native_rules को लागू करते समय इस्तेमाल करने के लिए, अनुमति वाली सूची (package_group टारगेट).
टैग:
loading_and_analysis --[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--strict_proto_deps=<off, warn, error, strict or default>डिफ़ॉल्ट: "error"-
जब तक यह विकल्प बंद नहीं होता, तब तक यह जांच करता है कि proto_library टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --strict_public_imports=<off, warn, error, strict or default>default: "off"-
अगर यह विकल्प बंद नहीं है, तो यह जांच करता है कि proto_library टारगेट, 'import public' में इस्तेमाल किए गए सभी टारगेट को एक्सपोर्ट के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --[no]strict_system_includesdefault: "false"-
अगर यह विकल्प चालू है, तो सिस्टम में शामिल किए गए पाथ (-isystem) से मिले हेडर भी घोषित किए जाने चाहिए.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- ऐसे विकल्प जो किसी बिल्ड के हस्ताक्षर करने के आउटपुट पर असर डालते हैं:
--apk_signing_method=<v1, v2, v1_v2 or v4>डिफ़ॉल्ट: "v1_v2"-
APK पर साइन करने के लिए इस्तेमाल किया जाने वाला तरीका
टैग:
action_command_lines,affects_outputs,loading_and_analysis --[no]device_debug_entitlementsdefault: "true"-
अगर यह नीति सेट है और कंपाइलेशन मोड 'opt' नहीं है, तो हस्ताक्षर करते समय, objc ऐप्लिकेशन में डीबग एनटाइटलमेंट शामिल होंगे.
टैग:
changes_inputs --ios_signing_cert_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
iOS पर हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले सर्टिफ़िकेट का नाम. इसे सेट न करने पर, प्रोविज़निंग प्रोफ़ाइल का इस्तेमाल किया जाएगा. यह सर्टिफ़िकेट की कीचेन आइडेंटिटी प्रेफ़रेंस या सर्टिफ़िकेट के कॉमन नेम का (सबस्ट्रिंग) हो सकता है. यह जानकारी, codesign के मैन पेज (SIGNING IDENTITIES) के मुताबिक है.
टैग:
action_command_lines
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_disallow_sdk_frameworks_attributesdefault: "false"-
अगर सही है, तो objc_library और objc_import में sdk_frameworks और weak_sdk_frameworks एट्रिब्यूट को अनुमति न दें.
--[no]incompatible_objc_alwayslink_by_defaultdefault: "false"-
अगर सही है, तो objc_library और objc_import में alwayslink एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू को सही पर सेट करें.
--[no]incompatible_python_disallow_native_rulesdefault: "false"-
अगर यह विकल्प सही है, तो बिल्ट-इन py_* नियमों का इस्तेमाल करने पर गड़बड़ी होती है. इसके बजाय, rule_python नियमों का इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/17773 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis --[no]break_build_on_parallel_dex2oat_failuredefault: "false"-
अगर यह विकल्प सही है, तो dex2oat की कार्रवाई पूरी न होने पर, टेस्ट रनटाइम के दौरान dex2oat को एक्ज़ीक्यूट करने के बजाय, बिल्ड टूट जाएगा.
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>कई बार इस्तेमाल किया गया हो-
टेस्ट के लिए, संसाधनों की डिफ़ॉल्ट सीमा को बदलें. सही फ़ॉर्मैट <resource>=<value> है. अगर <value> के तौर पर कोई पॉज़िटिव संख्या दी जाती है, तो यह टेस्ट के सभी साइज़ के लिए डिफ़ॉल्ट संसाधनों को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार नंबर दिए जाते हैं, तो वे छोटे, मीडियम, बड़े, और बहुत बड़े टेस्ट साइज़ के लिए, संसाधन की रकम को बदल देंगे. वैल्यू, HOST_RAM/HOST_CPU भी हो सकती हैं. इसके बाद, [-|]<float> (उदाहरण के लिए, memory=HOST_RAM.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4) भी जोड़ा जा सकता है. इस फ़्लैग से तय किए गए डिफ़ॉल्ट टेस्ट संसाधनों को, टैग में बताए गए संसाधनों से बदल दिया जाता है.
--[no]experimental_android_use_parallel_dex2oatdefault: "false"-
android_test को तेज़ करने के लिए, dex2oat का इस्तेमाल करें.
टैग:
loading_and_analysis,host_machine_resource_optimizations,experimental --[no]ios_memleaksdefault: "false"-
ios_test टारगेट में मेमोरी लीक की जांच करने की सुविधा चालू करें.
टैग:
action_command_lines --ios_simulator_device=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर में iOS ऐप्लिकेशन चलाने के दौरान, सिम्युलेट किए जाने वाले डिवाइस का नाम. उदाहरण के लिए, 'iPhone 6'. सिम्युलेटर को जिस मशीन पर चलाया जाएगा उस पर 'xcrun simctl list devicetypes' कमांड चलाकर, डिवाइसों की सूची देखी जा सकती है.
टैग:
test_runner --ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर पर चलाने या टेस्ट करने के लिए, iOS का वर्शन. अगर नियम में कोई टारगेट डिवाइस तय किया गया है, तो ios_test नियमों के लिए इसे अनदेखा कर दिया जाता है.
टैग:
test_runner --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
इससे पता चलता है कि हर टेस्ट को कितनी बार चलाना है. अगर किसी वजह से, इनमें से कोई भी कोशिश पूरी नहीं होती है, तो पूरे टेस्ट को 'टेस्ट पूरा नहीं हुआ' के तौर पर मार्क किया जाता है. आम तौर पर, बताई गई वैल्यू सिर्फ़ एक पूर्णांक होती है. उदाहरण: --runs_per_test=3 से सभी टेस्ट तीन बार चलेंगे. वैकल्पिक सिंटैक्स: regex_filter@runs_per_test. यहां runs_per_test का मतलब पूर्णांक वैल्यू से है. वहीं, regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. उदाहरण: --runs_per_test=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार चलाता है. हालांकि, foo/bar में मौजूद टेस्ट को तीन बार नहीं चलाता. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो टेस्ट सिर्फ़ एक बार चलाया जाता है.
--test_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह विकल्प, टेस्ट रनर एनवायरमेंट में इंजेक्ट किए जाने वाले अतिरिक्त एनवायरमेंट वैरिएबल के बारे में बताता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, इसकी वैल्यू Bazel क्लाइंट एनवायरमेंट से पढ़ी जाएगी. इसके अलावा, इसे <code>name=value</code> पेयर के हिसाब से भी तय किया जा सकता है. पहले से सेट किए गए वैरिएबल को <code>=name</code> के ज़रिए अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है, ताकि कई वैरिएबल तय किए जा सकें. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
टैग:
test_runner --test_timeout=<a single integer or comma-separated list of 4 integers>default: "-1"-
जांच के टाइम आउट के लिए, जांच के टाइम आउट की डिफ़ॉल्ट वैल्यू (सेकंड में) बदलें. अगर एक पॉज़िटिव पूर्णांक वैल्यू दी जाती है, तो यह सभी कैटगरी को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार पूर्णांक दिए जाते हैं, तो वे छोटे, सामान्य, लंबे, और हमेशा के लिए (इसी क्रम में) टाइम आउट को बदल देंगे. दोनों फ़ॉर्म में, -1 वैल्यू से Blaze को उस कैटगरी के लिए डिफ़ॉल्ट टाइमआउट का इस्तेमाल करने के लिए कहा जाता है.
--[no]zip_undeclared_test_outputsdefault: "false"-
सही होने पर, टेस्ट के ऐसे आउटपुट को zip फ़ाइल में संग्रहित किया जाएगा जिनके बारे में जानकारी नहीं दी गई है.
टैग:
test_runner
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--[no]experimental_filter_library_jar_with_program_jardefault: "false"-
ProGuard ProgramJar को फ़िल्टर करें, ताकि LibraryJar में मौजूद सभी क्लास हट जाएं.
--[no]experimental_inmemory_dotd_filesdefault: "true"-
अगर यह सुविधा चालू है, तो C++ .d फ़ाइलें सीधे तौर पर रिमोट बिल्ड नोड से मेमोरी में पास की जाएंगी. इन्हें डिस्क में नहीं लिखा जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_inmemory_jdeps_filesdefault: "true"-
अगर यह सुविधा चालू है, तो Java कंपाइलेशन से जनरेट हुई डिपेंडेंसी (.jdeps) फ़ाइलों को डिस्क में सेव करने के बजाय, सीधे रिमोट बिल्ड नोड से मेमोरी में पास किया जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_retain_test_configuration_across_testonlydefault: "false"-
इस विकल्प को चालू करने पर, --trim_test_configuration, testonly=1 के तौर पर मार्क किए गए नियमों के लिए टेस्ट कॉन्फ़िगरेशन को ट्रिम नहीं करेगा. इसका मकसद, कार्रवाई से जुड़ी समस्याओं को कम करना है. ऐसा तब होता है, जब टेस्ट नहीं किए गए नियम, cc_test नियमों पर निर्भर होते हैं. अगर --trim_test_configuration की वैल्यू 'गलत है' पर सेट है, तो इसका कोई असर नहीं होगा.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_unsupported_and_brittle_include_scanningdefault: "false"-
इनपुट फ़ाइलों से #include लाइनें पार्स करके, इनपुट को C/C++ कंपाइलेशन तक सीमित करना है या नहीं. इससे परफ़ॉर्मेंस और इंक्रीमेंटैलिटी को बेहतर बनाया जा सकता है. इसके लिए, कंपाइलेशन इनपुट ट्री का साइज़ कम किया जाता है. हालांकि, इससे बिल्ड भी टूट सकते हैं, क्योंकि include स्कैनर, C प्रीप्रोसेसर सिमैंटिक्स को पूरी तरह से लागू नहीं करता है. खास तौर पर, यह डाइनैमिक #include डायरेक्टिव को नहीं समझता है और प्रीप्रोसेसर की शर्त वाली लॉजिक को अनदेखा करता है. इसे अपने जोखिम पर इस्तेमाल करें. इस फ़्लैग से जुड़ी सभी समस्याएं बंद कर दी जाएंगी.
टैग:
loading_and_analysis,execution,changes_inputs,experimental --[no]incremental_dexingdefault: "true"-
यह हर जार फ़ाइल के लिए, अलग से डेक्सिंग का ज़्यादातर काम करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]objc_use_dotd_pruningdefault: "true"-
अगर इसे सेट किया जाता है, तो clang से जनरेट हुई .d फ़ाइलों का इस्तेमाल, objc कंपाइल में पास किए गए इनपुट के सेट को कम करने के लिए किया जाएगा.
--[no]process_headers_in_dependenciesdefault: "false"-
//a:a टारगेट बनाते समय, उन सभी टारगेट में हेडर प्रोसेस करें जिन पर //a:a निर्भर करता है. ऐसा तब करें, जब टूलचेन के लिए हेडर प्रोसेसिंग चालू हो.
टैग:
execution --[no]trim_test_configurationdefault: "true"-
यह सुविधा चालू करने पर, टेस्ट से जुड़े विकल्प, बिल्ड के टॉप लेवल के नीचे से हट जाएंगे. इस फ़्लैग के चालू होने पर, टेस्ट को नॉन-टेस्ट नियमों की डिपेंडेंसी के तौर पर नहीं बनाया जा सकता. हालांकि, टेस्ट से जुड़े विकल्पों में बदलाव करने से, नॉन-टेस्ट नियमों का फिर से विश्लेषण नहीं किया जाएगा.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-.*"-
टूलचेन रिज़ॉल्यूशन के दौरान डीबग की जानकारी प्रिंट करें. इस फ़्लैग में रेगुलर एक्सप्रेशन का इस्तेमाल किया जाता है. इसकी जांच टूलचेन टाइप और खास टारगेट के हिसाब से की जाती है, ताकि यह पता लगाया जा सके कि किसे डीबग करना है. एक से ज़्यादा रेगुलर एक्सप्रेशन को कॉमा लगाकर अलग किया जा सकता है. इसके बाद, हर रेगुलर एक्सप्रेशन की अलग-अलग जांच की जाती है. ध्यान दें: इस फ़्लैग का आउटपुट बहुत जटिल होता है. इसलिए, यह सिर्फ़ टूलचेन की समस्या हल करने वाले विशेषज्ञों के लिए काम का हो सकता है.
टैग:
terminal_output --[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
--[no]incompatible_default_to_explicit_init_pydefault: "false"-
इस फ़्लैग से डिफ़ॉल्ट व्यवहार बदल जाता है, ताकि Python टारगेट की रनफ़ाइल में init.py फ़ाइलें अपने-आप न बन पाएं. खास तौर पर, जब किसी py_binary या py_test टारगेट के लिए legacy_create_init को "auto" (डिफ़ॉल्ट) पर सेट किया जाता है, तो इस फ़्लैग के सेट होने पर ही इसे फ़ॉल्स के तौर पर माना जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10076 पर जाएं.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]cache_test_results[-t] default: "auto"-
'auto' पर सेट होने पर, Bazel किसी टेस्ट को सिर्फ़ तब फिर से चलाता है, जब: (1) Bazel को टेस्ट या उसकी डिपेंडेंसी में बदलावों का पता चलता है, (2) टेस्ट को बाहरी के तौर पर मार्क किया गया है, (3) --runs_per_test के साथ कई टेस्ट रन का अनुरोध किया गया था या(4) टेस्ट पहले फ़ेल हो गया था. अगर इसे 'हां' पर सेट किया जाता है, तो Bazel, बाहरी के तौर पर मार्क किए गए टेस्ट को छोड़कर, सभी टेस्ट के नतीजों को कैश मेमोरी में सेव करता है. 'नहीं' पर सेट करने पर, Bazel किसी भी टेस्ट के नतीजे को कैश मेमोरी में सेव नहीं करता है.
--[no]experimental_cancel_concurrent_testsdefault: "never"-
अगर 'on_failed' या 'on_passed' है, तो Blaze उस नतीजे के साथ पहली बार चलने वाले टेस्ट को रद्द कर देगा. यह विकल्प, सिर्फ़ --runs_per_test_detects_flakes के साथ काम करता है.
--[no]experimental_fetch_all_coverage_outputsdefault: "false"-
अगर यह विकल्प सही है, तो कवरेज रन के दौरान Bazel, हर टेस्ट के लिए कवरेज डेटा डायरेक्ट्री को फ़ेच करता है.
--[no]experimental_generate_llvm_lcovdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो Clang के लिए कवरेज, LCOV रिपोर्ट जनरेट करेगा.
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback>default: "bazel"-
यह Java कंपाइलेशन के लिए, कम किए गए क्लासपाथ को चालू करता है.
--[no]experimental_run_android_lint_on_java_rulesdefault: "false"-
java_* सोर्स की पुष्टि करनी है या नहीं.
टैग:
affects_outputs,experimental --[no]explicit_java_test_depsdefault: "false"-
java_test में JUnit या Hamcrest के लिए, TestRunner के deps से गलती से पाने के बजाय, साफ़ तौर पर डिपेंडेंसी तय करें. फ़िलहाल, यह सिर्फ़ Bazel के लिए काम करता है.
--host_java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह Java लॉन्चर है. इसका इस्तेमाल उन टूल के लिए किया जाता है जिन्हें बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है.
--host_javacopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान लागू होने वाले टूल बनाने के लिए, javac को पास किए जाने वाले अतिरिक्त विकल्प.
--host_jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान एक्ज़ीक्यूट किए जाने वाले टूल बनाते समय, Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--[no]incompatible_check_sharding_supportdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, शेयर किए गए टेस्ट को तब फ़ेल कर देगा, जब टेस्ट रनर यह नहीं बताता कि वह TEST_SHARD_STATUS_FILE में दिए गए पाथ पर फ़ाइल को ऐक्सेस करके, शेयर करने की सुविधा के साथ काम करता है. अगर यह वैल्यू गलत है, तो शार्डिंग की सुविधा के साथ काम न करने वाला टेस्ट रनर, हर शार्ड में सभी टेस्ट चलाएगा.
टैग:
incompatible_change --[no]incompatible_exclusive_test_sandboxeddefault: "true"-
अगर यह विकल्प चुना जाता है, तो एक्सक्लूसिव टेस्ट, सैंडबॉक्स की गई रणनीति के साथ चलेंगे. 'local' टैग जोड़कर, स्थानीय तौर पर सिर्फ़ एक टेस्ट रन करें
टैग:
incompatible_change --[no]incompatible_strict_action_envdefault: "false"-
अगर यह विकल्प सही है, तो Bazel ऐसे एनवायरमेंट का इस्तेमाल करता है जिसमें PATH के लिए स्टैटिक वैल्यू होती है. साथ ही, यह LD_LIBRARY_PATH को इनहेरिट नहीं करता. अगर आपको क्लाइंट से कुछ एनवायरमेंट वैरिएबल इनहेरिट करने हैं, तो --action_env=ENV_VARIABLE का इस्तेमाल करें. हालांकि, ध्यान दें कि ऐसा करने से, अलग-अलग उपयोगकर्ताओं के लिए कैश मेमोरी का इस्तेमाल नहीं किया जा सकेगा. ऐसा तब होगा, जब शेयर की गई कैश मेमोरी का इस्तेमाल किया जा रहा हो.
--j2objc_translation_flags=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
J2ObjC टूल को पास करने के लिए अन्य विकल्प.
--java_debug-
इस विकल्प का इस्तेमाल करने पर, Java टेस्ट की Java वर्चुअल मशीन, JDWP के साथ काम करने वाले डीबगर (जैसे कि jdb) से कनेक्शन मिलने का इंतज़ार करती है. इसके बाद ही, टेस्ट शुरू होता है. इसका मतलब है कि -test_output=streamed.
बढ़कर:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results --[no]java_depsdefault: "true"-
हर Java टारगेट के लिए, डिपेंडेंसी की जानकारी जनरेट करता है. फ़िलहाल, यह कंपाइल-टाइम क्लासपाथ के लिए है.
--[no]java_header_compilationdefault: "true"-
सोर्स से सीधे तौर पर ijars कंपाइल करें.
--java_language_version=<a string>default: ""-
Java भाषा का वर्शन
--java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
Java बाइनरी बनाते समय इस्तेमाल किया जाने वाला Java लॉन्चर. अगर इस फ़्लैग को खाली स्ट्रिंग पर सेट किया जाता है, तो JDK लॉन्चर का इस्तेमाल किया जाता है. "लॉन्चर" एट्रिब्यूट, इस फ़्लैग को बदल देता है.
--java_runtime_version=<a string>डिफ़ॉल्ट: "local_jdk"-
Java रनटाइम का वर्शन
--javacopt=<a string>कई बार इस्तेमाल किया गया हो-
javac को पास करने के लिए अन्य विकल्प.
--jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--legacy_main_dex_list_generator=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक बाइनरी तय करता है, जिसका इस्तेमाल उन क्लास की सूची जनरेट करने के लिए किया जाता है जिन्हें लेगसी मल्टीडेक्स को कंपाइल करते समय, मुख्य डेक्स में होना चाहिए.
--optimizing_dexer=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बिना शार्डिंग के डेक्सिंग करने के लिए, बाइनरी तय करता है.
--plugin=<a build target label>कई बार इस्तेमाल किया गया हो-
बिल्ड में इस्तेमाल किए जाने वाले प्लगिन. फ़िलहाल, यह java_plugin के साथ काम करता है.
--proguard_top=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बताता है कि Java बाइनरी बनाते समय, कोड हटाने के लिए ProGuard के किस वर्शन का इस्तेमाल करना है.
--proto_compiler=<a build target label>default: "@bazel_tools//tools/proto:protoc"-
प्रोटो-कंपाइलर का लेबल.
--[no]proto_profiledefault: "true"-
प्रोटो कंपाइलर को profile_path पास करना है या नहीं.
--proto_profile_path=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रोफ़ाइल, proto कंपाइलर को profile_path के तौर पर पास की जाती है. अगर इसे सेट नहीं किया गया है, लेकिन --proto_profile सही है (डिफ़ॉल्ट रूप से), तो --fdo_optimize से पाथ का अनुमान लगाता है.
--proto_toolchain_for_cc=<a build target label>default: "@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें C++ प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_j2objc=<a build target label>default: "@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें j2objc प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_java=<a build target label>default: "@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें Java protos को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_javalite=<a build target label>default: "@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें JavaLite protos को कंपाइल करने का तरीका बताया गया है
--protocopt=<a string>कई बार इस्तेमाल किया गया हो-
प्रोटोबफ़ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
टैग:
affects_outputs --[no]runs_per_test_detects_flakesdefault: "false"-
अगर यह विकल्प चुना जाता है, तो जिस भी शार्ड में कम से कम एक रन/कोशिश पास होती है और कम से कम एक रन/कोशिश फ़ेल होती है उसे FLAKY स्टेटस मिलता है.
--shell_executable=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Bazel के इस्तेमाल के लिए, शेल एक्ज़ीक्यूटेबल का ऐब्सलूट पाथ. अगर इसे सेट नहीं किया जाता है, लेकिन BAZEL_SH एनवायरमेंट वैरिएबल को Bazel के पहले इनवोकेशन (जो Bazel सर्वर शुरू करता है) पर सेट किया जाता है, तो Bazel इसका इस्तेमाल करता है. अगर इनमें से कोई भी सेट नहीं है, तो Bazel, ऑपरेटिंग सिस्टम के हिसाब से हार्ड-कोड किए गए डिफ़ॉल्ट पाथ का इस्तेमाल करता है. जैसे, Windows: c:/msys64/usr/bin/bash.exe, FreeBSD: /usr/local/bin/bash, और अन्य सभी: /bin/bash. ध्यान दें कि bash के साथ काम न करने वाले शेल का इस्तेमाल करने से, जनरेट की गई बाइनरी फ़ाइलों को बनाने या उन्हें चलाने में समस्याएं आ सकती हैं.
टैग:
loading_and_analysis --test_arg=<a string>कई बार इस्तेमाल किया गया हो-
इस विकल्प की मदद से, टेस्ट एक्ज़ीक्यूटेबल को पास किए जाने वाले अतिरिक्त विकल्प और आर्ग्युमेंट तय किए जाते हैं. कई आर्ग्युमेंट तय करने के लिए, इसका इस्तेमाल कई बार किया जा सकता है. अगर एक से ज़्यादा टेस्ट किए जाते हैं, तो हर टेस्ट को एक जैसे आर्ग्युमेंट मिलेंगे. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
--test_filter=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह टेस्ट फ़्रेमवर्क को फ़ॉरवर्ड किए जाने वाले फ़िल्टर के बारे में बताता है. इस कुकी का इस्तेमाल, टेस्ट को सीमित करने के लिए किया जाता है. ध्यान दें कि इससे यह तय नहीं होता कि कौनसे टारगेट बनाए जाएंगे.
--test_result_expiration=<an integer>default: "-1"-
इस विकल्प को बंद कर दिया गया है और इससे कोई असर नहीं पड़ता.
--[no]test_runner_fail_fastdefault: "false"-
यह विकल्प, टेस्ट रनर को तुरंत फ़ॉरवर्ड करता है. पहली गड़बड़ी होने पर, टेस्ट रनर को टेस्ट बंद कर देना चाहिए.
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>default: "explicit"-
टेस्ट शार्डिंग के लिए रणनीति तय करें: 'shard_count' BUILD एट्रिब्यूट मौजूद होने पर ही शार्डिंग का इस्तेमाल करने के लिए, 'explicit' का इस्तेमाल करें. 'disabled' को कभी भी टेस्ट शार्डिंग का इस्तेमाल न करने के लिए सेट करें. 'forced=k' का इस्तेमाल, 'shard_count' BUILD एट्रिब्यूट के बावजूद, टेस्टिंग के लिए 'k' शार्ड लागू करने के लिए किया जाता है.
--tool_java_language_version=<a string>default: ""-
बिल्ड के दौरान ज़रूरी टूल को चलाने के लिए इस्तेमाल किया गया Java भाषा का वर्शन
--tool_java_runtime_version=<a string>default: "remotejdk_11"-
बिल्ड के दौरान टूल को एक्ज़ीक्यूट करने के लिए इस्तेमाल किया गया Java रनटाइम वर्शन
--[no]use_ijarsdefault: "true"-
अगर यह विकल्प चालू है, तो Java कंपाइलेशन के लिए इंटरफ़ेस जार का इस्तेमाल किया जाता है. इससे इन्क्रीमेंटल कंपाइलेशन तेज़ी से होगा, लेकिन गड़बड़ी के मैसेज अलग-अलग हो सकते हैं.
Canonicalize-flags के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]canonicalize_policydefault: "false"-
नीति को बड़ा करने और फ़िल्टर करने के बाद, कैननिकल नीति को आउटपुट करें. आउटपुट को साफ़-सुथरा रखने के लिए, इस विकल्प को 'सही है' पर सेट करने पर, कैननिकल किए गए कमांड आर्ग्युमेंट नहीं दिखाए जाएंगे. ध्यान दें कि --for_command से तय की गई कमांड का असर, फ़िल्टर की गई नीति पर पड़ता है. अगर कोई कमांड तय नहीं की जाती है, तो डिफ़ॉल्ट कमांड 'build' होती है.
--[no]experimental_include_default_valuesdefault: "true"-
क्या Starlark के ऐसे विकल्प आउटपुट में शामिल किए गए हैं जिनकी वैल्यू डिफ़ॉल्ट पर सेट है.
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--for_command=<a string>default: "build"-
वह कमांड जिसके विकल्पों को कैननिकल किया जाना चाहिए.
--invocation_policy=<a string>default: ""-
यह उन विकल्पों पर इनवोकेशन नीति लागू करता है जिन्हें कैननिकल बनाना है.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
साफ़ करने के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]asyncdefault: "false"-
अगर यह वैल्यू 'सही है' पर सेट है, तो आउटपुट को एसिंक्रोनस तरीके से साफ़ किया जाता है. इस कमांड के पूरा होने के बाद, उसी क्लाइंट में नई कमांड को सुरक्षित तरीके से लागू किया जा सकेगा. भले ही, बैकग्राउंड में डेटा मिटाने की प्रोसेस जारी रहे.
--[no]expungedefault: "false"-
अगर यह विकल्प सही है, तो क्लीन इस Bazel इंस्टेंस के लिए पूरे वर्किंग ट्री को हटा देता है. इसमें Bazel की बनाई गई सभी अस्थायी और बिल्ड आउटपुट फ़ाइलें शामिल होती हैं. साथ ही, अगर Bazel सर्वर चल रहा है, तो उसे बंद कर देता है.
--expunge_async-
अगर बताया गया है, तो clean कमांड इस Bazel इंस्टेंस के लिए पूरे वर्किंग ट्री को एसिंक्रोनस तरीके से हटा देती है. इसमें Bazel की बनाई गई सभी अस्थायी और बिल्ड आउटपुट फ़ाइलें शामिल होती हैं. साथ ही, अगर Bazel सर्वर चल रहा है, तो उसे बंद कर देती है. इस कमांड के पूरा होने के बाद, उसी क्लाइंट में नई कमांड को सुरक्षित तरीके से लागू किया जा सकेगा. भले ही, बैकग्राउंड में डेटा मिटाने की प्रोसेस जारी रहे.
कॉन्फ़िगरेशन के विकल्प
कवरेज के विकल्प
test से सभी विकल्प इनहेरिट करता है.
Cquery के विकल्प
test से सभी विकल्प इनहेरिट करता है.
- क्वेरी के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--aspect_deps=<off, conservative or precise>default: "conservative"-
जब आउटपुट फ़ॉर्मैट {xml,proto,record} में से कोई एक हो, तब पहलू की डिपेंडेंसी को कैसे हल करें. 'off' का मतलब है कि किसी भी पहलू की डिपेंडेंसी हल नहीं की गई है. 'conservative' (डिफ़ॉल्ट) का मतलब है कि सभी पहलुओं की डिपेंडेंसी जोड़ी गई हैं. भले ही, उन्हें डायरेक्ट डिपेंडेंसी का नियम क्लास दिया गया हो. 'precise' का मतलब है कि सिर्फ़ उन पहलुओं को जोड़ा गया है जो डायरेक्ट डिपेंडेंसी के नियम क्लास के हिसाब से शायद ऐक्टिव हों. ध्यान दें कि सटीक मोड में, किसी एक टारगेट का आकलन करने के लिए अन्य पैकेज लोड करने पड़ते हैं. इसलिए, यह अन्य मोड की तुलना में धीमा होता है. यह भी ध्यान दें कि सटीक मोड भी पूरी तरह से सटीक नहीं होता: किसी पहलू का हिसाब लगाना है या नहीं, यह फ़ैसला विश्लेषण के चरण में लिया जाता है. यह चरण 'bazel query' के दौरान नहीं चलता.
टैग:
build_file_semantics --[no]consistent_labelsdefault: "false"-
अगर यह सुविधा चालू है, तो हर क्वेरी कमांड, लेबल को इस तरह से दिखाती है जैसे Starlark <code>str</code> फ़ंक्शन को <code>Label</code> इंस्टेंस पर लागू किया गया हो. यह उन टूल के लिए काम का है जिन्हें नियमों के हिसाब से जनरेट की गई अलग-अलग क्वेरी कमांड और/या लेबल के आउटपुट को मैच करना होता है. अगर यह सुविधा चालू नहीं है, तो आउटपुट फ़ॉर्मेटर, आउटपुट को ज़्यादा आसानी से पढ़ने के लिए, मुख्य रिपॉज़िटरी के बजाय रिपॉज़िटरी के नाम (मुख्य रिपॉज़िटरी के हिसाब से) दिखा सकते हैं.
टैग:
terminal_output --[no]experimental_explicit_aspectsdefault: "false"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]graph:factoreddefault: "true"-
अगर सही है, तो ग्राफ़ को 'फ़ैक्टर्ड' किया जाएगा. इसका मतलब है कि टोपोलॉजिकल तौर पर एक जैसे नोड को एक साथ मर्ज कर दिया जाएगा और उनके लेबल को एक साथ जोड़ दिया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --graph:node_limit=<an integer>default: "512"-
आउटपुट में, ग्राफ़ नोड के लिए लेबल स्ट्रिंग की ज़्यादा से ज़्यादा लंबाई. बड़े लेबल छोटे कर दिए जाएंगे; -1 का मतलब है कि लेबल को छोटा नहीं किया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --[no]implicit_depsdefault: "true"-
अगर यह विकल्प चालू है, तो क्वेरी जिस डिपेंडेंसी ग्राफ़ पर काम करती है उसमें इंप्लिसिट डिपेंडेंसी शामिल की जाएंगी. इंप्लिसिट डिपेंडेंसी ऐसी डिपेंडेंसी होती है जिसे BUILD फ़ाइल में साफ़ तौर पर नहीं बताया जाता, लेकिन Bazel उसे जोड़ देता है. cquery के लिए, यह विकल्प हल की गई टूलचेन को फ़िल्टर करने की सुविधा को कंट्रोल करता है.
टैग:
build_file_semantics --[no]include_aspectsdefault: "true"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]incompatible_package_group_includes_double_slashdefault: "true"-
इस सेटिंग को चालू करने पर, package_group
packagesएट्रिब्यूट की वैल्यू देते समय, लीडिंग//को नहीं हटाया जाएगा. --[no]infer_universe_scopedefault: "false"-
अगर इसे सेट किया गया है और --universe_scope को सेट नहीं किया गया है, तो --universe_scope की वैल्यू को क्वेरी एक्सप्रेशन में मौजूद यूनीक टारगेट पैटर्न की सूची के तौर पर माना जाएगा. ध्यान दें कि क्वेरी एक्सप्रेशन के लिए अनुमानित --universe_scope वैल्यू, आपकी ज़रूरत के हिसाब से नहीं हो सकती.ऐसा तब होता है, जब क्वेरी एक्सप्रेशन में यूनिवर्स के स्कोप वाले फ़ंक्शन (जैसे,
allrdeps) का इस्तेमाल किया जाता है.इसलिए, इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब आपको पता हो कि आपको क्या करना है. ज़्यादा जानकारी और उदाहरणों के लिए, https://bazel.build/reference/query#sky-query पर जाएं. अगर --universe_scope सेट है, तो इस विकल्प की वैल्यू को अनदेखा कर दिया जाता है. ध्यान दें: यह विकल्प सिर्फ़queryपर लागू होता है. इसका मतलब है कि यहcqueryपर लागू नहीं होता.टैग:
loading_and_analysis --[no]line_terminator_nulldefault: "false"-
क्या हर फ़ॉर्मैट को नई लाइन के बजाय \0 से खत्म किया गया है.
टैग:
terminal_output --[no]nodep_depsdefault: "true"-
अगर यह विकल्प चालू है, तो "nodep" एट्रिब्यूट से मिली डिपेंडेंसी को डिपेंडेंसी ग्राफ़ में शामिल किया जाएगा. इस ग्राफ़ पर क्वेरी काम करती है. "nodep" एट्रिब्यूट का एक सामान्य उदाहरण "visibility" है. बिल्ड लैंग्वेज में मौजूद सभी "nodep" एट्रिब्यूट के बारे में जानने के लिए,
info build-languageका आउटपुट पार्स करें और उसे चलाएं.टैग:
build_file_semantics --output=<a string>default: "label"-
वह फ़ॉर्मैट जिसमें cquery के नतीजों को प्रिंट किया जाना चाहिए. cquery के लिए इन वैल्यू का इस्तेमाल किया जा सकता है: label, label_kind, textproto, transitions, proto, streamed_proto, jsonproto. 'transitions' चुनने पर, आपको --transitions=(lite|full) विकल्प भी तय करना होगा.
टैग:
terminal_output --output_file=<a string>default: ""-
इस विकल्प को चुनने पर, क्वेरी के नतीजे सीधे इस फ़ाइल में लिखे जाएंगे. साथ ही, Bazel के स्टैंडर्ड आउटपुट स्ट्रीम (stdout) में कुछ भी प्रिंट नहीं किया जाएगा. आम तौर पर, बेंचमार्क में यह <code>bazel query > file</code> से ज़्यादा तेज़ होता है.
टैग:
terminal_output --[no]proto:default_valuesdefault: "true"-
अगर यह विकल्प सही है, तो उन एट्रिब्यूट को शामिल किया जाता है जिनकी वैल्यू BUILD फ़ाइल में साफ़ तौर पर नहीं दी गई है. अगर यह विकल्प गलत है, तो उन एट्रिब्यूट को शामिल नहीं किया जाता है. यह विकल्प, --output=proto पर लागू होता है
टैग:
terminal_output --[no]proto:definition_stackdefault: "false"-
definition_stack proto फ़ील्ड भरें. यह फ़ील्ड, हर नियम के इंस्टेंस के लिए, Starlark कॉल स्टैक को रिकॉर्ड करता है. यह रिकॉर्डिंग, नियम की क्लास तय किए जाने के समय की होती है.
टैग:
terminal_output --[no]proto:flatten_selectsdefault: "true"-
इस विकल्प को चालू करने पर, select() फ़ंक्शन से बनाए गए कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट को फ़्लैट कर दिया जाता है. सूची टाइप के लिए, फ़्लैट किए गए डेटा का मतलब ऐसी सूची से है जिसमें चुने गए मैप की हर वैल्यू सिर्फ़ एक बार शामिल होती है. स्केलर टाइप को शून्य पर सेट किया जाता है.
टैग:
build_file_semantics --[no]proto:include_attribute_source_aspectsdefault: "false"-
हर एट्रिब्यूट के source_aspect_name प्रोटो फ़ील्ड में, उस सोर्स पहलू का नाम डालें जिससे एट्रिब्यूट मिला है. अगर एट्रिब्यूट किसी सोर्स पहलू से नहीं मिला है, तो इस फ़ील्ड में खाली स्ट्रिंग डालें.
टैग:
terminal_output --[no]proto:include_configurationsdefault: "true"-
अगर यह विकल्प चालू है, तो प्रोटो आउटपुट में कॉन्फ़िगरेशन के बारे में जानकारी शामिल होगी. इस विकल्प को बंद करने पर, cquery प्रोटो आउटपुट फ़ॉर्मैट, क्वेरी आउटपुट फ़ॉर्मैट जैसा दिखता है.
टैग:
affects_outputs --[no]proto:include_starlark_rule_envdefault: "true"-
जनरेट किए गए $internal_attr_hash एट्रिब्यूट की वैल्यू में, Starlark एनवायरमेंट का इस्तेमाल करें. इससे यह पक्का होता है कि स्टार्लार्क नियम की परिभाषा (और उसके ट्रांज़िटिव इंपोर्ट) इस आइडेंटिफ़ायर का हिस्सा हैं.
टैग:
terminal_output --[no]proto:include_synthetic_attribute_hashdefault: "false"-
$internal_attr_hash एट्रिब्यूट की वैल्यू का हिसाब लगाना है या नहीं.
टैग:
terminal_output --[no]proto:instantiation_stackdefault: "false"-
हर नियम के इंस्टैंटिएशन कॉल स्टैक को पॉप्युलेट करें. ध्यान दें कि इसके लिए, स्टैक का मौजूद होना ज़रूरी है
टैग:
terminal_output --[no]proto:locationsdefault: "true"-
जगह की जानकारी को प्रोटो आउटपुट में दिखाना है या नहीं.
टैग:
terminal_output --proto:output_rule_attrs=<comma-separated list of options>default: "all"-
आउटपुट में शामिल किए जाने वाले एट्रिब्यूट की कॉमा लगाकर बनाई गई सूची. डिफ़ॉल्ट रूप से, सभी एट्रिब्यूट के लिए लागू होता है. किसी भी एट्रिब्यूट को आउटपुट न करने के लिए, इसे खाली स्ट्रिंग पर सेट करें. यह विकल्प, --output=proto पर लागू होता है.
टैग:
terminal_output --[no]proto:rule_classesdefault: "false"-
हर नियम के rule_class_key फ़ील्ड में वैल्यू डालें. साथ ही, दिए गए rule_class_key वाले पहले नियम के लिए, उसके rule_class_info प्रोटो फ़ील्ड में भी वैल्यू डालें. rule_class_key फ़ील्ड, नियम क्लास की खास तौर पर पहचान करता है. साथ ही, rule_class_info फ़ील्ड, Stardoc फ़ॉर्मैट में नियम क्लास की एपीआई डेफ़िनिशन है.
टैग:
terminal_output --[no]proto:rule_inputs_and_outputsdefault: "true"-
rule_input और rule_output फ़ील्ड में वैल्यू डालनी है या नहीं.
टैग:
terminal_output --query_file=<a string>default: ""-
अगर इसे सेट किया जाता है, तो क्वेरी, कमांड लाइन के बजाय यहां दी गई फ़ाइल से क्वेरी पढ़ेगी. यहां फ़ाइल और कमांड-लाइन क्वेरी, दोनों को एक साथ नहीं बताया जा सकता.
टैग:
changes_inputs --[no]relative_locationsdefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो एक्सएमएल और प्रोटो आउटपुट में BUILD फ़ाइलों की जगह की जानकारी रिलेटिव होगी. डिफ़ॉल्ट रूप से, जगह की जानकारी का आउटपुट एक ऐब्सलूट पाथ होता है. यह अलग-अलग मशीनों पर एक जैसा नहीं होता. इस विकल्प को true पर सेट किया जा सकता है, ताकि सभी मशीनों पर एक जैसा नतीजा मिले.
टैग:
terminal_output --show_config_fragments=<off, direct or transitive>default: "off"-
इससे, किसी नियम और उसकी ट्रांज़िटिव डिपेंडेंसी के लिए ज़रूरी कॉन्फ़िगरेशन फ़्रैगमेंट दिखते हैं. इससे यह पता लगाने में मदद मिल सकती है कि कॉन्फ़िगर किए गए टारगेट ग्राफ़ को कितना कम किया जा सकता है.
टैग:
affects_outputs --starlark:expr=<a string>default: ""-
cquery के --output=starlark मोड में, कॉन्फ़िगर किए गए हर टारगेट को फ़ॉर्मैट करने के लिए Starlark एक्सप्रेशन. कॉन्फ़िगर किया गया टारगेट, 'target' से जुड़ा होता है. अगर --starlark:expr और --starlark:file, दोनों में से किसी को भी तय नहीं किया गया है, तो यह विकल्प डिफ़ॉल्ट रूप से 'str(target.label)' पर सेट होगा. --starlark:expr और --starlark:file, दोनों को एक साथ इस्तेमाल नहीं किया जा सकता.
टैग:
terminal_output --starlark:file=<a string>default: ""-
यह उस फ़ाइल का नाम है जो 'format' नाम के Starlark फ़ंक्शन को तय करती है. इसमें एक आर्ग्युमेंट होता है. इसे हर कॉन्फ़िगर किए गए टारगेट पर लागू किया जाता है, ताकि उसे स्ट्रिंग के तौर पर फ़ॉर्मैट किया जा सके. --starlark:expr और --starlark:file, दोनों को एक साथ इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, --output=starlark के लिए सहायता देखें.
टैग:
terminal_output --[no]tool_depsdefault: "true"-
क्वेरी: अगर यह सुविधा बंद है, तो 'एक्ज़ीक्यूशन कॉन्फ़िगरेशन' पर निर्भरता, उस डिपेंडेंसी ग्राफ़ में शामिल नहीं की जाएगी जिस पर क्वेरी काम करती है. 'exec configuration' डिपेंडेंसी एज, जैसे कि किसी भी 'proto_library' नियम से लेकर प्रोटोकॉल कंपाइलर तक, आम तौर पर उस टूल की ओर इशारा करता है जिसे बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है. यह उसी 'target' प्रोग्राम का हिस्सा नहीं होता. Cquery: अगर यह विकल्प बंद है, तो यह उन सभी कॉन्फ़िगर किए गए टारगेट को फ़िल्टर कर देता है जो टॉप-लेवल के उस टारगेट से एक्ज़ीक्यूशन ट्रांज़िशन को पार करते हैं जिसने इस कॉन्फ़िगर किए गए टारगेट का पता लगाया था. इसका मतलब है कि अगर टॉप-लेवल का टारगेट, टारगेट कॉन्फ़िगरेशन में है, तो टारगेट कॉन्फ़िगरेशन में कॉन्फ़िगर किए गए टारगेट ही दिखाए जाएंगे. अगर टॉप-लेवल का टारगेट, exec कॉन्फ़िगरेशन में है, तो सिर्फ़ exec कॉन्फ़िगर किए गए टारगेट दिखाए जाएंगे. इस विकल्प से, हल की गई टूलचेन को नहीं हटाया जाएगा.
टैग:
build_file_semantics --transitions=<full, lite or none>डिफ़ॉल्ट: "none"-
यह वह फ़ॉर्मैट है जिसमें cquery, ट्रांज़िशन की जानकारी प्रिंट करेगा.
टैग:
affects_outputs --universe_scope=<comma-separated list of options>default: ""-
कॉमा लगाकर अलग किए गए टारगेट पैटर्न का सेट (जोड़ने और घटाने वाले). क्वेरी को, ट्रांज़िटिव क्लोज़र के ज़रिए तय किए गए यूनिवर्स में किया जा सकता है. इस विकल्प का इस्तेमाल, क्वेरी और cquery कमांड के लिए किया जाता है. cquery के लिए, इस विकल्प का इनपुट वे टारगेट होते हैं जिनके तहत सभी जवाब बनाए जाते हैं. इसलिए, यह विकल्प कॉन्फ़िगरेशन और ट्रांज़िशन पर असर डाल सकता है. अगर इस विकल्प के बारे में नहीं बताया जाता है, तो यह माना जाता है कि क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के टारगेट हैं. ध्यान दें: cquery के लिए, इस विकल्प को तय न करने पर, बिल्ड टूट सकता है. ऐसा तब होता है, जब क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के विकल्पों के साथ नहीं बनाए जा सकते.
टैग:
loading_and_analysis
- बिल्ड के एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_persistent_aar_extractordefault: "false"-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट एएआर एक्सट्रैक्टर चालू करें.
टैग:
execution,experimental --[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_split_coverage_postprocessingdefault: "false"-
सही होने पर, Bazel एक नए स्पॉन में टेस्ट के लिए कवरेज पोस्टप्रोसेसिंग चलाएगा.
टैग:
execution,experimental --[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--persistent_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार चालू करें.
बढ़कर:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker --persistent_android_resource_processor-
वर्कर्स का इस्तेमाल करके, Android रिसॉर्स प्रोसेसर को लगातार चालू रखने की सुविधा चालू करें.
इनमें बदल जाता है:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker --persistent_multiplex_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार कई बार चलाने की सुविधा चालू करें.
बढ़कर:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar --persistent_multiplex_android_resource_processor-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट मल्टीप्लेक्स किए गए Android रिसॉर्स प्रोसेसर को चालू करें.
बढ़कर:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers --persistent_multiplex_android_tools-
Android के लगातार काम करने वाले और मल्टीप्लेक्स किए गए टूल (dexing, desugaring, resource processing) चालू करें.
बढ़कर:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar --[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--android_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Android टारगेट कंपाइलर.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_manifest_merger=<legacy, android or force_android>डिफ़ॉल्ट: "android"-
android_binary नियमों के लिए, मेनिफ़ेस्ट मर्जर को चुनता है. यह फ़्लैग, लेगसी मर्जर से Android मेनिफ़ेस्ट मर्जर पर ट्रांज़िशन करने में मदद करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_platforms=<a build target label>default: ""-
यह विकल्प उन प्लैटफ़ॉर्म को सेट करता है जिनका इस्तेमाल android_binary टारगेट करते हैं. अगर एक से ज़्यादा प्लैटफ़ॉर्म तय किए गए हैं, तो बाइनरी एक फ़ैट APK है. इसमें हर टारगेट प्लैटफ़ॉर्म के लिए नेटिव बाइनरी शामिल होती हैं.
टैग:
changes_inputs,loading_and_analysis,loses_incremental_state --cc_output_directory_tag=<a string>default: ""-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
affects_outputs --compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट को कंपाइल करने के लिए, C++ कंपाइलर.
--coverage_output_generator=<a build target label>default: "@bazel_tools//tools/test:lcov_merger"-
उस बाइनरी का पाथ जिसका इस्तेमाल, रॉ कवरेज रिपोर्ट को पोस्टप्रोसेस करने के लिए किया जाता है. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:lcov_merger' होती है.
--coverage_report_generator=<a build target label>default: "@bazel_tools//tools/test:coverage_report_generator"-
कवरेज रिपोर्ट जनरेट करने के लिए इस्तेमाल किए गए बाइनरी की जगह. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:coverage_report_generator' होती है.
--coverage_support=<a build target label>default: "@bazel_tools//tools/test:coverage_support"-
सहायता देने वाली फ़ाइलों की जगह. ये फ़ाइलें, कोड कवरेज की जानकारी इकट्ठा करने वाली हर टेस्ट कार्रवाई के इनपुट के लिए ज़रूरी होती हैं. डिफ़ॉल्ट रूप से, यह '//tools/test:coverage_support' पर सेट होती है.
--custom_malloc=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, malloc को लागू करने का कस्टम तरीका तय करता है. यह सेटिंग, बिल्ड के नियमों में malloc एट्रिब्यूट को बदल देती है.
--[no]experimental_include_xcode_execution_requirementsdefault: "false"-
अगर सेट है, तो हर Xcode ऐक्शन में "requires-xcode:{version}" एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें. अगर Xcode के वर्शन में हाइफ़न वाला लेबल है, तो "requires-xcode-label:{version_label}" के तौर पर भी एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें.
टैग:
loses_incremental_state,loading_and_analysis,execution,experimental --[no]experimental_prefer_mutual_xcodedefault: "true"-
अगर यह नीति 'सही है' पर सेट है, तो स्थानीय और रिमोट, दोनों जगहों पर उपलब्ध Xcode के सबसे नए वर्शन का इस्तेमाल करें. अगर यह गलत है या दोनों के लिए कोई भी वर्शन उपलब्ध नहीं है, तो xcode-select के ज़रिए चुने गए Xcode के लोकल वर्शन का इस्तेमाल करें.
--extra_execution_platforms=<comma-separated list of options>default: ""-
कार्रवाइयां करने के लिए, इन प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. प्लेटफ़ॉर्म को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. register_execution_platforms() में बताए गए प्लैटफ़ॉर्म से पहले, इन प्लैटफ़ॉर्म पर विचार किया जाएगा. इस विकल्प को सिर्फ़ एक बार सेट किया जा सकता है. बाद में, फ़्लैग की सेटिंग पहले की सेटिंग को बदल देंगी.
टैग:
execution --extra_toolchains=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
टूलचेन के नियमों को टूलचेन रिज़ॉल्यूशन के दौरान ध्यान में रखा जाना चाहिए. टूलचेन को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. इन टूलचेन को, register_toolchains() फ़ंक्शन के ज़रिए WORKSPACE फ़ाइल में बताए गए टूलचेन से पहले माना जाएगा.
--grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
चेक-इन की गई libc लाइब्रेरी का लेबल. डिफ़ॉल्ट वैल्यू को क्रॉसटूल टूलचेन चुनता है. आपको इसे बदलने की ज़रूरत शायद ही कभी पड़ती है.
--host_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह फ़्लैग कोई कार्रवाई नहीं करता. आने वाले समय में रिलीज़ होने वाले वर्शन में इसे हटा दिया जाएगा.
--host_grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेटिंग तय की जाती है, तो यह exec कॉन्फ़िगरेशन के लिए, libc की टॉप-लेवल डायरेक्ट्री (--grte_top) को बदल देती है.
--host_platform=<a build target label>default: "@bazel_tools//tools:host_platform"-
होस्ट सिस्टम की जानकारी देने वाले प्लैटफ़ॉर्म के नियम का लेबल.
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
--[no]incompatible_builtin_objc_strip_actiondefault: "true"-
objc लिंकिंग के हिस्से के तौर पर स्ट्रिप ऐक्शन को चालू करना है या नहीं.
--[no]incompatible_dont_enable_host_nonhost_crosstool_featuresdefault: "true"-
अगर यह सही है, तो Bazel, C++ टूलचेन में 'होस्ट' और 'नॉनहोस्ट' सुविधाएं चालू नहीं करेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7407 देखें.
--[no]incompatible_enable_apple_toolchain_resolutiondefault: "false"-
ऐपल के नियमों (Starlark और नेटिव) के लिए Apple SDK टूल चुनने के लिए, टूलचेन रिज़ॉल्यूशन का इस्तेमाल करें
--[no]incompatible_remove_legacy_whole_archivedefault: "true"-
अगर यह विकल्प चालू है, तो Bazel डिफ़ॉल्ट रूप से लाइब्रेरी की डिपेंडेंसी को पूरे संग्रह के तौर पर लिंक नहीं करेगा. माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/7362 देखें.
--[no]incompatible_strip_executable_safelydefault: "false"-
अगर यह सही है, तो एक्ज़ीक्यूटेबल के लिए स्ट्रिप ऐक्शन, -x फ़्लैग का इस्तेमाल करेगा. इससे डाइनैमिक सिंबल रिज़ॉल्यूशन नहीं टूटेगा.
-
अगर टूलचेन में इंटरफ़ेस शेयर किए गए ऑब्जेक्ट इस्तेमाल करने की सुविधा है, तो उनका इस्तेमाल करें. फ़िलहाल, सभी ईएलएफ़ टूलचेन इस सेटिंग के साथ काम करते हैं.
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
इससे iOS ऐप्लिकेशन बनाने के लिए, iOS SDK के वर्शन के बारे में पता चलता है. यह जानकारी उपलब्ध न होने पर, 'xcode_version' से iOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
macOS ऐप्लिकेशन बनाने के लिए, macOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से macOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--minimum_os_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
ओएस का वह कम से कम वर्शन जिसे कंपाइल करने के लिए टारगेट किया गया है.
--platform_mappings=<a main workspace-relative path>default: ""-
मैपिंग फ़ाइल की जगह. इससे यह पता चलता है कि अगर कोई प्लैटफ़ॉर्म सेट नहीं है, तो कौनसा प्लैटफ़ॉर्म इस्तेमाल करना है. साथ ही, अगर कोई प्लैटफ़ॉर्म पहले से मौजूद है, तो कौनसा फ़्लैग सेट करना है. यह मुख्य वर्कस्पेस रूट के हिसाब से होना चाहिए. डिफ़ॉल्ट रूप से, यह 'platform_mappings' पर सेट होता है. यह फ़ाइल, वर्कस्पेस के रूट फ़ोल्डर में मौजूद होती है.
टैग:
affects_outputs,changes_inputs,loading_and_analysis,non_configurable --platforms=<a build target label>default: ""-
प्लैटफ़ॉर्म के नियमों के लेबल. इनसे मौजूदा कमांड के लिए टारगेट प्लैटफ़ॉर्म के बारे में पता चलता है.
--python_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट प्लैटफ़ॉर्म पर Python टारगेट चलाने के लिए, Python इंटरप्रेटर का ऐब्सलूट पाथ. अब काम नहीं करता; --incompatible_use_python_toolchains फ़्लैग की वजह से बंद है.
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
यह tvOS ऐप्लिकेशन बनाने के लिए, tvOS SDK टूल के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से tvOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--[no]use_platforms_in_apple_crosstool_transitiondefault: "false"-
इससे apple_crosstool_transition, ज़रूरत पड़ने पर लेगसी
--cpuके बजाय--platformsफ़्लैग की वैल्यू का इस्तेमाल करता है.टैग:
loading_and_analysis --watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
watchOS ऐप्लिकेशन बनाने के लिए, watchOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से watchOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो यह बिल्ड से जुड़ी कार्रवाइयों के लिए, दिए गए वर्शन के Xcode का इस्तेमाल करता है. अगर यह विकल्प नहीं दिया जाता है, तो Xcode के एक्ज़ीक्यूटर के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version_config=<a build target label>default: "@bazel_tools//tools/cpp:host_xcodes"-
यह xcode_config नियम का लेबल है. इसका इस्तेमाल, बिल्ड कॉन्फ़िगरेशन में Xcode का वर्शन चुनने के लिए किया जाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]apple_generate_dsymdefault: "false"-
डीबग सिंबल (.dSYM) फ़ाइलें जनरेट करनी हैं या नहीं.
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]build_test_dwpdefault: "false"-
अगर यह सुविधा चालू है, तो C++ टेस्ट को स्टैटिक तौर पर और फ़िशन के साथ बनाने पर, टेस्ट बाइनरी के लिए .dwp फ़ाइल भी अपने-आप बन जाएगी.
--cc_proto_library_header_suffixes=<comma-separated set of options>default: ".pb.h"-
यह विकल्प, cc_proto_library से बनाई गई हेडर फ़ाइलों के सफ़िक्स सेट करता है.
--cc_proto_library_source_suffixes=<comma-separated set of options>default: ".pb.cc"-
यह विकल्प, उन सोर्स फ़ाइलों के सफ़िक्स सेट करता है जिन्हें cc_proto_library बनाता है.
--[no]experimental_proto_descriptor_sets_include_source_infodefault: "false"-
proto_library में, Java API के अन्य वर्शन के लिए अतिरिक्त कार्रवाइयां चलाएं.
--[no]experimental_save_feature_statedefault: "false"-
इस कुकी का इस्तेमाल, चालू की गई और अनुरोध की गई सुविधाओं की स्थिति को कंपाइल करने के आउटपुट के तौर पर सेव करने के लिए किया जाता है.
टैग:
affects_outputs,experimental --fission=<a set of compilation modes>default: "no"-
इससे यह तय होता है कि C++ कंपाइलेशन और लिंक के लिए, फ़िशन का इस्तेमाल कौनसे कंपाइलेशन मोड करते हैं. यह {'fastbuild', 'dbg', 'opt'} का कोई भी कॉम्बिनेशन हो सकता है. इसके अलावा, सभी मोड चालू करने के लिए 'yes' और सभी मोड बंद करने के लिए 'no' जैसी खास वैल्यू भी इस्तेमाल की जा सकती हैं.
टैग:
loading_and_analysis,action_command_lines,affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change --[no]objc_generate_linkmapdefault: "false"-
इससे यह तय होता है कि लिंकमैप फ़ाइल जनरेट करनी है या नहीं.
टैग:
affects_outputs --[no]save_tempsdefault: "false"-
अगर यह सेट है, तो gcc से मिले कुछ समय के लिए आउटपुट सेव किए जाएंगे. इनमें .s फ़ाइलें (असेंबलर कोड), .i फ़ाइलें (प्रीप्रोसेस्ड C), और .ii फ़ाइलें (प्रीप्रोसेस्ड C++) शामिल हैं.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]android_databinding_use_androidxdefault: "true"-
AndroidX के साथ काम करने वाली डेटा-बाइंडिंग फ़ाइलें जनरेट करें. इसका इस्तेमाल सिर्फ़ databinding v2 के साथ किया जाता है. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]android_databinding_use_v3_4_argsdefault: "true"-
3.4.0 आर्ग्युमेंट के साथ android databinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --android_dynamic_mode=<off, default or fully>default: "off"-
इससे यह तय होता है कि जब cc_binary, शेयर की गई लाइब्रेरी को साफ़ तौर पर नहीं बनाता है, तो Android नियमों की C++ डिपेंडेंसी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तौर पर लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>default: "alphabetical"-
यह विकल्प, Android बाइनरी के लिए मेनिफ़ेस्ट मर्जर को पास किए गए मेनिफ़ेस्ट का क्रम सेट करता है. ALPHABETICAL का मतलब है कि मेनिफ़ेस्ट को execroot के हिसाब से पाथ के हिसाब से क्रम में लगाया जाता है. ALPHABETICAL_BY_CONFIGURATION का मतलब है कि मेनिफ़ेस्ट को आउटपुट डायरेक्ट्री में कॉन्फ़िगरेशन डायरेक्ट्री के हिसाब से पाथ के हिसाब से क्रम से लगाया जाता है. DEPENDENCY का मतलब है कि मेनिफ़ेस्ट को इस तरह से क्रम में लगाया जाता है कि हर लाइब्रेरी का मेनिफ़ेस्ट, उसकी डिपेंडेंसी के मेनिफ़ेस्ट से पहले आता है.
--[no]android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]build_python_zipdefault: "auto"-
Python एक्ज़ीक्यूटेबल ज़िप बनाएं; Windows पर चालू और अन्य प्लैटफ़ॉर्म पर बंद
टैग:
affects_outputs --catalyst_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ऐसी सूची जिसमें कॉमा लगाकर उन आर्किटेक्चर को अलग किया गया हो जिनके लिए Apple Catalyst बाइनरी बनानी हैं.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
C सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--copt=<a string>कई बार इस्तेमाल किया गया हो-
gcc को पास करने के लिए अतिरिक्त विकल्प.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--cs_fdo_absolute_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, सीएसएफ़डीओ प्रोफ़ाइल की जानकारी का इस्तेमाल करें. प्रोफ़ाइल फ़ाइल, रॉ या इंडेक्स की गई LLVM प्रोफ़ाइल फ़ाइल वाली ZIP फ़ाइल का पूरा पाथ नेम डालें.
टैग:
affects_outputs --cs_fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कॉन्टेक्स्ट के हिसाब से संवेदनशील FDO इंस्ट्रुमेंटेशन के साथ बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --cs_fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
cs_fdo_profile, कॉन्टेक्स्ट के हिसाब से काम करने वाली प्रोफ़ाइल को दिखाता है. इसका इस्तेमाल ऑप्टिमाइज़ेशन के लिए किया जाता है.
टैग:
affects_outputs --cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--dynamic_mode=<off, default or fully>default: "default"-
इससे यह तय होता है कि C++ बाइनरी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तरीके से लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--[no]enable_propeller_optimize_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो Propeller Optimize के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी होगी.
टैग:
affects_outputs --[no]enable_remaining_fdo_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो FDO के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी दिखेगी.
टैग:
affects_outputs --[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_android_compress_java_resourcesdefault: "false"-
APK में Java संसाधनों को कंप्रेस करना
--[no]experimental_android_databinding_v2default: "true"-
Android DataBinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]experimental_android_rewrite_dexes_with_rexdefault: "false"-
dex फ़ाइलों को फिर से लिखने के लिए, rex टूल का इस्तेमाल करें
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_objc_fastbuild_options=<comma-separated list of options>default: "-O0,-DDEBUG=1"-
इन स्ट्रिंग का इस्तेमाल, objc fastbuild कंपाइलर के विकल्पों के तौर पर करता है.
टैग:
action_command_lines --[no]experimental_omitfpdefault: "false"-
अगर सही है, तो स्टैक अनवाइंडिंग के लिए libunwind का इस्तेमाल करें. साथ ही, -fomit-frame-pointer और -fasynchronous-unwind-tables के साथ कंपाइल करें.
--experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_py_binaries_include_labeldefault: "false"-
py_binary टारगेट में उनका लेबल शामिल होता है. भले ही, स्टैंपिंग की सुविधा बंद हो.
टैग:
affects_outputs,experimental --[no]experimental_use_llvm_covmapdefault: "false"-
अगर ऐसा तय किया गया है, तो collect_code_coverage चालू होने पर Bazel, gcov के बजाय llvm-cov कवरेज मैप की जानकारी जनरेट करेगा.
टैग:
changes_inputs,affects_outputs,loading_and_analysis,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
एफ़डीओ इंस्ट्रुमेंटेशन की मदद से बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --fdo_optimize=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, FDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. .gcda फ़ाइल ट्री वाली zip फ़ाइल, ऑटो प्रोफ़ाइल वाली afdo फ़ाइल या LLVM प्रोफ़ाइल फ़ाइल का नाम डालें. यह फ़्लैग, लेबल के तौर पर तय की गई फ़ाइलों को भी स्वीकार करता है.जैसे,
//foo/bar:file.afdo- आपको हो सकता है कि इससे जुड़े पैकेज में//foo/bar:file.afdoडायरेक्टिव जोड़ना पड़े. साथ ही, यहfdo_profileटारगेट की ओर इशारा करने वाले लेबल को भी स्वीकार करता है.exports_filesयह फ़्लैग,fdo_profileनियम की जगह लागू होगा.टैग:
affects_outputs --fdo_prefetch_hints=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कैश मेमोरी प्रीफ़ेच के लिए, हिंट का इस्तेमाल करें.
टैग:
affects_outputs --fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
fdo_profile, ऑप्टिमाइज़ेशन के लिए इस्तेमाल की जाने वाली प्रोफ़ाइल को दिखाता है.
टैग:
affects_outputs --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--[no]force_picdefault: "false"-
इस विकल्प के चालू होने पर, सभी C++ कंपाइलेशन, पोज़िशन-इंडिपेंडेंट कोड ("-fPIC") जनरेट करते हैं. साथ ही, लिंक, नॉन-पीआईसी लाइब्रेरी के बजाय पीआईसी प्री-बिल्ट लाइब्रेरी को प्राथमिकता देते हैं. इसके अलावा, लिंक, पोज़िशन-इंडिपेंडेंट एक्ज़ीक्यूटेबल ("-pie") जनरेट करते हैं.
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
यह एक अतिरिक्त विकल्प है. इसका इस्तेमाल, exec कॉन्फ़िगरेशन में C सोर्स फ़ाइलों को कंपाइल करते समय C कंपाइलर को पास करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल C++ सोर्स फ़ाइलों के लिए नहीं किया जा सकता.
--host_copt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C++ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--host_linkopt=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में टूल लिंक करते समय, लिंकर को पास करने का अतिरिक्त विकल्प.
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
होस्ट टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में कुछ फ़ाइलों को कंपाइल करते समय, C/C++ कंपाइलर को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --host_per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों के gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, iOS का कम से कम ज़रूरी वर्शन. अगर यह जानकारी नहीं दी गई है, तो 'ios_sdk_version' का इस्तेमाल किया जाता है.
--ios_multi_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ios_application बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. नतीजा एक यूनिवर्सल बाइनरी होती है, जिसमें सभी आर्किटेक्चर शामिल होते हैं.
--[no]legacy_whole_archivedefault: "true"-
यह विकल्प अब काम नहीं करता. इसकी जगह --incompatible_remove_legacy_whole_archive का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7362 पर जाएं. चालू होने पर, cc_binary नियमों के लिए --whole-archive का इस्तेमाल करें. इन नियमों में linkshared=True और linkopts में linkstatic=True या '-static' होना चाहिए. यह सिर्फ़ पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके बजाय, हमेशा लिंक करने की सुविधा (alwayslink=1) का इस्तेमाल करना बेहतर विकल्प है.
--linkopt=<a string>कई बार इस्तेमाल किया गया हो-
लिंक करते समय gcc को पास करने का अतिरिक्त विकल्प.
--ltobackendopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ बैकएंड के चरण में पास करने का अतिरिक्त विकल्प (under --features=thin_lto).
--ltoindexopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ इंडेक्सिंग के चरण में पास करने के लिए अतिरिक्त विकल्प (--features=thin_lto के तहत).
--macos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
Apple macOS के बाइनरी फ़ाइलें बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची.
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--memprof_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
memprof प्रोफ़ाइल का इस्तेमाल करें.
टैग:
affects_outputs --[no]objc_debug_with_GLIBCXXdefault: "false"-
अगर इसे सेट किया गया है और कंपाइलेशन मोड को 'dbg' पर सेट किया गया है, तो GLIBCXX_DEBUG, GLIBCXX_DEBUG_PEDANTIC, और GLIBCPP_CONCEPT_CHECKS को तय करें.
टैग:
action_command_lines --[no]objc_enable_binary_strippingdefault: "false"-
लिंक की गई बाइनरी पर सिंबल और डेड-कोड स्ट्रिपिंग की जानी चाहिए या नहीं. अगर इस फ़्लैग और --compilation_mode=opt, दोनों को सेट किया जाता है, तो बाइनरी स्ट्रिपिंग की जाएगी.
टैग:
action_command_lines --objccopt=<a string>कई बार इस्तेमाल किया गया हो-
Objective-C/C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने के लिए अतिरिक्त विकल्प.
टैग:
action_command_lines --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ फ़ाइलों को कंपाइल करते समय, gcc को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों की gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ बैकएंड ऑब्जेक्ट को कंपाइल करते समय, LTO बैकएंड (under --features=thin_lto) को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_ltobackendopt=//foo/.*.o,-//foo/bar.o@-O0, //foo/ में मौजूद bar.o को छोड़कर, सभी o फ़ाइलों के LTO बैकएंड कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --propeller_optimize=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
बिल्ड टारगेट को ऑप्टिमाइज़ करने के लिए, Propeller की प्रोफ़ाइल की जानकारी का इस्तेमाल करें. Propeller की प्रोफ़ाइल में, कम से कम दो फ़ाइलों में से एक फ़ाइल होनी चाहिए. ये फ़ाइलें, सीसी प्रोफ़ाइल और एलडी प्रोफ़ाइल हैं. यह फ़्लैग, बिल्ड लेबल स्वीकार करता है. यह लेबल, प्रोपेलर प्रोफ़ाइल की इनपुट फ़ाइलों का रेफ़रंस देता है. उदाहरण के लिए, a/b/BUILD में मौजूद BUILD फ़ाइल, लेबल को इस तरह से तय करती है:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Bazel को ये फ़ाइलें दिखाने के लिए, हो सकता है कि आपको संबंधित पैकेज में exports_files डायरेक्टिव जोड़ना पड़े. इस विकल्प का इस्तेमाल इस तरह किया जाना चाहिए: --propeller_optimize=//a/b:propeller_profile
--propeller_optimize_absolute_cc_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए cc_profile फ़ाइल का पूरा पाथ.
टैग:
affects_outputs --propeller_optimize_absolute_ld_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए, ld_profile फ़ाइल का ऐब्सलूट पाथ.
टैग:
affects_outputs --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines -
अगर यह विकल्प चुना जाता है, तो एक जैसी सुविधा देने वाली नेटिव लाइब्रेरी को अलग-अलग टारगेट के साथ शेयर किया जाएगा
--[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs --strip=<always, sometimes or never>डिफ़ॉल्ट: "कभी-कभी"-
इससे यह तय किया जाता है कि बाइनरी और शेयर की गई लाइब्रेरी को स्ट्रिप करना है या नहीं. इसके लिए, "-Wl,--strip-debug" का इस्तेमाल किया जाता है. 'sometimes' की डिफ़ॉल्ट वैल्यू का मतलब है कि --compilation_mode=fastbuild होने पर ही स्ट्रिप करें.
टैग:
affects_outputs --stripopt=<a string>कई बार इस्तेमाल किया गया हो-
'<name>.stripped' बाइनरी जनरेट करते समय, स्ट्रिप को पास करने के लिए अतिरिक्त विकल्प.
--tvos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. इनके लिए Apple tvOS बाइनरी बनानी हैं.
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, tvOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'tvos_sdk_version' का इस्तेमाल किया जाता है.
--visionos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन आर्किटेक्चर की सूची जिनके लिए Apple visionOS बाइनरी बनानी हैं.
--watchos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई, उन आर्किटेक्चर की सूची जिनके लिए Apple watchOS बाइनरी बनानी हैं.
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, watchOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'watchos_sdk_version' का इस्तेमाल किया जाता है.
--xbinary_fdo=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, XbinaryFDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. डिफ़ॉल्ट क्रॉस बाइनरी प्रोफ़ाइल का नाम तय करें. इस विकल्प का इस्तेमाल --fdo_instrument/--fdo_optimize/--fdo_profile के साथ करने पर, उन विकल्पों को हमेशा प्राथमिकता दी जाएगी. ऐसा माना जाएगा कि xbinary_fdo को कभी भी तय नहीं किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]desugar_for_androiddefault: "true"-
यह तय करता है कि Java 8 के बाइटकोड को dexing से पहले desugar करना है या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]desugar_java8_libsdefault: "false"-
लेगसी डिवाइसों के लिए बनाए गए ऐप्लिकेशन में, Java 8 की सुविधा वाली लाइब्रेरी शामिल करनी हैं या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_check_desugar_depsdefault: "true"-
Android बाइनरी लेवल पर, सही डिसुगरिंग की दोबारा जांच करनी है या नहीं.
--[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--experimental_one_version_enforcement=<off, warning or error>default: "OFF"-
इस विकल्प को चालू करने पर, यह लागू किया जाता है कि java_binary नियम में क्लासपाथ पर एक ही क्लास फ़ाइल का एक से ज़्यादा वर्शन नहीं हो सकता. इस नीति के उल्लंघन को लागू करने से, बिल्ड में गड़बड़ी हो सकती है या सिर्फ़ चेतावनियां मिल सकती हैं.
टैग:
loading_and_analysis --experimental_strict_java_deps=<off, warn, error, strict or default>default: "default"-
अगर यह सही है, तो यह जांच करता है कि Java टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]incompatible_disable_native_android_rulesdefault: "false"-
यह नीति चालू होने पर, Android के नेटिव नियमों का सीधे तौर पर इस्तेमाल नहीं किया जा सकेगा. कृपया https://github.com/bazelbuild/rules_android पर जाकर, Starlark Android के नियमों का इस्तेमाल करें
--[no]incompatible_disable_native_apple_binary_ruledefault: "false"-
कोई कार्रवाई नहीं. इसे पुराने सिस्टम के साथ काम करने की सुविधा के लिए यहां रखा गया है.
--[no]one_version_enforcement_on_java_testsdefault: "true"-
इसे चालू करने पर और experimental_one_version_enforcement को NONE के अलावा किसी अन्य वैल्यू पर सेट करने पर, java_test टारगेट पर एक वर्शन लागू करें. इस फ़्लैग को बंद किया जा सकता है. इससे, इंक्रीमेंटल टेस्ट की परफ़ॉर्मेंस बेहतर होगी. हालांकि, इससे एक वर्शन के संभावित उल्लंघनों का पता नहीं चल पाएगा.
टैग:
loading_and_analysis --python_native_rules_allowlist=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
--incompatible_python_disallow_native_rules को लागू करते समय इस्तेमाल करने के लिए, अनुमति वाली सूची (package_group टारगेट).
टैग:
loading_and_analysis --[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--strict_proto_deps=<off, warn, error, strict or default>डिफ़ॉल्ट: "error"-
जब तक यह विकल्प बंद नहीं होता, तब तक यह जांच करता है कि proto_library टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --strict_public_imports=<off, warn, error, strict or default>default: "off"-
अगर यह विकल्प बंद नहीं है, तो यह जांच करता है कि proto_library टारगेट, 'import public' में इस्तेमाल किए गए सभी टारगेट को एक्सपोर्ट के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --[no]strict_system_includesdefault: "false"-
अगर यह विकल्प चालू है, तो सिस्टम में शामिल किए गए पाथ (-isystem) से मिले हेडर भी घोषित किए जाने चाहिए.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- ऐसे विकल्प जो किसी बिल्ड के हस्ताक्षर करने के आउटपुट पर असर डालते हैं:
--apk_signing_method=<v1, v2, v1_v2 or v4>डिफ़ॉल्ट: "v1_v2"-
APK पर साइन करने के लिए इस्तेमाल किया जाने वाला तरीका
टैग:
action_command_lines,affects_outputs,loading_and_analysis --[no]device_debug_entitlementsdefault: "true"-
अगर यह नीति सेट है और कंपाइलेशन मोड 'opt' नहीं है, तो हस्ताक्षर करते समय, objc ऐप्लिकेशन में डीबग एनटाइटलमेंट शामिल होंगे.
टैग:
changes_inputs --ios_signing_cert_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
iOS पर हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले सर्टिफ़िकेट का नाम. इसे सेट न करने पर, प्रोविज़निंग प्रोफ़ाइल का इस्तेमाल किया जाएगा. यह सर्टिफ़िकेट की कीचेन आइडेंटिटी प्रेफ़रेंस या सर्टिफ़िकेट के कॉमन नेम का (सबस्ट्रिंग) हो सकता है. यह जानकारी, codesign के मैन पेज (SIGNING IDENTITIES) के मुताबिक है.
टैग:
action_command_lines
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_disallow_sdk_frameworks_attributesdefault: "false"-
अगर सही है, तो objc_library और objc_import में sdk_frameworks और weak_sdk_frameworks एट्रिब्यूट को अनुमति न दें.
--[no]incompatible_objc_alwayslink_by_defaultdefault: "false"-
अगर सही है, तो objc_library और objc_import में alwayslink एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू को सही पर सेट करें.
--[no]incompatible_python_disallow_native_rulesdefault: "false"-
अगर यह विकल्प सही है, तो बिल्ट-इन py_* नियमों का इस्तेमाल करने पर गड़बड़ी होती है. इसके बजाय, rule_python नियमों का इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/17773 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis --[no]break_build_on_parallel_dex2oat_failuredefault: "false"-
अगर यह विकल्प सही है, तो dex2oat की कार्रवाई पूरी न होने पर, टेस्ट रनटाइम के दौरान dex2oat को एक्ज़ीक्यूट करने के बजाय, बिल्ड टूट जाएगा.
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>कई बार इस्तेमाल किया गया हो-
टेस्ट के लिए, संसाधनों की डिफ़ॉल्ट सीमा को बदलें. सही फ़ॉर्मैट <resource>=<value> है. अगर <value> के तौर पर कोई पॉज़िटिव संख्या दी जाती है, तो यह टेस्ट के सभी साइज़ के लिए डिफ़ॉल्ट संसाधनों को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार नंबर दिए जाते हैं, तो वे छोटे, मीडियम, बड़े, और बहुत बड़े टेस्ट साइज़ के लिए, संसाधन की रकम को बदल देंगे. वैल्यू, HOST_RAM/HOST_CPU भी हो सकती हैं. इसके बाद, [-|]<float> (उदाहरण के लिए, memory=HOST_RAM.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4) भी जोड़ा जा सकता है. इस फ़्लैग से तय किए गए डिफ़ॉल्ट टेस्ट संसाधनों को, टैग में बताए गए संसाधनों से बदल दिया जाता है.
--[no]experimental_android_use_parallel_dex2oatdefault: "false"-
android_test को तेज़ करने के लिए, dex2oat का इस्तेमाल करें.
टैग:
loading_and_analysis,host_machine_resource_optimizations,experimental --[no]ios_memleaksdefault: "false"-
ios_test टारगेट में मेमोरी लीक की जांच करने की सुविधा चालू करें.
टैग:
action_command_lines --ios_simulator_device=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर में iOS ऐप्लिकेशन चलाने के दौरान, सिम्युलेट किए जाने वाले डिवाइस का नाम. उदाहरण के लिए, 'iPhone 6'. सिम्युलेटर को जिस मशीन पर चलाया जाएगा उस पर 'xcrun simctl list devicetypes' कमांड चलाकर, डिवाइसों की सूची देखी जा सकती है.
टैग:
test_runner --ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर पर चलाने या टेस्ट करने के लिए, iOS का वर्शन. अगर नियम में कोई टारगेट डिवाइस तय किया गया है, तो ios_test नियमों के लिए इसे अनदेखा कर दिया जाता है.
टैग:
test_runner --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
इससे पता चलता है कि हर टेस्ट को कितनी बार चलाना है. अगर किसी वजह से, इनमें से कोई भी कोशिश पूरी नहीं होती है, तो पूरे टेस्ट को 'टेस्ट पूरा नहीं हुआ' के तौर पर मार्क किया जाता है. आम तौर पर, बताई गई वैल्यू सिर्फ़ एक पूर्णांक होती है. उदाहरण: --runs_per_test=3 से सभी टेस्ट तीन बार चलेंगे. वैकल्पिक सिंटैक्स: regex_filter@runs_per_test. यहां runs_per_test का मतलब पूर्णांक वैल्यू से है. वहीं, regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. उदाहरण: --runs_per_test=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार चलाता है. हालांकि, foo/bar में मौजूद टेस्ट को तीन बार नहीं चलाता. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो टेस्ट सिर्फ़ एक बार चलाया जाता है.
--test_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह विकल्प, टेस्ट रनर एनवायरमेंट में इंजेक्ट किए जाने वाले अतिरिक्त एनवायरमेंट वैरिएबल के बारे में बताता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, इसकी वैल्यू Bazel क्लाइंट एनवायरमेंट से पढ़ी जाएगी. इसके अलावा, इसे <code>name=value</code> पेयर के हिसाब से भी तय किया जा सकता है. पहले से सेट किए गए वैरिएबल को <code>=name</code> के ज़रिए अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है, ताकि कई वैरिएबल तय किए जा सकें. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
टैग:
test_runner --test_timeout=<a single integer or comma-separated list of 4 integers>default: "-1"-
जांच के टाइम आउट के लिए, जांच के टाइम आउट की डिफ़ॉल्ट वैल्यू (सेकंड में) बदलें. अगर एक पॉज़िटिव पूर्णांक वैल्यू दी जाती है, तो यह सभी कैटगरी को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार पूर्णांक दिए जाते हैं, तो वे छोटे, सामान्य, लंबे, और हमेशा के लिए (इसी क्रम में) टाइम आउट को बदल देंगे. दोनों फ़ॉर्म में, -1 वैल्यू से Blaze को उस कैटगरी के लिए डिफ़ॉल्ट टाइमआउट का इस्तेमाल करने के लिए कहा जाता है.
--[no]zip_undeclared_test_outputsdefault: "false"-
सही होने पर, टेस्ट के ऐसे आउटपुट को zip फ़ाइल में संग्रहित किया जाएगा जिनके बारे में जानकारी नहीं दी गई है.
टैग:
test_runner
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--[no]experimental_filter_library_jar_with_program_jardefault: "false"-
ProGuard ProgramJar को फ़िल्टर करें, ताकि LibraryJar में मौजूद सभी क्लास हट जाएं.
--[no]experimental_inmemory_dotd_filesdefault: "true"-
अगर यह सुविधा चालू है, तो C++ .d फ़ाइलें सीधे तौर पर रिमोट बिल्ड नोड से मेमोरी में पास की जाएंगी. इन्हें डिस्क में नहीं लिखा जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_inmemory_jdeps_filesdefault: "true"-
अगर यह सुविधा चालू है, तो Java कंपाइलेशन से जनरेट हुई डिपेंडेंसी (.jdeps) फ़ाइलों को डिस्क में सेव करने के बजाय, सीधे रिमोट बिल्ड नोड से मेमोरी में पास किया जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_retain_test_configuration_across_testonlydefault: "false"-
इस विकल्प को चालू करने पर, --trim_test_configuration, testonly=1 के तौर पर मार्क किए गए नियमों के लिए टेस्ट कॉन्फ़िगरेशन को ट्रिम नहीं करेगा. इसका मकसद, कार्रवाई से जुड़ी समस्याओं को कम करना है. ऐसा तब होता है, जब टेस्ट नहीं किए गए नियम, cc_test नियमों पर निर्भर होते हैं. अगर --trim_test_configuration की वैल्यू 'गलत है' पर सेट है, तो इसका कोई असर नहीं होगा.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_unsupported_and_brittle_include_scanningdefault: "false"-
इनपुट फ़ाइलों से #include लाइनें पार्स करके, इनपुट को C/C++ कंपाइलेशन तक सीमित करना है या नहीं. इससे परफ़ॉर्मेंस और इंक्रीमेंटैलिटी को बेहतर बनाया जा सकता है. इसके लिए, कंपाइलेशन इनपुट ट्री का साइज़ कम किया जाता है. हालांकि, इससे बिल्ड भी टूट सकते हैं, क्योंकि include स्कैनर, C प्रीप्रोसेसर सिमैंटिक्स को पूरी तरह से लागू नहीं करता है. खास तौर पर, यह डाइनैमिक #include डायरेक्टिव को नहीं समझता है और प्रीप्रोसेसर की शर्त वाली लॉजिक को अनदेखा करता है. इसे अपने जोखिम पर इस्तेमाल करें. इस फ़्लैग से जुड़ी सभी समस्याएं बंद कर दी जाएंगी.
टैग:
loading_and_analysis,execution,changes_inputs,experimental --[no]incremental_dexingdefault: "true"-
यह हर जार फ़ाइल के लिए, अलग से डेक्सिंग का ज़्यादातर काम करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]objc_use_dotd_pruningdefault: "true"-
अगर इसे सेट किया जाता है, तो clang से जनरेट हुई .d फ़ाइलों का इस्तेमाल, objc कंपाइल में पास किए गए इनपुट के सेट को कम करने के लिए किया जाएगा.
--[no]process_headers_in_dependenciesdefault: "false"-
//a:a टारगेट बनाते समय, उन सभी टारगेट में हेडर प्रोसेस करें जिन पर //a:a निर्भर करता है. ऐसा तब करें, जब टूलचेन के लिए हेडर प्रोसेसिंग चालू हो.
टैग:
execution --[no]trim_test_configurationdefault: "true"-
यह सुविधा चालू करने पर, टेस्ट से जुड़े विकल्प, बिल्ड के टॉप लेवल के नीचे से हट जाएंगे. इस फ़्लैग के चालू होने पर, टेस्ट को नॉन-टेस्ट नियमों की डिपेंडेंसी के तौर पर नहीं बनाया जा सकता. हालांकि, टेस्ट से जुड़े विकल्पों में बदलाव करने से, नॉन-टेस्ट नियमों का फिर से विश्लेषण नहीं किया जाएगा.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-.*"-
टूलचेन रिज़ॉल्यूशन के दौरान डीबग की जानकारी प्रिंट करें. इस फ़्लैग में रेगुलर एक्सप्रेशन का इस्तेमाल किया जाता है. इसकी जांच टूलचेन टाइप और खास टारगेट के हिसाब से की जाती है, ताकि यह पता लगाया जा सके कि किसे डीबग करना है. एक से ज़्यादा रेगुलर एक्सप्रेशन को कॉमा लगाकर अलग किया जा सकता है. इसके बाद, हर रेगुलर एक्सप्रेशन की अलग-अलग जांच की जाती है. ध्यान दें: इस फ़्लैग का आउटपुट बहुत जटिल होता है. इसलिए, यह सिर्फ़ टूलचेन की समस्या हल करने वाले विशेषज्ञों के लिए काम का हो सकता है.
टैग:
terminal_output --[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
--[no]incompatible_default_to_explicit_init_pydefault: "false"-
इस फ़्लैग से डिफ़ॉल्ट व्यवहार बदल जाता है, ताकि Python टारगेट की रनफ़ाइल में init.py फ़ाइलें अपने-आप न बन पाएं. खास तौर पर, जब किसी py_binary या py_test टारगेट के लिए legacy_create_init को "auto" (डिफ़ॉल्ट) पर सेट किया जाता है, तो इस फ़्लैग के सेट होने पर ही इसे फ़ॉल्स के तौर पर माना जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10076 पर जाएं.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]cache_test_results[-t] default: "auto"-
'auto' पर सेट होने पर, Bazel किसी टेस्ट को सिर्फ़ तब फिर से चलाता है, जब: (1) Bazel को टेस्ट या उसकी डिपेंडेंसी में बदलावों का पता चलता है, (2) टेस्ट को बाहरी के तौर पर मार्क किया गया है, (3) --runs_per_test के साथ कई टेस्ट रन का अनुरोध किया गया था या(4) टेस्ट पहले फ़ेल हो गया था. अगर इसे 'हां' पर सेट किया जाता है, तो Bazel, बाहरी के तौर पर मार्क किए गए टेस्ट को छोड़कर, सभी टेस्ट के नतीजों को कैश मेमोरी में सेव करता है. 'नहीं' पर सेट करने पर, Bazel किसी भी टेस्ट के नतीजे को कैश मेमोरी में सेव नहीं करता है.
--[no]experimental_cancel_concurrent_testsdefault: "never"-
अगर 'on_failed' या 'on_passed' है, तो Blaze उस नतीजे के साथ पहली बार चलने वाले टेस्ट को रद्द कर देगा. यह विकल्प, सिर्फ़ --runs_per_test_detects_flakes के साथ काम करता है.
--[no]experimental_fetch_all_coverage_outputsdefault: "false"-
अगर यह विकल्प सही है, तो कवरेज रन के दौरान Bazel, हर टेस्ट के लिए कवरेज डेटा डायरेक्ट्री को फ़ेच करता है.
--[no]experimental_generate_llvm_lcovdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो Clang के लिए कवरेज, LCOV रिपोर्ट जनरेट करेगा.
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback>default: "bazel"-
यह Java कंपाइलेशन के लिए, कम किए गए क्लासपाथ को चालू करता है.
--[no]experimental_run_android_lint_on_java_rulesdefault: "false"-
java_* सोर्स की पुष्टि करनी है या नहीं.
टैग:
affects_outputs,experimental --[no]explicit_java_test_depsdefault: "false"-
java_test में JUnit या Hamcrest के लिए, TestRunner के deps से गलती से पाने के बजाय, साफ़ तौर पर डिपेंडेंसी तय करें. फ़िलहाल, यह सिर्फ़ Bazel के लिए काम करता है.
--host_java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह Java लॉन्चर है. इसका इस्तेमाल उन टूल के लिए किया जाता है जिन्हें बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है.
--host_javacopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान लागू होने वाले टूल बनाने के लिए, javac को पास किए जाने वाले अतिरिक्त विकल्प.
--host_jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान एक्ज़ीक्यूट किए जाने वाले टूल बनाते समय, Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--[no]incompatible_check_sharding_supportdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, शेयर किए गए टेस्ट को तब फ़ेल कर देगा, जब टेस्ट रनर यह नहीं बताता कि वह TEST_SHARD_STATUS_FILE में दिए गए पाथ पर फ़ाइल को ऐक्सेस करके, शेयर करने की सुविधा के साथ काम करता है. अगर यह वैल्यू गलत है, तो शार्डिंग की सुविधा के साथ काम न करने वाला टेस्ट रनर, हर शार्ड में सभी टेस्ट चलाएगा.
टैग:
incompatible_change --[no]incompatible_exclusive_test_sandboxeddefault: "true"-
अगर यह विकल्प चुना जाता है, तो एक्सक्लूसिव टेस्ट, सैंडबॉक्स की गई रणनीति के साथ चलेंगे. 'local' टैग जोड़कर, स्थानीय तौर पर सिर्फ़ एक टेस्ट रन करें
टैग:
incompatible_change --[no]incompatible_strict_action_envdefault: "false"-
अगर यह विकल्प सही है, तो Bazel ऐसे एनवायरमेंट का इस्तेमाल करता है जिसमें PATH के लिए स्टैटिक वैल्यू होती है. साथ ही, यह LD_LIBRARY_PATH को इनहेरिट नहीं करता. अगर आपको क्लाइंट से कुछ एनवायरमेंट वैरिएबल इनहेरिट करने हैं, तो --action_env=ENV_VARIABLE का इस्तेमाल करें. हालांकि, ध्यान दें कि ऐसा करने से, अलग-अलग उपयोगकर्ताओं के लिए कैश मेमोरी का इस्तेमाल नहीं किया जा सकेगा. ऐसा तब होगा, जब शेयर की गई कैश मेमोरी का इस्तेमाल किया जा रहा हो.
--j2objc_translation_flags=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
J2ObjC टूल को पास करने के लिए अन्य विकल्प.
--java_debug-
इस विकल्प का इस्तेमाल करने पर, Java टेस्ट की Java वर्चुअल मशीन, JDWP के साथ काम करने वाले डीबगर (जैसे कि jdb) से कनेक्शन मिलने का इंतज़ार करती है. इसके बाद ही, टेस्ट शुरू होता है. इसका मतलब है कि -test_output=streamed.
बढ़कर:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results --[no]java_depsdefault: "true"-
हर Java टारगेट के लिए, डिपेंडेंसी की जानकारी जनरेट करता है. फ़िलहाल, यह कंपाइल-टाइम क्लासपाथ के लिए है.
--[no]java_header_compilationdefault: "true"-
सोर्स से सीधे तौर पर ijars कंपाइल करें.
--java_language_version=<a string>default: ""-
Java भाषा का वर्शन
--java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
Java बाइनरी बनाते समय इस्तेमाल किया जाने वाला Java लॉन्चर. अगर इस फ़्लैग को खाली स्ट्रिंग पर सेट किया जाता है, तो JDK लॉन्चर का इस्तेमाल किया जाता है. "लॉन्चर" एट्रिब्यूट, इस फ़्लैग को बदल देता है.
--java_runtime_version=<a string>डिफ़ॉल्ट: "local_jdk"-
Java रनटाइम का वर्शन
--javacopt=<a string>कई बार इस्तेमाल किया गया हो-
javac को पास करने के लिए अन्य विकल्प.
--jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--legacy_main_dex_list_generator=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक बाइनरी तय करता है, जिसका इस्तेमाल उन क्लास की सूची जनरेट करने के लिए किया जाता है जिन्हें लेगसी मल्टीडेक्स को कंपाइल करते समय, मुख्य डेक्स में होना चाहिए.
--optimizing_dexer=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बिना शार्डिंग के डेक्सिंग करने के लिए, बाइनरी तय करता है.
--plugin=<a build target label>कई बार इस्तेमाल किया गया हो-
बिल्ड में इस्तेमाल किए जाने वाले प्लगिन. फ़िलहाल, यह java_plugin के साथ काम करता है.
--proguard_top=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बताता है कि Java बाइनरी बनाते समय, कोड हटाने के लिए ProGuard के किस वर्शन का इस्तेमाल करना है.
--proto_compiler=<a build target label>default: "@bazel_tools//tools/proto:protoc"-
प्रोटो-कंपाइलर का लेबल.
--[no]proto_profiledefault: "true"-
प्रोटो कंपाइलर को profile_path पास करना है या नहीं.
--proto_profile_path=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रोफ़ाइल, proto कंपाइलर को profile_path के तौर पर पास की जाती है. अगर इसे सेट नहीं किया गया है, लेकिन --proto_profile सही है (डिफ़ॉल्ट रूप से), तो --fdo_optimize से पाथ का अनुमान लगाता है.
--proto_toolchain_for_cc=<a build target label>default: "@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें C++ प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_j2objc=<a build target label>default: "@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें j2objc प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_java=<a build target label>default: "@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें Java protos को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_javalite=<a build target label>default: "@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें JavaLite protos को कंपाइल करने का तरीका बताया गया है
--protocopt=<a string>कई बार इस्तेमाल किया गया हो-
प्रोटोबफ़ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
टैग:
affects_outputs --[no]runs_per_test_detects_flakesdefault: "false"-
अगर यह विकल्प चुना जाता है, तो जिस भी शार्ड में कम से कम एक रन/कोशिश पास होती है और कम से कम एक रन/कोशिश फ़ेल होती है उसे FLAKY स्टेटस मिलता है.
--shell_executable=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Bazel के इस्तेमाल के लिए, शेल एक्ज़ीक्यूटेबल का ऐब्सलूट पाथ. अगर इसे सेट नहीं किया जाता है, लेकिन BAZEL_SH एनवायरमेंट वैरिएबल को Bazel के पहले इनवोकेशन (जो Bazel सर्वर शुरू करता है) पर सेट किया जाता है, तो Bazel इसका इस्तेमाल करता है. अगर इनमें से कोई भी सेट नहीं है, तो Bazel, ऑपरेटिंग सिस्टम के हिसाब से हार्ड-कोड किए गए डिफ़ॉल्ट पाथ का इस्तेमाल करता है. जैसे, Windows: c:/msys64/usr/bin/bash.exe, FreeBSD: /usr/local/bin/bash, और अन्य सभी: /bin/bash. ध्यान दें कि bash के साथ काम न करने वाले शेल का इस्तेमाल करने से, जनरेट की गई बाइनरी फ़ाइलों को बनाने या उन्हें चलाने में समस्याएं आ सकती हैं.
टैग:
loading_and_analysis --test_arg=<a string>कई बार इस्तेमाल किया गया हो-
इस विकल्प की मदद से, टेस्ट एक्ज़ीक्यूटेबल को पास किए जाने वाले अतिरिक्त विकल्प और आर्ग्युमेंट तय किए जाते हैं. कई आर्ग्युमेंट तय करने के लिए, इसका इस्तेमाल कई बार किया जा सकता है. अगर एक से ज़्यादा टेस्ट किए जाते हैं, तो हर टेस्ट को एक जैसे आर्ग्युमेंट मिलेंगे. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
--test_filter=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह टेस्ट फ़्रेमवर्क को फ़ॉरवर्ड किए जाने वाले फ़िल्टर के बारे में बताता है. इस कुकी का इस्तेमाल, टेस्ट को सीमित करने के लिए किया जाता है. ध्यान दें कि इससे यह तय नहीं होता कि कौनसे टारगेट बनाए जाएंगे.
--test_result_expiration=<an integer>default: "-1"-
इस विकल्प को बंद कर दिया गया है और इससे कोई असर नहीं पड़ता.
--[no]test_runner_fail_fastdefault: "false"-
यह विकल्प, टेस्ट रनर को तुरंत फ़ॉरवर्ड करता है. पहली गड़बड़ी होने पर, टेस्ट रनर को टेस्ट बंद कर देना चाहिए.
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>default: "explicit"-
टेस्ट शार्डिंग के लिए रणनीति तय करें: 'shard_count' BUILD एट्रिब्यूट मौजूद होने पर ही शार्डिंग का इस्तेमाल करने के लिए, 'explicit' का इस्तेमाल करें. 'disabled' को कभी भी टेस्ट शार्डिंग का इस्तेमाल न करने के लिए सेट करें. 'forced=k' का इस्तेमाल, 'shard_count' BUILD एट्रिब्यूट के बावजूद, टेस्टिंग के लिए 'k' शार्ड लागू करने के लिए किया जाता है.
--tool_java_language_version=<a string>default: ""-
बिल्ड के दौरान ज़रूरी टूल को चलाने के लिए इस्तेमाल किया गया Java भाषा का वर्शन
--tool_java_runtime_version=<a string>default: "remotejdk_11"-
बिल्ड के दौरान टूल को एक्ज़ीक्यूट करने के लिए इस्तेमाल किया गया Java रनटाइम वर्शन
--[no]use_ijarsdefault: "true"-
अगर यह विकल्प चालू है, तो Java कंपाइलेशन के लिए इंटरफ़ेस जार का इस्तेमाल किया जाता है. इससे इन्क्रीमेंटल कंपाइलेशन तेज़ी से होगा, लेकिन गड़बड़ी के मैसेज अलग-अलग हो सकते हैं.
डंप के विकल्प
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]action_cachedefault: "false"-
ऐक्शन की कैश मेमोरी में सेव किए गए कॉन्टेंट को डंप करें.
टैग:
bazel_monitoring --memory=<memory mode>डिफ़ॉल्ट: ब्यौरा देखें-
दिए गए Skyframe नोड के लिए, मेमोरी के इस्तेमाल की जानकारी डंप करें.
टैग:
bazel_monitoring --[no]packagesdefault: "false"-
पैकेज की कैश मेमोरी में सेव किए गए कॉन्टेंट को डंप करें.
टैग:
bazel_monitoring --[no]rule_classesdefault: "false"-
डंप नियम क्लास.
टैग:
bazel_monitoring --[no]rulesdefault: "false"-
डंप के नियम. इनमें मेमोरी के इस्तेमाल की संख्या और जानकारी शामिल होती है (अगर मेमोरी को ट्रैक किया जाता है).
टैग:
bazel_monitoring --skyframe=<off, summary, count, value, deps, rdeps, function_graph, active_directories or active_directories_frontier_deps>default: "off"-
Skyframe ग्राफ़ को डंप करें.
टैग:
bazel_monitoring --skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: ".*"-
आउटपुट के लिए SkyKey के नामों का रेगुलर एक्सप्रेशन वाला फ़िल्टर. इसका इस्तेमाल सिर्फ़ --skyframe=deps, rdeps, function_graph के साथ किया जाता है.
टैग:
bazel_monitoring --skylark_memory=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कमांड, pprof के साथ काम करने वाली मेमोरी प्रोफ़ाइल को तय किए गए पाथ पर डंप करती है. ज़्यादा जानने के लिए, कृपया https://github.com/google/pprof पर जाएं.
टैग:
bazel_monitoring
डेटा फ़ेच करने के विकल्प
test से सभी विकल्प इनहेरिट करता है.
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]alldefault: "false"-
यह किसी टारगेट या रिपॉज़िटरी को बनाने के लिए ज़रूरी सभी बाहरी रिपॉज़िटरी को फ़ेच करता है. अगर कोई अन्य फ़्लैग और तर्क नहीं दिया जाता है, तो यह डिफ़ॉल्ट रूप से लागू होता है. यह सिर्फ़ तब काम करता है, जब --enable_bzlmod चालू हो.
टैग:
changes_inputs --[no]keep_going[-k] डिफ़ॉल्ट: "false"-
गड़बड़ी होने के बाद भी ज़्यादा से ज़्यादा काम जारी रखें. हालांकि, फ़ेल हुए टारगेट और उस पर निर्भर टारगेट का विश्लेषण नहीं किया जा सकता. हालांकि, इन टारगेट की अन्य ज़रूरी शर्तों का विश्लेषण किया जा सकता है.
टैग:
eagerness_to_exit --loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
डेटा लोड करने/विश्लेषण करने के लिए, एक साथ इस्तेमाल की जाने वाली थ्रेड की संख्या. इसमें पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") का इस्तेमाल किया जाता है. इसके बाद, ऑपरेशन ([-|]<float>) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, "auto", "HOST_CPUS.5". "auto" वैल्यू, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू सेट करती है. कम से कम 1 होना चाहिए
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- Bzlmod के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--[no]configuredefault: "false"-
सिर्फ़ उन रिपॉज़िटरी को फ़ेच करता है जिन्हें सिस्टम कॉन्फ़िगरेशन के मकसद से 'कॉन्फ़िगर करें' के तौर पर मार्क किया गया है. यह सिर्फ़ तब काम करता है, जब --enable_bzlmod चालू हो.
टैग:
changes_inputs --[no]forcedefault: "false"-
अगर कोई मौजूदा रिपॉज़िटरी है, तो उसे अनदेखा करें और रिपॉज़िटरी को फिर से फ़ेच करें. यह सिर्फ़ तब काम करता है, जब --enable_bzlmod चालू हो.
टैग:
changes_inputs --repo=<a string>कई बार इस्तेमाल किया गया हो-
यह सिर्फ़ बताई गई रिपॉज़िटरी को फ़ेच करता है. यह {@apparent_repo_name} या {@@canonical_repo_name} हो सकती है. यह सिर्फ़ तब काम करता है, जब --enable_bzlmod चालू हो.
टैग:
changes_inputs
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
- बिल्ड के एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_persistent_aar_extractordefault: "false"-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट एएआर एक्सट्रैक्टर चालू करें.
टैग:
execution,experimental --[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_split_coverage_postprocessingdefault: "false"-
सही होने पर, Bazel एक नए स्पॉन में टेस्ट के लिए कवरेज पोस्टप्रोसेसिंग चलाएगा.
टैग:
execution,experimental --[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--persistent_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार चालू करें.
बढ़कर:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker --persistent_android_resource_processor-
वर्कर्स का इस्तेमाल करके, Android रिसॉर्स प्रोसेसर को लगातार चालू रखने की सुविधा चालू करें.
इनमें बदल जाता है:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker --persistent_multiplex_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार कई बार चलाने की सुविधा चालू करें.
बढ़कर:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar --persistent_multiplex_android_resource_processor-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट मल्टीप्लेक्स किए गए Android रिसॉर्स प्रोसेसर को चालू करें.
बढ़कर:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers --persistent_multiplex_android_tools-
Android के लगातार काम करने वाले और मल्टीप्लेक्स किए गए टूल (dexing, desugaring, resource processing) चालू करें.
बढ़कर:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar --[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--android_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Android टारगेट कंपाइलर.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_manifest_merger=<legacy, android or force_android>डिफ़ॉल्ट: "android"-
android_binary नियमों के लिए, मेनिफ़ेस्ट मर्जर को चुनता है. यह फ़्लैग, लेगसी मर्जर से Android मेनिफ़ेस्ट मर्जर पर ट्रांज़िशन करने में मदद करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_platforms=<a build target label>default: ""-
यह विकल्प उन प्लैटफ़ॉर्म को सेट करता है जिनका इस्तेमाल android_binary टारगेट करते हैं. अगर एक से ज़्यादा प्लैटफ़ॉर्म तय किए गए हैं, तो बाइनरी एक फ़ैट APK है. इसमें हर टारगेट प्लैटफ़ॉर्म के लिए नेटिव बाइनरी शामिल होती हैं.
टैग:
changes_inputs,loading_and_analysis,loses_incremental_state --cc_output_directory_tag=<a string>default: ""-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
affects_outputs --compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट को कंपाइल करने के लिए, C++ कंपाइलर.
--coverage_output_generator=<a build target label>default: "@bazel_tools//tools/test:lcov_merger"-
उस बाइनरी का पाथ जिसका इस्तेमाल, रॉ कवरेज रिपोर्ट को पोस्टप्रोसेस करने के लिए किया जाता है. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:lcov_merger' होती है.
--coverage_report_generator=<a build target label>default: "@bazel_tools//tools/test:coverage_report_generator"-
कवरेज रिपोर्ट जनरेट करने के लिए इस्तेमाल किए गए बाइनरी की जगह. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:coverage_report_generator' होती है.
--coverage_support=<a build target label>default: "@bazel_tools//tools/test:coverage_support"-
सहायता देने वाली फ़ाइलों की जगह. ये फ़ाइलें, कोड कवरेज की जानकारी इकट्ठा करने वाली हर टेस्ट कार्रवाई के इनपुट के लिए ज़रूरी होती हैं. डिफ़ॉल्ट रूप से, यह '//tools/test:coverage_support' पर सेट होती है.
--custom_malloc=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, malloc को लागू करने का कस्टम तरीका तय करता है. यह सेटिंग, बिल्ड के नियमों में malloc एट्रिब्यूट को बदल देती है.
--[no]experimental_include_xcode_execution_requirementsdefault: "false"-
अगर सेट है, तो हर Xcode ऐक्शन में "requires-xcode:{version}" एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें. अगर Xcode के वर्शन में हाइफ़न वाला लेबल है, तो "requires-xcode-label:{version_label}" के तौर पर भी एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें.
टैग:
loses_incremental_state,loading_and_analysis,execution,experimental --[no]experimental_prefer_mutual_xcodedefault: "true"-
अगर यह नीति 'सही है' पर सेट है, तो स्थानीय और रिमोट, दोनों जगहों पर उपलब्ध Xcode के सबसे नए वर्शन का इस्तेमाल करें. अगर यह गलत है या दोनों के लिए कोई भी वर्शन उपलब्ध नहीं है, तो xcode-select के ज़रिए चुने गए Xcode के लोकल वर्शन का इस्तेमाल करें.
--extra_execution_platforms=<comma-separated list of options>default: ""-
कार्रवाइयां करने के लिए, इन प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. प्लेटफ़ॉर्म को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. register_execution_platforms() में बताए गए प्लैटफ़ॉर्म से पहले, इन प्लैटफ़ॉर्म पर विचार किया जाएगा. इस विकल्प को सिर्फ़ एक बार सेट किया जा सकता है. बाद में, फ़्लैग की सेटिंग पहले की सेटिंग को बदल देंगी.
टैग:
execution --extra_toolchains=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
टूलचेन के नियमों को टूलचेन रिज़ॉल्यूशन के दौरान ध्यान में रखा जाना चाहिए. टूलचेन को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. इन टूलचेन को, register_toolchains() फ़ंक्शन के ज़रिए WORKSPACE फ़ाइल में बताए गए टूलचेन से पहले माना जाएगा.
--grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
चेक-इन की गई libc लाइब्रेरी का लेबल. डिफ़ॉल्ट वैल्यू को क्रॉसटूल टूलचेन चुनता है. आपको इसे बदलने की ज़रूरत शायद ही कभी पड़ती है.
--host_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह फ़्लैग कोई कार्रवाई नहीं करता. आने वाले समय में रिलीज़ होने वाले वर्शन में इसे हटा दिया जाएगा.
--host_grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेटिंग तय की जाती है, तो यह exec कॉन्फ़िगरेशन के लिए, libc की टॉप-लेवल डायरेक्ट्री (--grte_top) को बदल देती है.
--host_platform=<a build target label>default: "@bazel_tools//tools:host_platform"-
होस्ट सिस्टम की जानकारी देने वाले प्लैटफ़ॉर्म के नियम का लेबल.
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
--[no]incompatible_builtin_objc_strip_actiondefault: "true"-
objc लिंकिंग के हिस्से के तौर पर स्ट्रिप ऐक्शन को चालू करना है या नहीं.
--[no]incompatible_dont_enable_host_nonhost_crosstool_featuresdefault: "true"-
अगर यह सही है, तो Bazel, C++ टूलचेन में 'होस्ट' और 'नॉनहोस्ट' सुविधाएं चालू नहीं करेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7407 देखें.
--[no]incompatible_enable_apple_toolchain_resolutiondefault: "false"-
ऐपल के नियमों (Starlark और नेटिव) के लिए Apple SDK टूल चुनने के लिए, टूलचेन रिज़ॉल्यूशन का इस्तेमाल करें
--[no]incompatible_remove_legacy_whole_archivedefault: "true"-
अगर यह विकल्प चालू है, तो Bazel डिफ़ॉल्ट रूप से लाइब्रेरी की डिपेंडेंसी को पूरे संग्रह के तौर पर लिंक नहीं करेगा. माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/7362 देखें.
--[no]incompatible_strip_executable_safelydefault: "false"-
अगर यह सही है, तो एक्ज़ीक्यूटेबल के लिए स्ट्रिप ऐक्शन, -x फ़्लैग का इस्तेमाल करेगा. इससे डाइनैमिक सिंबल रिज़ॉल्यूशन नहीं टूटेगा.
-
अगर टूलचेन में इंटरफ़ेस शेयर किए गए ऑब्जेक्ट इस्तेमाल करने की सुविधा है, तो उनका इस्तेमाल करें. फ़िलहाल, सभी ईएलएफ़ टूलचेन इस सेटिंग के साथ काम करते हैं.
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
इससे iOS ऐप्लिकेशन बनाने के लिए, iOS SDK के वर्शन के बारे में पता चलता है. यह जानकारी उपलब्ध न होने पर, 'xcode_version' से iOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
macOS ऐप्लिकेशन बनाने के लिए, macOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से macOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--minimum_os_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
ओएस का वह कम से कम वर्शन जिसे कंपाइल करने के लिए टारगेट किया गया है.
--platform_mappings=<a main workspace-relative path>default: ""-
मैपिंग फ़ाइल की जगह. इससे यह पता चलता है कि अगर कोई प्लैटफ़ॉर्म सेट नहीं है, तो कौनसा प्लैटफ़ॉर्म इस्तेमाल करना है. साथ ही, अगर कोई प्लैटफ़ॉर्म पहले से मौजूद है, तो कौनसा फ़्लैग सेट करना है. यह मुख्य वर्कस्पेस रूट के हिसाब से होना चाहिए. डिफ़ॉल्ट रूप से, यह 'platform_mappings' पर सेट होता है. यह फ़ाइल, वर्कस्पेस के रूट फ़ोल्डर में मौजूद होती है.
टैग:
affects_outputs,changes_inputs,loading_and_analysis,non_configurable --platforms=<a build target label>default: ""-
प्लैटफ़ॉर्म के नियमों के लेबल. इनसे मौजूदा कमांड के लिए टारगेट प्लैटफ़ॉर्म के बारे में पता चलता है.
--python_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट प्लैटफ़ॉर्म पर Python टारगेट चलाने के लिए, Python इंटरप्रेटर का ऐब्सलूट पाथ. अब काम नहीं करता; --incompatible_use_python_toolchains फ़्लैग की वजह से बंद है.
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
यह tvOS ऐप्लिकेशन बनाने के लिए, tvOS SDK टूल के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से tvOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--[no]use_platforms_in_apple_crosstool_transitiondefault: "false"-
इससे apple_crosstool_transition, ज़रूरत पड़ने पर लेगसी
--cpuके बजाय--platformsफ़्लैग की वैल्यू का इस्तेमाल करता है.टैग:
loading_and_analysis --watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
watchOS ऐप्लिकेशन बनाने के लिए, watchOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से watchOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो यह बिल्ड से जुड़ी कार्रवाइयों के लिए, दिए गए वर्शन के Xcode का इस्तेमाल करता है. अगर यह विकल्प नहीं दिया जाता है, तो Xcode के एक्ज़ीक्यूटर के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version_config=<a build target label>default: "@bazel_tools//tools/cpp:host_xcodes"-
यह xcode_config नियम का लेबल है. इसका इस्तेमाल, बिल्ड कॉन्फ़िगरेशन में Xcode का वर्शन चुनने के लिए किया जाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]apple_generate_dsymdefault: "false"-
डीबग सिंबल (.dSYM) फ़ाइलें जनरेट करनी हैं या नहीं.
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]build_test_dwpdefault: "false"-
अगर यह सुविधा चालू है, तो C++ टेस्ट को स्टैटिक तौर पर और फ़िशन के साथ बनाने पर, टेस्ट बाइनरी के लिए .dwp फ़ाइल भी अपने-आप बन जाएगी.
--cc_proto_library_header_suffixes=<comma-separated set of options>default: ".pb.h"-
यह विकल्प, cc_proto_library से बनाई गई हेडर फ़ाइलों के सफ़िक्स सेट करता है.
--cc_proto_library_source_suffixes=<comma-separated set of options>default: ".pb.cc"-
यह विकल्प, उन सोर्स फ़ाइलों के सफ़िक्स सेट करता है जिन्हें cc_proto_library बनाता है.
--[no]experimental_proto_descriptor_sets_include_source_infodefault: "false"-
proto_library में, Java API के अन्य वर्शन के लिए अतिरिक्त कार्रवाइयां चलाएं.
--[no]experimental_save_feature_statedefault: "false"-
इस कुकी का इस्तेमाल, चालू की गई और अनुरोध की गई सुविधाओं की स्थिति को कंपाइल करने के आउटपुट के तौर पर सेव करने के लिए किया जाता है.
टैग:
affects_outputs,experimental --fission=<a set of compilation modes>default: "no"-
इससे यह तय होता है कि C++ कंपाइलेशन और लिंक के लिए, फ़िशन का इस्तेमाल कौनसे कंपाइलेशन मोड करते हैं. यह {'fastbuild', 'dbg', 'opt'} का कोई भी कॉम्बिनेशन हो सकता है. इसके अलावा, सभी मोड चालू करने के लिए 'yes' और सभी मोड बंद करने के लिए 'no' जैसी खास वैल्यू भी इस्तेमाल की जा सकती हैं.
टैग:
loading_and_analysis,action_command_lines,affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change --[no]objc_generate_linkmapdefault: "false"-
इससे यह तय होता है कि लिंकमैप फ़ाइल जनरेट करनी है या नहीं.
टैग:
affects_outputs --[no]save_tempsdefault: "false"-
अगर यह सेट है, तो gcc से मिले कुछ समय के लिए आउटपुट सेव किए जाएंगे. इनमें .s फ़ाइलें (असेंबलर कोड), .i फ़ाइलें (प्रीप्रोसेस्ड C), और .ii फ़ाइलें (प्रीप्रोसेस्ड C++) शामिल हैं.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]android_databinding_use_androidxdefault: "true"-
AndroidX के साथ काम करने वाली डेटा-बाइंडिंग फ़ाइलें जनरेट करें. इसका इस्तेमाल सिर्फ़ databinding v2 के साथ किया जाता है. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]android_databinding_use_v3_4_argsdefault: "true"-
3.4.0 आर्ग्युमेंट के साथ android databinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --android_dynamic_mode=<off, default or fully>default: "off"-
इससे यह तय होता है कि जब cc_binary, शेयर की गई लाइब्रेरी को साफ़ तौर पर नहीं बनाता है, तो Android नियमों की C++ डिपेंडेंसी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तौर पर लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>default: "alphabetical"-
यह विकल्प, Android बाइनरी के लिए मेनिफ़ेस्ट मर्जर को पास किए गए मेनिफ़ेस्ट का क्रम सेट करता है. ALPHABETICAL का मतलब है कि मेनिफ़ेस्ट को execroot के हिसाब से पाथ के हिसाब से क्रम में लगाया जाता है. ALPHABETICAL_BY_CONFIGURATION का मतलब है कि मेनिफ़ेस्ट को आउटपुट डायरेक्ट्री में कॉन्फ़िगरेशन डायरेक्ट्री के हिसाब से पाथ के हिसाब से क्रम से लगाया जाता है. DEPENDENCY का मतलब है कि मेनिफ़ेस्ट को इस तरह से क्रम में लगाया जाता है कि हर लाइब्रेरी का मेनिफ़ेस्ट, उसकी डिपेंडेंसी के मेनिफ़ेस्ट से पहले आता है.
--[no]android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]build_python_zipdefault: "auto"-
Python एक्ज़ीक्यूटेबल ज़िप बनाएं; Windows पर चालू और अन्य प्लैटफ़ॉर्म पर बंद
टैग:
affects_outputs --catalyst_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ऐसी सूची जिसमें कॉमा लगाकर उन आर्किटेक्चर को अलग किया गया हो जिनके लिए Apple Catalyst बाइनरी बनानी हैं.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
C सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--copt=<a string>कई बार इस्तेमाल किया गया हो-
gcc को पास करने के लिए अतिरिक्त विकल्प.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--cs_fdo_absolute_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, सीएसएफ़डीओ प्रोफ़ाइल की जानकारी का इस्तेमाल करें. प्रोफ़ाइल फ़ाइल, रॉ या इंडेक्स की गई LLVM प्रोफ़ाइल फ़ाइल वाली ZIP फ़ाइल का पूरा पाथ नेम डालें.
टैग:
affects_outputs --cs_fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कॉन्टेक्स्ट के हिसाब से संवेदनशील FDO इंस्ट्रुमेंटेशन के साथ बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --cs_fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
cs_fdo_profile, कॉन्टेक्स्ट के हिसाब से काम करने वाली प्रोफ़ाइल को दिखाता है. इसका इस्तेमाल ऑप्टिमाइज़ेशन के लिए किया जाता है.
टैग:
affects_outputs --cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--dynamic_mode=<off, default or fully>default: "default"-
इससे यह तय होता है कि C++ बाइनरी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तरीके से लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--[no]enable_propeller_optimize_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो Propeller Optimize के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी होगी.
टैग:
affects_outputs --[no]enable_remaining_fdo_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो FDO के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी दिखेगी.
टैग:
affects_outputs --[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_android_compress_java_resourcesdefault: "false"-
APK में Java संसाधनों को कंप्रेस करना
--[no]experimental_android_databinding_v2default: "true"-
Android DataBinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]experimental_android_rewrite_dexes_with_rexdefault: "false"-
dex फ़ाइलों को फिर से लिखने के लिए, rex टूल का इस्तेमाल करें
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_objc_fastbuild_options=<comma-separated list of options>default: "-O0,-DDEBUG=1"-
इन स्ट्रिंग का इस्तेमाल, objc fastbuild कंपाइलर के विकल्पों के तौर पर करता है.
टैग:
action_command_lines --[no]experimental_omitfpdefault: "false"-
अगर सही है, तो स्टैक अनवाइंडिंग के लिए libunwind का इस्तेमाल करें. साथ ही, -fomit-frame-pointer और -fasynchronous-unwind-tables के साथ कंपाइल करें.
--experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_py_binaries_include_labeldefault: "false"-
py_binary टारगेट में उनका लेबल शामिल होता है. भले ही, स्टैंपिंग की सुविधा बंद हो.
टैग:
affects_outputs,experimental --[no]experimental_use_llvm_covmapdefault: "false"-
अगर ऐसा तय किया गया है, तो collect_code_coverage चालू होने पर Bazel, gcov के बजाय llvm-cov कवरेज मैप की जानकारी जनरेट करेगा.
टैग:
changes_inputs,affects_outputs,loading_and_analysis,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
एफ़डीओ इंस्ट्रुमेंटेशन की मदद से बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --fdo_optimize=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, FDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. .gcda फ़ाइल ट्री वाली zip फ़ाइल, ऑटो प्रोफ़ाइल वाली afdo फ़ाइल या LLVM प्रोफ़ाइल फ़ाइल का नाम डालें. यह फ़्लैग, लेबल के तौर पर तय की गई फ़ाइलों को भी स्वीकार करता है.जैसे,
//foo/bar:file.afdo- आपको हो सकता है कि इससे जुड़े पैकेज में//foo/bar:file.afdoडायरेक्टिव जोड़ना पड़े. साथ ही, यहfdo_profileटारगेट की ओर इशारा करने वाले लेबल को भी स्वीकार करता है.exports_filesयह फ़्लैग,fdo_profileनियम की जगह लागू होगा.टैग:
affects_outputs --fdo_prefetch_hints=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कैश मेमोरी को प्रीफ़ेच करने के लिए, हिंट का इस्तेमाल करें.
टैग:
affects_outputs --fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
fdo_profile, ऑप्टिमाइज़ेशन के लिए इस्तेमाल की जाने वाली प्रोफ़ाइल को दिखाता है.
टैग:
affects_outputs --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--[no]force_picdefault: "false"-
इस विकल्प के चालू होने पर, सभी C++ कंपाइलेशन, पोज़िशन-इंडिपेंडेंट कोड ("-fPIC") जनरेट करते हैं. साथ ही, लिंक, नॉन-पीआईसी लाइब्रेरी के बजाय पीआईसी प्री-बिल्ट लाइब्रेरी को प्राथमिकता देते हैं. इसके अलावा, लिंक, पोज़िशन-इंडिपेंडेंट एक्ज़ीक्यूटेबल ("-pie") जनरेट करते हैं.
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
यह एक अतिरिक्त विकल्प है. इसका इस्तेमाल, exec कॉन्फ़िगरेशन में C सोर्स फ़ाइलों को कंपाइल करते समय C कंपाइलर को पास करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल C++ सोर्स फ़ाइलों के लिए नहीं किया जा सकता.
--host_copt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C++ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--host_linkopt=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में टूल लिंक करते समय, लिंकर को पास करने का अतिरिक्त विकल्प.
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
होस्ट टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में कुछ फ़ाइलों को कंपाइल करते समय, C/C++ कंपाइलर को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --host_per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों के gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, iOS का कम से कम ज़रूरी वर्शन. अगर यह जानकारी नहीं दी गई है, तो 'ios_sdk_version' का इस्तेमाल किया जाता है.
--ios_multi_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ios_application बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. नतीजा एक यूनिवर्सल बाइनरी होती है, जिसमें सभी आर्किटेक्चर शामिल होते हैं.
--[no]legacy_whole_archivedefault: "true"-
यह विकल्प अब काम नहीं करता. इसकी जगह --incompatible_remove_legacy_whole_archive का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7362 पर जाएं. चालू होने पर, cc_binary नियमों के लिए --whole-archive का इस्तेमाल करें. इन नियमों में linkshared=True और linkopts में linkstatic=True या '-static' होना चाहिए. यह सिर्फ़ पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके बजाय, हमेशा लिंक करने की सुविधा (alwayslink=1) का इस्तेमाल करना बेहतर विकल्प है.
--linkopt=<a string>कई बार इस्तेमाल किया गया हो-
लिंक करते समय gcc को पास करने का अतिरिक्त विकल्प.
--ltobackendopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ बैकएंड के चरण में पास करने का अतिरिक्त विकल्प (under --features=thin_lto).
--ltoindexopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ इंडेक्सिंग के चरण में पास करने के लिए अतिरिक्त विकल्प (--features=thin_lto के तहत).
--macos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
Apple macOS के बाइनरी फ़ाइलें बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची.
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--memprof_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
memprof प्रोफ़ाइल का इस्तेमाल करें.
टैग:
affects_outputs --[no]objc_debug_with_GLIBCXXdefault: "false"-
अगर इसे सेट किया गया है और कंपाइलेशन मोड को 'dbg' पर सेट किया गया है, तो GLIBCXX_DEBUG, GLIBCXX_DEBUG_PEDANTIC, और GLIBCPP_CONCEPT_CHECKS को तय करें.
टैग:
action_command_lines --[no]objc_enable_binary_strippingdefault: "false"-
लिंक की गई बाइनरी पर सिंबल और डेड-कोड स्ट्रिपिंग की जानी चाहिए या नहीं. अगर इस फ़्लैग और --compilation_mode=opt, दोनों को सेट किया जाता है, तो बाइनरी स्ट्रिपिंग की जाएगी.
टैग:
action_command_lines --objccopt=<a string>कई बार इस्तेमाल किया गया हो-
Objective-C/C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने के लिए अतिरिक्त विकल्प.
टैग:
action_command_lines --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ फ़ाइलों को कंपाइल करते समय, gcc को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों की gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ बैकएंड ऑब्जेक्ट को कंपाइल करते समय, LTO बैकएंड (under --features=thin_lto) को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_ltobackendopt=//foo/.*.o,-//foo/bar.o@-O0, //foo/ में मौजूद bar.o को छोड़कर, सभी o फ़ाइलों के LTO बैकएंड कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --propeller_optimize=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
बिल्ड टारगेट को ऑप्टिमाइज़ करने के लिए, Propeller की प्रोफ़ाइल की जानकारी का इस्तेमाल करें. Propeller की प्रोफ़ाइल में, कम से कम दो फ़ाइलों में से एक फ़ाइल होनी चाहिए. ये फ़ाइलें, सीसी प्रोफ़ाइल और एलडी प्रोफ़ाइल हैं. यह फ़्लैग, बिल्ड लेबल स्वीकार करता है. यह लेबल, प्रोपेलर प्रोफ़ाइल की इनपुट फ़ाइलों का रेफ़रंस देता है. उदाहरण के लिए, a/b/BUILD में मौजूद BUILD फ़ाइल, लेबल को इस तरह से तय करती है:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Bazel को ये फ़ाइलें दिखाने के लिए, हो सकता है कि आपको संबंधित पैकेज में exports_files डायरेक्टिव जोड़ना पड़े. इस विकल्प का इस्तेमाल इस तरह किया जाना चाहिए: --propeller_optimize=//a/b:propeller_profile
--propeller_optimize_absolute_cc_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए cc_profile फ़ाइल का पूरा पाथ.
टैग:
affects_outputs --propeller_optimize_absolute_ld_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए, ld_profile फ़ाइल का ऐब्सलूट पाथ.
टैग:
affects_outputs --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines -
अगर यह विकल्प चुना जाता है, तो एक जैसी सुविधा देने वाली नेटिव लाइब्रेरी को अलग-अलग टारगेट के साथ शेयर किया जाएगा
--[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs --strip=<always, sometimes or never>डिफ़ॉल्ट: "कभी-कभी"-
इससे यह तय किया जाता है कि बाइनरी और शेयर की गई लाइब्रेरी को स्ट्रिप करना है या नहीं. इसके लिए, "-Wl,--strip-debug" का इस्तेमाल किया जाता है. 'sometimes' की डिफ़ॉल्ट वैल्यू का मतलब है कि --compilation_mode=fastbuild होने पर ही स्ट्रिप करें.
टैग:
affects_outputs --stripopt=<a string>कई बार इस्तेमाल किया गया हो-
'<name>.stripped' बाइनरी जनरेट करते समय, स्ट्रिप को पास करने के लिए अतिरिक्त विकल्प.
--tvos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. इनके लिए Apple tvOS बाइनरी बनानी हैं.
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, tvOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'tvos_sdk_version' का इस्तेमाल किया जाता है.
--visionos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन आर्किटेक्चर की सूची जिनके लिए Apple visionOS बाइनरी बनानी हैं.
--watchos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई, उन आर्किटेक्चर की सूची जिनके लिए Apple watchOS बाइनरी बनानी हैं.
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, watchOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'watchos_sdk_version' का इस्तेमाल किया जाता है.
--xbinary_fdo=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, XbinaryFDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. डिफ़ॉल्ट क्रॉस बाइनरी प्रोफ़ाइल का नाम तय करें. इस विकल्प का इस्तेमाल --fdo_instrument/--fdo_optimize/--fdo_profile के साथ करने पर, उन विकल्पों को हमेशा प्राथमिकता दी जाएगी. ऐसा माना जाएगा कि xbinary_fdo को कभी भी तय नहीं किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]desugar_for_androiddefault: "true"-
यह तय करता है कि Java 8 के बाइटकोड को dexing से पहले desugar करना है या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]desugar_java8_libsdefault: "false"-
लेगसी डिवाइसों के लिए बनाए गए ऐप्लिकेशन में, Java 8 की सुविधा वाली लाइब्रेरी शामिल करनी हैं या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_check_desugar_depsdefault: "true"-
Android बाइनरी लेवल पर, सही डिसुगरिंग की दोबारा जांच करनी है या नहीं.
--[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--experimental_one_version_enforcement=<off, warning or error>default: "OFF"-
इस विकल्प को चालू करने पर, यह लागू किया जाता है कि java_binary नियम में क्लासपाथ पर एक ही क्लास फ़ाइल का एक से ज़्यादा वर्शन नहीं हो सकता. इस नीति के उल्लंघन को लागू करने से, बिल्ड में गड़बड़ी हो सकती है या सिर्फ़ चेतावनियां मिल सकती हैं.
टैग:
loading_and_analysis --experimental_strict_java_deps=<off, warn, error, strict or default>default: "default"-
अगर यह सही है, तो यह जांच करता है कि Java टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]incompatible_disable_native_android_rulesdefault: "false"-
यह नीति चालू होने पर, Android के नेटिव नियमों का सीधे तौर पर इस्तेमाल नहीं किया जा सकेगा. कृपया https://github.com/bazelbuild/rules_android पर जाकर, Starlark Android के नियमों का इस्तेमाल करें
--[no]incompatible_disable_native_apple_binary_ruledefault: "false"-
कोई कार्रवाई नहीं. इसे पुराने सिस्टम के साथ काम करने की सुविधा के लिए यहां रखा गया है.
--[no]one_version_enforcement_on_java_testsdefault: "true"-
इसे चालू करने पर और experimental_one_version_enforcement को NONE के अलावा किसी अन्य वैल्यू पर सेट करने पर, java_test टारगेट पर एक वर्शन लागू करें. इस फ़्लैग को बंद किया जा सकता है. इससे, इंक्रीमेंटल टेस्ट की परफ़ॉर्मेंस बेहतर होगी. हालांकि, इससे एक वर्शन के संभावित उल्लंघनों का पता नहीं चल पाएगा.
टैग:
loading_and_analysis --python_native_rules_allowlist=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
--incompatible_python_disallow_native_rules को लागू करते समय इस्तेमाल करने के लिए, अनुमति वाली सूची (package_group टारगेट).
टैग:
loading_and_analysis --[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--strict_proto_deps=<off, warn, error, strict or default>डिफ़ॉल्ट: "error"-
जब तक यह विकल्प बंद नहीं होता, तब तक यह जांच करता है कि proto_library टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --strict_public_imports=<off, warn, error, strict or default>default: "off"-
अगर यह विकल्प बंद नहीं है, तो यह जांच करता है कि proto_library टारगेट, 'import public' में इस्तेमाल किए गए सभी टारगेट को एक्सपोर्ट के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --[no]strict_system_includesdefault: "false"-
अगर यह विकल्प चालू है, तो सिस्टम में शामिल किए गए पाथ (-isystem) से मिले हेडर भी घोषित किए जाने चाहिए.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- ऐसे विकल्प जो किसी बिल्ड के हस्ताक्षर करने के आउटपुट पर असर डालते हैं:
--apk_signing_method=<v1, v2, v1_v2 or v4>डिफ़ॉल्ट: "v1_v2"-
APK पर साइन करने के लिए इस्तेमाल किया जाने वाला तरीका
टैग:
action_command_lines,affects_outputs,loading_and_analysis --[no]device_debug_entitlementsdefault: "true"-
अगर यह नीति सेट है और कंपाइलेशन मोड 'opt' नहीं है, तो हस्ताक्षर करते समय, objc ऐप्लिकेशन में डीबग एनटाइटलमेंट शामिल होंगे.
टैग:
changes_inputs --ios_signing_cert_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
iOS पर हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले सर्टिफ़िकेट का नाम. इसे सेट न करने पर, प्रोविज़निंग प्रोफ़ाइल का इस्तेमाल किया जाएगा. यह सर्टिफ़िकेट की कीचेन आइडेंटिटी प्रेफ़रेंस या सर्टिफ़िकेट के कॉमन नेम का (सबस्ट्रिंग) हो सकता है. यह जानकारी, codesign के मैन पेज (SIGNING IDENTITIES) के मुताबिक है.
टैग:
action_command_lines
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_disallow_sdk_frameworks_attributesdefault: "false"-
अगर सही है, तो objc_library और objc_import में sdk_frameworks और weak_sdk_frameworks एट्रिब्यूट को अनुमति न दें.
--[no]incompatible_objc_alwayslink_by_defaultdefault: "false"-
अगर सही है, तो objc_library और objc_import में alwayslink एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू को सही पर सेट करें.
--[no]incompatible_python_disallow_native_rulesdefault: "false"-
अगर यह विकल्प सही है, तो बिल्ट-इन py_* नियमों का इस्तेमाल करने पर गड़बड़ी होती है. इसके बजाय, rule_python नियमों का इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/17773 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis --[no]break_build_on_parallel_dex2oat_failuredefault: "false"-
अगर यह विकल्प सही है, तो dex2oat की कार्रवाई पूरी न होने पर, टेस्ट रनटाइम के दौरान dex2oat को एक्ज़ीक्यूट करने के बजाय, बिल्ड टूट जाएगा.
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>कई बार इस्तेमाल किया गया हो-
टेस्ट के लिए, संसाधनों की डिफ़ॉल्ट सीमा को बदलें. सही फ़ॉर्मैट <resource>=<value> है. अगर <value> के तौर पर कोई पॉज़िटिव संख्या दी जाती है, तो यह टेस्ट के सभी साइज़ के लिए डिफ़ॉल्ट संसाधनों को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार नंबर दिए जाते हैं, तो वे छोटे, मीडियम, बड़े, और बहुत बड़े टेस्ट साइज़ के लिए, संसाधन की रकम को बदल देंगे. वैल्यू, HOST_RAM/HOST_CPU भी हो सकती हैं. इसके बाद, [-|]<float> (उदाहरण के लिए, memory=HOST_RAM.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4) भी जोड़ा जा सकता है. इस फ़्लैग से तय किए गए डिफ़ॉल्ट टेस्ट संसाधनों को, टैग में बताए गए संसाधनों से बदल दिया जाता है.
--[no]experimental_android_use_parallel_dex2oatdefault: "false"-
android_test को तेज़ करने के लिए, dex2oat का इस्तेमाल करें.
टैग:
loading_and_analysis,host_machine_resource_optimizations,experimental --[no]ios_memleaksdefault: "false"-
ios_test टारगेट में मेमोरी लीक की जांच करने की सुविधा चालू करें.
टैग:
action_command_lines --ios_simulator_device=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर में iOS ऐप्लिकेशन चलाने के दौरान, सिम्युलेट किए जाने वाले डिवाइस का नाम. उदाहरण के लिए, 'iPhone 6'. सिम्युलेटर को जिस मशीन पर चलाया जाएगा उस पर 'xcrun simctl list devicetypes' कमांड चलाकर, डिवाइसों की सूची देखी जा सकती है.
टैग:
test_runner --ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर पर चलाने या टेस्ट करने के लिए, iOS का वर्शन. अगर नियम में कोई टारगेट डिवाइस तय किया गया है, तो ios_test नियमों के लिए इसे अनदेखा कर दिया जाता है.
टैग:
test_runner --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
इससे पता चलता है कि हर टेस्ट को कितनी बार चलाना है. अगर किसी वजह से, इनमें से कोई भी कोशिश पूरी नहीं होती है, तो पूरे टेस्ट को 'टेस्ट पूरा नहीं हुआ' के तौर पर मार्क किया जाता है. आम तौर पर, बताई गई वैल्यू सिर्फ़ एक पूर्णांक होती है. उदाहरण: --runs_per_test=3 से सभी टेस्ट तीन बार चलेंगे. वैकल्पिक सिंटैक्स: regex_filter@runs_per_test. यहां runs_per_test का मतलब पूर्णांक वैल्यू से है. वहीं, regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. उदाहरण: --runs_per_test=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार चलाता है. हालांकि, foo/bar में मौजूद टेस्ट को तीन बार नहीं चलाता. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो टेस्ट सिर्फ़ एक बार चलाया जाता है.
--test_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह विकल्प, टेस्ट रनर एनवायरमेंट में इंजेक्ट किए जाने वाले अतिरिक्त एनवायरमेंट वैरिएबल के बारे में बताता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, इसकी वैल्यू Bazel क्लाइंट एनवायरमेंट से पढ़ी जाएगी. इसके अलावा, इसे <code>name=value</code> पेयर के हिसाब से भी तय किया जा सकता है. पहले से सेट किए गए वैरिएबल को <code>=name</code> के ज़रिए अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है, ताकि कई वैरिएबल तय किए जा सकें. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
टैग:
test_runner --test_timeout=<a single integer or comma-separated list of 4 integers>default: "-1"-
जांच के टाइम आउट के लिए, जांच के टाइम आउट की डिफ़ॉल्ट वैल्यू (सेकंड में) बदलें. अगर एक पॉज़िटिव पूर्णांक वैल्यू दी जाती है, तो यह सभी कैटगरी को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार पूर्णांक दिए जाते हैं, तो वे छोटे, सामान्य, लंबे, और हमेशा के लिए (इसी क्रम में) टाइम आउट को बदल देंगे. दोनों फ़ॉर्म में, -1 वैल्यू से Blaze को उस कैटगरी के लिए डिफ़ॉल्ट टाइमआउट का इस्तेमाल करने के लिए कहा जाता है.
--[no]zip_undeclared_test_outputsdefault: "false"-
सही होने पर, टेस्ट के ऐसे आउटपुट को zip फ़ाइल में संग्रहित किया जाएगा जिनके बारे में जानकारी नहीं दी गई है.
टैग:
test_runner
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--[no]experimental_filter_library_jar_with_program_jardefault: "false"-
ProGuard ProgramJar को फ़िल्टर करें, ताकि LibraryJar में मौजूद सभी क्लास हट जाएं.
--[no]experimental_inmemory_dotd_filesdefault: "true"-
अगर यह सुविधा चालू है, तो C++ .d फ़ाइलें सीधे तौर पर रिमोट बिल्ड नोड से मेमोरी में पास की जाएंगी. इन्हें डिस्क में नहीं लिखा जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_inmemory_jdeps_filesdefault: "true"-
अगर यह सुविधा चालू है, तो Java कंपाइलेशन से जनरेट हुई डिपेंडेंसी (.jdeps) फ़ाइलों को डिस्क में सेव करने के बजाय, सीधे रिमोट बिल्ड नोड से मेमोरी में पास किया जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_retain_test_configuration_across_testonlydefault: "false"-
इस विकल्प को चालू करने पर, --trim_test_configuration, testonly=1 के तौर पर मार्क किए गए नियमों के लिए टेस्ट कॉन्फ़िगरेशन को ट्रिम नहीं करेगा. इसका मकसद, कार्रवाई से जुड़ी समस्याओं को कम करना है. ऐसा तब होता है, जब टेस्ट नहीं किए गए नियम, cc_test नियमों पर निर्भर होते हैं. अगर --trim_test_configuration की वैल्यू 'गलत है' पर सेट है, तो इसका कोई असर नहीं होगा.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_unsupported_and_brittle_include_scanningdefault: "false"-
इनपुट फ़ाइलों से #include लाइनें पार्स करके, इनपुट को C/C++ कंपाइलेशन तक सीमित करना है या नहीं. इससे परफ़ॉर्मेंस और इंक्रीमेंटैलिटी को बेहतर बनाया जा सकता है. इसके लिए, कंपाइलेशन इनपुट ट्री का साइज़ कम किया जाता है. हालांकि, इससे बिल्ड भी टूट सकते हैं, क्योंकि include स्कैनर, C प्रीप्रोसेसर सिमैंटिक्स को पूरी तरह से लागू नहीं करता है. खास तौर पर, यह डाइनैमिक #include डायरेक्टिव को नहीं समझता है और प्रीप्रोसेसर की शर्त वाली लॉजिक को अनदेखा करता है. इसे अपने जोखिम पर इस्तेमाल करें. इस फ़्लैग से जुड़ी सभी समस्याएं बंद कर दी जाएंगी.
टैग:
loading_and_analysis,execution,changes_inputs,experimental --[no]incremental_dexingdefault: "true"-
यह हर जार फ़ाइल के लिए, अलग से डेक्सिंग का ज़्यादातर काम करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]objc_use_dotd_pruningdefault: "true"-
अगर इसे सेट किया जाता है, तो clang से जनरेट हुई .d फ़ाइलों का इस्तेमाल, objc कंपाइल में पास किए गए इनपुट के सेट को कम करने के लिए किया जाएगा.
--[no]process_headers_in_dependenciesdefault: "false"-
//a:a टारगेट बनाते समय, उन सभी टारगेट में हेडर प्रोसेस करें जिन पर //a:a निर्भर करता है. ऐसा तब करें, जब टूलचेन के लिए हेडर प्रोसेसिंग चालू हो.
टैग:
execution --[no]trim_test_configurationdefault: "true"-
यह सुविधा चालू करने पर, टेस्ट से जुड़े विकल्प, बिल्ड के टॉप लेवल के नीचे से हट जाएंगे. इस फ़्लैग के चालू होने पर, टेस्ट को नॉन-टेस्ट नियमों की डिपेंडेंसी के तौर पर नहीं बनाया जा सकता. हालांकि, टेस्ट से जुड़े विकल्पों में बदलाव करने से, नॉन-टेस्ट नियमों का फिर से विश्लेषण नहीं किया जाएगा.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-.*"-
टूलचेन रिज़ॉल्यूशन के दौरान डीबग की जानकारी प्रिंट करें. इस फ़्लैग में रेगुलर एक्सप्रेशन का इस्तेमाल किया जाता है. इसकी जांच टूलचेन टाइप और खास टारगेट के हिसाब से की जाती है, ताकि यह पता लगाया जा सके कि किसे डीबग करना है. एक से ज़्यादा रेगुलर एक्सप्रेशन को कॉमा लगाकर अलग किया जा सकता है. इसके बाद, हर रेगुलर एक्सप्रेशन की अलग-अलग जांच की जाती है. ध्यान दें: इस फ़्लैग का आउटपुट बहुत जटिल होता है. इसलिए, यह सिर्फ़ टूलचेन की समस्या हल करने वाले विशेषज्ञों के लिए काम का हो सकता है.
टैग:
terminal_output --[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
--[no]incompatible_default_to_explicit_init_pydefault: "false"-
इस फ़्लैग से डिफ़ॉल्ट व्यवहार बदल जाता है, ताकि Python टारगेट की रनफ़ाइल में init.py फ़ाइलें अपने-आप न बन पाएं. खास तौर पर, जब किसी py_binary या py_test टारगेट के लिए legacy_create_init को "auto" (डिफ़ॉल्ट) पर सेट किया जाता है, तो इस फ़्लैग के सेट होने पर ही इसे फ़ॉल्स के तौर पर माना जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10076 पर जाएं.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]cache_test_results[-t] default: "auto"-
'auto' पर सेट होने पर, Bazel किसी टेस्ट को सिर्फ़ तब फिर से चलाता है, जब: (1) Bazel को टेस्ट या उसकी डिपेंडेंसी में बदलावों का पता चलता है, (2) टेस्ट को बाहरी के तौर पर मार्क किया गया है, (3) --runs_per_test के साथ कई टेस्ट रन का अनुरोध किया गया था या(4) टेस्ट पहले फ़ेल हो गया था. अगर इसे 'हां' पर सेट किया जाता है, तो Bazel, बाहरी के तौर पर मार्क किए गए टेस्ट को छोड़कर, सभी टेस्ट के नतीजों को कैश मेमोरी में सेव करता है. 'नहीं' पर सेट करने पर, Bazel किसी भी टेस्ट के नतीजे को कैश मेमोरी में सेव नहीं करता है.
--[no]experimental_cancel_concurrent_testsdefault: "never"-
अगर 'on_failed' या 'on_passed' है, तो Blaze उस नतीजे के साथ पहली बार चलने वाले टेस्ट को रद्द कर देगा. यह विकल्प, सिर्फ़ --runs_per_test_detects_flakes के साथ काम करता है.
--[no]experimental_fetch_all_coverage_outputsdefault: "false"-
अगर यह विकल्प सही है, तो कवरेज रन के दौरान Bazel, हर टेस्ट के लिए कवरेज डेटा डायरेक्ट्री को फ़ेच करता है.
--[no]experimental_generate_llvm_lcovdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो Clang के लिए कवरेज, LCOV रिपोर्ट जनरेट करेगा.
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback>default: "bazel"-
यह Java कंपाइलेशन के लिए, कम किए गए क्लासपाथ को चालू करता है.
--[no]experimental_run_android_lint_on_java_rulesdefault: "false"-
java_* सोर्स की पुष्टि करनी है या नहीं.
टैग:
affects_outputs,experimental --[no]explicit_java_test_depsdefault: "false"-
java_test में JUnit या Hamcrest के लिए, TestRunner के deps से गलती से पाने के बजाय, साफ़ तौर पर डिपेंडेंसी तय करें. फ़िलहाल, यह सिर्फ़ Bazel के लिए काम करता है.
--host_java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह Java लॉन्चर है. इसका इस्तेमाल उन टूल के लिए किया जाता है जिन्हें बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है.
--host_javacopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान लागू होने वाले टूल बनाने के लिए, javac को पास किए जाने वाले अतिरिक्त विकल्प.
--host_jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान एक्ज़ीक्यूट किए जाने वाले टूल बनाते समय, Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--[no]incompatible_check_sharding_supportdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, शेयर किए गए टेस्ट को तब फ़ेल कर देगा, जब टेस्ट रनर यह नहीं बताता कि वह TEST_SHARD_STATUS_FILE में दिए गए पाथ पर फ़ाइल को ऐक्सेस करके, शेयर करने की सुविधा के साथ काम करता है. अगर यह वैल्यू गलत है, तो शार्डिंग की सुविधा के साथ काम न करने वाला टेस्ट रनर, हर शार्ड में सभी टेस्ट चलाएगा.
टैग:
incompatible_change --[no]incompatible_exclusive_test_sandboxeddefault: "true"-
अगर यह विकल्प चुना जाता है, तो एक्सक्लूसिव टेस्ट, सैंडबॉक्स की गई रणनीति के साथ चलेंगे. 'local' टैग जोड़कर, स्थानीय तौर पर सिर्फ़ एक टेस्ट रन करें
टैग:
incompatible_change --[no]incompatible_strict_action_envdefault: "false"-
अगर यह विकल्प सही है, तो Bazel ऐसे एनवायरमेंट का इस्तेमाल करता है जिसमें PATH के लिए स्टैटिक वैल्यू होती है. साथ ही, यह LD_LIBRARY_PATH को इनहेरिट नहीं करता. अगर आपको क्लाइंट से कुछ एनवायरमेंट वैरिएबल इनहेरिट करने हैं, तो --action_env=ENV_VARIABLE का इस्तेमाल करें. हालांकि, ध्यान दें कि ऐसा करने से, अलग-अलग उपयोगकर्ताओं के लिए कैश मेमोरी का इस्तेमाल नहीं किया जा सकेगा. ऐसा तब होगा, जब शेयर की गई कैश मेमोरी का इस्तेमाल किया जा रहा हो.
--j2objc_translation_flags=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
J2ObjC टूल को पास करने के लिए अन्य विकल्प.
--java_debug-
इस विकल्प का इस्तेमाल करने पर, Java टेस्ट की Java वर्चुअल मशीन, JDWP के साथ काम करने वाले डीबगर (जैसे कि jdb) से कनेक्शन मिलने का इंतज़ार करती है. इसके बाद ही, टेस्ट शुरू होता है. इसका मतलब है कि -test_output=streamed.
बढ़कर:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results --[no]java_depsdefault: "true"-
हर Java टारगेट के लिए, डिपेंडेंसी की जानकारी जनरेट करता है. फ़िलहाल, यह कंपाइल-टाइम क्लासपाथ के लिए है.
--[no]java_header_compilationdefault: "true"-
सोर्स से सीधे तौर पर ijars कंपाइल करें.
--java_language_version=<a string>default: ""-
Java भाषा का वर्शन
--java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
Java बाइनरी बनाते समय इस्तेमाल किया जाने वाला Java लॉन्चर. अगर इस फ़्लैग को खाली स्ट्रिंग पर सेट किया जाता है, तो JDK लॉन्चर का इस्तेमाल किया जाता है. "लॉन्चर" एट्रिब्यूट, इस फ़्लैग को बदल देता है.
--java_runtime_version=<a string>डिफ़ॉल्ट: "local_jdk"-
Java रनटाइम का वर्शन
--javacopt=<a string>कई बार इस्तेमाल किया गया हो-
javac को पास करने के लिए अन्य विकल्प.
--jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--legacy_main_dex_list_generator=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक बाइनरी तय करता है, जिसका इस्तेमाल उन क्लास की सूची जनरेट करने के लिए किया जाता है जिन्हें लेगसी मल्टीडेक्स को कंपाइल करते समय, मुख्य डेक्स में होना चाहिए.
--optimizing_dexer=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बिना शार्डिंग के डेक्सिंग करने के लिए, बाइनरी तय करता है.
--plugin=<a build target label>कई बार इस्तेमाल किया गया हो-
बिल्ड में इस्तेमाल किए जाने वाले प्लगिन. फ़िलहाल, यह java_plugin के साथ काम करता है.
--proguard_top=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बताता है कि Java बाइनरी बनाते समय, कोड हटाने के लिए ProGuard के किस वर्शन का इस्तेमाल करना है.
--proto_compiler=<a build target label>default: "@bazel_tools//tools/proto:protoc"-
प्रोटो-कंपाइलर का लेबल.
--[no]proto_profiledefault: "true"-
प्रोटो कंपाइलर को profile_path पास करना है या नहीं.
--proto_profile_path=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रोफ़ाइल, proto कंपाइलर को profile_path के तौर पर पास की जाती है. अगर इसे सेट नहीं किया गया है, लेकिन --proto_profile सही है (डिफ़ॉल्ट रूप से), तो --fdo_optimize से पाथ का अनुमान लगाता है.
--proto_toolchain_for_cc=<a build target label>default: "@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें C++ प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_j2objc=<a build target label>default: "@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें j2objc प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_java=<a build target label>default: "@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें Java protos को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_javalite=<a build target label>default: "@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें JavaLite protos को कंपाइल करने का तरीका बताया गया है
--protocopt=<a string>कई बार इस्तेमाल किया गया हो-
प्रोटोबफ़ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
टैग:
affects_outputs --[no]runs_per_test_detects_flakesdefault: "false"-
अगर यह विकल्प चुना जाता है, तो जिस भी शार्ड में कम से कम एक रन/कोशिश पास होती है और कम से कम एक रन/कोशिश फ़ेल होती है उसे FLAKY स्टेटस मिलता है.
--shell_executable=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Bazel के इस्तेमाल के लिए, शेल एक्ज़ीक्यूटेबल का ऐब्सलूट पाथ. अगर इसे सेट नहीं किया जाता है, लेकिन BAZEL_SH एनवायरमेंट वैरिएबल को Bazel के पहले इनवोकेशन (जो Bazel सर्वर शुरू करता है) पर सेट किया जाता है, तो Bazel इसका इस्तेमाल करता है. अगर इनमें से कोई भी सेट नहीं है, तो Bazel, ऑपरेटिंग सिस्टम के हिसाब से हार्ड-कोड किए गए डिफ़ॉल्ट पाथ का इस्तेमाल करता है. जैसे, Windows: c:/msys64/usr/bin/bash.exe, FreeBSD: /usr/local/bin/bash, और अन्य सभी: /bin/bash. ध्यान दें कि bash के साथ काम न करने वाले शेल का इस्तेमाल करने से, जनरेट की गई बाइनरी फ़ाइलों को बनाने या उन्हें चलाने में समस्याएं आ सकती हैं.
टैग:
loading_and_analysis --test_arg=<a string>कई बार इस्तेमाल किया गया हो-
इस विकल्प की मदद से, टेस्ट एक्ज़ीक्यूटेबल को पास किए जाने वाले अतिरिक्त विकल्प और आर्ग्युमेंट तय किए जाते हैं. कई आर्ग्युमेंट तय करने के लिए, इसका इस्तेमाल कई बार किया जा सकता है. अगर एक से ज़्यादा टेस्ट किए जाते हैं, तो हर टेस्ट को एक जैसे आर्ग्युमेंट मिलेंगे. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
--test_filter=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह टेस्ट फ़्रेमवर्क को फ़ॉरवर्ड किए जाने वाले फ़िल्टर के बारे में बताता है. इस कुकी का इस्तेमाल, टेस्ट को सीमित करने के लिए किया जाता है. ध्यान दें कि इससे यह तय नहीं होता कि कौनसे टारगेट बनाए जाएंगे.
--test_result_expiration=<an integer>default: "-1"-
इस विकल्प को बंद कर दिया गया है और इससे कोई असर नहीं पड़ता.
--[no]test_runner_fail_fastdefault: "false"-
यह विकल्प, टेस्ट रनर को तुरंत फ़ॉरवर्ड करता है. पहली गड़बड़ी होने पर, टेस्ट रनर को टेस्ट बंद कर देना चाहिए.
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>default: "explicit"-
टेस्ट शार्डिंग के लिए रणनीति तय करें: 'shard_count' BUILD एट्रिब्यूट मौजूद होने पर ही शार्डिंग का इस्तेमाल करने के लिए, 'explicit' का इस्तेमाल करें. 'disabled' को कभी भी टेस्ट शार्डिंग का इस्तेमाल न करने के लिए सेट करें. 'forced=k' का इस्तेमाल, 'shard_count' BUILD एट्रिब्यूट के बावजूद, टेस्टिंग के लिए 'k' शार्ड लागू करने के लिए किया जाता है.
--tool_java_language_version=<a string>default: ""-
बिल्ड के दौरान ज़रूरी टूल को चलाने के लिए इस्तेमाल किया गया Java भाषा का वर्शन
--tool_java_runtime_version=<a string>default: "remotejdk_11"-
बिल्ड के दौरान टूल को एक्ज़ीक्यूट करने के लिए इस्तेमाल किया गया Java रनटाइम वर्शन
--[no]use_ijarsdefault: "true"-
अगर यह विकल्प चालू है, तो Java कंपाइलेशन के लिए इंटरफ़ेस जार का इस्तेमाल किया जाता है. इससे इन्क्रीमेंटल कंपाइलेशन तेज़ी से होगा, लेकिन गड़बड़ी के मैसेज अलग-अलग हो सकते हैं.
सहायता के विकल्प
- लॉगिंग की जानकारी के लेवल, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--help_verbosity=<long, medium or short>default: "medium"-
सहायता कमांड के लिए वर्बोसिटी लेवल चुनें.
टैग:
terminal_output --long[-l]-
हर विकल्प का सिर्फ़ नाम दिखाने के बजाय, उसकी पूरी जानकारी दिखाएं.
बढ़कर:
--help_verbosity=longटैग:
terminal_output --short-
सिर्फ़ विकल्पों के नाम दिखाओ, उनके टाइप या मतलब नहीं.
बढ़कर:
--help_verbosity=shortटैग:
terminal_output
जानकारी के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--info_output_type=<stdout or response_proto>default: "stdout"-
अगर stdout है, तो नतीजे सीधे कंसोल में प्रिंट किए जाते हैं. अगर response_proto है, तो जानकारी देने वाले कमांड के नतीजे, रिस्पॉन्स एक्सटेंशन में पैक किए जाते हैं.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--[no]show_make_envdefault: "false"-
आउटपुट में "Make" एनवायरमेंट को शामिल करो.
लाइसेंस के विकल्प
मोबाइल ऐप्लिकेशन इंस्टॉल करने के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--mode=<classic, classic_internal_test_do_not_use or skylark>default: "skylark"-
'कोई इफ़ेक्ट नहीं' फ़्लैग का इस्तेमाल अब नहीं किया जा सकता. सिर्फ़ स्काईलार्क मोड अब भी काम करता है.
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--adb=<a string>default: ""-
'mobile-install' कमांड के लिए इस्तेमाल किया जाने वाला adb बाइनरी. अगर कोई SDK टूल नहीं बताया गया है, तो --android_sdk_channel कमांड लाइन विकल्प में बताया गया Android SDK टूल इस्तेमाल किया जाता है. अगर --android_sdk_channel विकल्प नहीं दिया गया है, तो डिफ़ॉल्ट SDK टूल इस्तेमाल किया जाता है.
टैग:
changes_inputs
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]incrementaldefault: "false"-
यह तय करता है कि इंक्रीमेंटल इंस्टॉल करना है या नहीं. अगर ऐसा है, तो जिस डिवाइस पर कोड इंस्टॉल करना है उसकी स्थिति पढ़कर, गैर-ज़रूरी अतिरिक्त काम से बचें. साथ ही, उस जानकारी का इस्तेमाल करके, गैर-ज़रूरी काम से बचें. अगर यह वैल्यू 'गलत है' (डिफ़ॉल्ट रूप से), तो हमेशा पूरा इंस्टॉलेशन करें.
टैग:
loading_and_analysis --[no]split_apksdefault: "false"-
डिवाइस पर ऐप्लिकेशन को इंस्टॉल और अपडेट करने के लिए, स्प्लिट एपीके का इस्तेमाल करना है या नहीं. यह सुविधा, सिर्फ़ Marshmallow या इसके बाद के वर्शन वाले डिवाइसों पर काम करती है
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--adb_arg=<a string>कई बार इस्तेमाल किया गया हो-
adb को पास करने के लिए अतिरिक्त आर्ग्युमेंट. आम तौर पर, इसका इस्तेमाल किसी डिवाइस पर ऐप्लिकेशन इंस्टॉल करने के लिए किया जाता है.
टैग:
action_command_lines --debug_app-
ऐप्लिकेशन शुरू करने से पहले, डीबगर के लिए इंतज़ार करना है या नहीं.
बढ़कर:
--start=DEBUGटैग:
execution --device=<a string>default: ""-
adb डिवाइस का सीरियल नंबर. अगर यह जानकारी नहीं दी गई है, तो पहले डिवाइस का इस्तेमाल किया जाएगा.
टैग:
action_command_lines --start=<no, cold, warm or debug>default: "NO"-
ऐप्लिकेशन इंस्टॉल करने के बाद, उसे कैसे शुरू किया जाना चाहिए. इंक्रीमेंटल इंस्टॉल पर ऐप्लिकेशन की स्थिति को बनाए रखने और उसे पहले जैसा करने के लिए, इसे WARM पर सेट करें.
टैग:
execution --start_app-
यह तय करता है कि ऐप्लिकेशन इंस्टॉल होने के बाद उसे शुरू करना है या नहीं.
बढ़कर:
--start=COLDटैग:
execution
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--incremental_install_verbosity=<a string>default: ""-
इंक्रीमेंटल इंस्टॉल के लिए वर्बोसिटी. डीबग लॉगिंग के लिए, इसे 1 पर सेट करें.
टैग:
bazel_monitoring
मॉड के विकल्प
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
डेटा लोड करने/विश्लेषण करने के लिए, एक साथ इस्तेमाल की जाने वाली थ्रेड की संख्या. इसमें पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") का इस्तेमाल किया जाता है. इसके बाद, ऑपरेशन ([-|]<float>) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, "auto", "HOST_CPUS.5". "auto" वैल्यू, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू सेट करती है. कम से कम 1 होना चाहिए
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines --[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis
- `mod` सब-कमांड के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--base_module=<"<root>" for the root module; <module>@<version> for a specific version of a module; <module> for all versions of a module; @<name> for a repo with the given apparent name; or @@<name> for a repo with the given canonical name>default: "<root>"-
उस मॉड्यूल के बारे में बताएं जिसके हिसाब से टारगेट रीपो का आकलन किया जाएगा.
टैग:
terminal_output --charset=<utf8 or ascii>default: "utf8"-
यह विकल्प, ट्री के लिए इस्तेमाल किए जाने वाले वर्ण सेट को चुनता है. इसका असर सिर्फ़ टेक्स्ट आउटपुट पर पड़ता है. मान्य वैल्यू "utf8" या "ascii" हैं. डिफ़ॉल्ट वैल्यू "utf8" होती है
टैग:
terminal_output --[no]cyclesdefault: "true"-
यह दिखाए गए ट्री में डिपेंडेंसी साइकल के बारे में बताता है.
टैग:
terminal_output --depth=<an integer>default: "-1"-
डिपेंडेंसी ट्री की ज़्यादा से ज़्यादा डिसप्ले डेप्थ. डेप्थ 1 में, सीधे तौर पर निर्भरता रखने वाले कॉम्पोनेंट दिखते हैं. उदाहरण के लिए. ट्री, पाथ, और all_paths के लिए, यह डिफ़ॉल्ट रूप से Integer.MAX_VALUE पर सेट होता है. वहीं, deps और explain के लिए, यह डिफ़ॉल्ट रूप से 1 पर सेट होता है. इसका मतलब है कि यह टारगेट लीफ़ और उनके पैरंट के अलावा, सिर्फ़ रूट के डायरेक्ट deps दिखाता है.
टैग:
terminal_output --extension_filter=<a comma-separated list of <extension>s>डिफ़ॉल्ट: ब्यौरा देखें-
अगर इन मॉड्यूल एक्सटेंशन के फ़्लैग सेट हैं, तो सिर्फ़ इनके इस्तेमाल और इनसे जनरेट की गई रिपॉज़िटरी को दिखाएं. अगर यह विकल्प सेट किया जाता है, तो नतीजे के ग्राफ़ में सिर्फ़ वे पाथ शामिल होंगे जिनमें बताए गए एक्सटेंशन का इस्तेमाल करने वाले मॉड्यूल शामिल हैं. खाली सूची से फ़िल्टर बंद हो जाता है. इससे सभी संभावित एक्सटेंशन तय हो जाते हैं.
टैग:
terminal_output --extension_info=<hidden, usages, repos or all>default: "hidden"-
यह तय करें कि क्वेरी के नतीजे में, एक्सटेंशन के इस्तेमाल के बारे में कितनी जानकारी शामिल करनी है. "इस्तेमाल किए गए एक्सटेंशन" में सिर्फ़ एक्सटेंशन के नाम दिखेंगे. "repos" में use_repo की मदद से इंपोर्ट की गई repos भी शामिल होंगी. "सभी" में एक्सटेंशन से जनरेट की गई अन्य रिपॉज़िटरी भी दिखेंगी.
टैग:
terminal_output --extension_usages=<a comma-separated list of <module>s>default: ""-
उन मॉड्यूल के बारे में बताएं जिनके एक्सटेंशन के इस्तेमाल को show_extension क्वेरी में दिखाया जाएगा.
टैग:
terminal_output --from=<a comma-separated list of <module>s>default: "<root>"-
वे मॉड्यूल जिनसे डिपेंडेंसी ग्राफ़ क्वेरी दिखनी शुरू होगी. हर क्वेरी के सिमैंटिक की सटीक जानकारी के लिए, उसके ब्यौरे की जांच करें. डिफ़ॉल्ट रूप से, यह <root> पर सेट होता है.
टैग:
terminal_output --[no]include_builtindefault: "false"-
डिपेंडेंसी ग्राफ़ में पहले से मौजूद मॉड्यूल शामिल करें. इसे डिफ़ॉल्ट रूप से बंद रखा जाता है, क्योंकि इससे काफ़ी आवाज़ आती है.
टैग:
terminal_output --[no]include_unuseddefault: "false"-
क्वेरी में, इस्तेमाल न किए गए मॉड्यूल को भी ध्यान में रखा जाएगा और दिखाया जाएगा. ये मॉड्यूल, चुने जाने के बाद मॉड्यूल रिज़ॉल्यूशन ग्राफ़ में मौजूद नहीं होते हैं. ऐसा, कम से कम वर्शन चुनने या नियम को बदलने की वजह से होता है. इसका असर, हर तरह की क्वेरी पर अलग-अलग पड़ सकता है. जैसे, all_paths कमांड में नए पाथ शामिल करना या explain कमांड में अतिरिक्त डिपेंडेंट शामिल करना.
टैग:
terminal_output --output=<text, json or graph>default: "text"-
क्वेरी के नतीजों को प्रिंट करने का फ़ॉर्मैट. क्वेरी के लिए इन वैल्यू का इस्तेमाल किया जा सकता है: text, json, graph
टैग:
terminal_output --[no]verbosedefault: "false"-
क्वेरी में यह भी दिखेगा कि मॉड्यूल को उनके मौजूदा वर्शन में क्यों बदला गया (अगर बदला गया है). 'एक्सप्लेन क्वेरी' के लिए, डिफ़ॉल्ट रूप से यह विकल्प सही पर सेट होता है.
टैग:
terminal_output
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
Print_action के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--print_action_mnemonics=<a string>कई बार इस्तेमाल किया गया हो-
यह सूची बताती है कि print_action डेटा को किन नेमोनिक के हिसाब से फ़िल्टर करना है. अगर इसे खाली छोड़ दिया जाता है, तो कोई फ़िल्टरिंग नहीं होती है.
क्वेरी के विकल्प
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --[no]keep_going[-k] डिफ़ॉल्ट: "false"-
गड़बड़ी होने के बाद भी ज़्यादा से ज़्यादा काम जारी रखें. हालांकि, फ़ेल हुए टारगेट और उस पर निर्भर टारगेट का विश्लेषण नहीं किया जा सकता. हालांकि, इन टारगेट की अन्य ज़रूरी शर्तों का विश्लेषण किया जा सकता है.
टैग:
eagerness_to_exit --loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
डेटा लोड करने/विश्लेषण करने के लिए, एक साथ इस्तेमाल की जाने वाली थ्रेड की संख्या. इसमें पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") का इस्तेमाल किया जाता है. इसके बाद, ऑपरेशन ([-|]<float>) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, "auto", "HOST_CPUS.5". "auto" वैल्यू, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू सेट करती है. कम से कम 1 होना चाहिए
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines --[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis
- क्वेरी के आउटपुट और सिमैंटिक से जुड़े विकल्प:
--aspect_deps=<off, conservative or precise>default: "conservative"-
जब आउटपुट फ़ॉर्मैट {xml,proto,record} में से कोई एक हो, तब पहलू की डिपेंडेंसी को कैसे हल करें. 'off' का मतलब है कि किसी भी पहलू की डिपेंडेंसी हल नहीं की गई है. 'conservative' (डिफ़ॉल्ट) का मतलब है कि सभी पहलुओं की डिपेंडेंसी जोड़ी गई हैं. भले ही, उन्हें डायरेक्ट डिपेंडेंसी का नियम क्लास दिया गया हो. 'precise' का मतलब है कि सिर्फ़ उन पहलुओं को जोड़ा गया है जो डायरेक्ट डिपेंडेंसी के नियम क्लास के हिसाब से शायद ऐक्टिव हों. ध्यान दें कि सटीक मोड में, किसी एक टारगेट का आकलन करने के लिए अन्य पैकेज लोड करने पड़ते हैं. इसलिए, यह अन्य मोड की तुलना में धीमा होता है. यह भी ध्यान दें कि सटीक मोड भी पूरी तरह से सटीक नहीं होता: किसी पहलू का हिसाब लगाना है या नहीं, यह फ़ैसला विश्लेषण के चरण में लिया जाता है. यह चरण 'bazel query' के दौरान नहीं चलता.
टैग:
build_file_semantics --[no]consistent_labelsdefault: "false"-
अगर यह सुविधा चालू है, तो हर क्वेरी कमांड, लेबल को इस तरह से दिखाती है जैसे Starlark <code>str</code> फ़ंक्शन को <code>Label</code> इंस्टेंस पर लागू किया गया हो. यह उन टूल के लिए काम का है जिन्हें नियमों के हिसाब से जनरेट की गई अलग-अलग क्वेरी कमांड और/या लेबल के आउटपुट को मैच करना होता है. अगर यह सुविधा चालू नहीं है, तो आउटपुट फ़ॉर्मेटर, आउटपुट को ज़्यादा आसानी से पढ़ने के लिए, मुख्य रिपॉज़िटरी के बजाय रिपॉज़िटरी के नाम (मुख्य रिपॉज़िटरी के हिसाब से) दिखा सकते हैं.
टैग:
terminal_output --[no]experimental_explicit_aspectsdefault: "false"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]experimental_graphless_querydefault: "auto"-
अगर यह वैल्यू सही है, तो ऐसे क्वेरी लागू करने के तरीके का इस्तेमाल किया जाता है जो ग्राफ़ की कॉपी नहीं बनाता. नया वर्शन सिर्फ़ --order_output=no के साथ काम करता है. साथ ही, यह सिर्फ़ आउटपुट फ़ॉर्मैट करने वाले कुछ टूल के साथ काम करता है.
--graph:conditional_edges_limit=<an integer>default: "4"-
दिखाने के लिए, शर्त वाले लेबल की ज़्यादा से ज़्यादा संख्या. -1 का मतलब है कि कोई काट-छांट नहीं की गई है और 0 का मतलब है कि कोई एनोटेशन नहीं है. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --[no]graph:factoreddefault: "true"-
अगर सही है, तो ग्राफ़ को 'फ़ैक्टर्ड' किया जाएगा. इसका मतलब है कि टोपोलॉजिकल तौर पर एक जैसे नोड को एक साथ मर्ज कर दिया जाएगा और उनके लेबल को एक साथ जोड़ दिया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --graph:node_limit=<an integer>default: "512"-
आउटपुट में, ग्राफ़ नोड के लिए लेबल स्ट्रिंग की ज़्यादा से ज़्यादा लंबाई. बड़े लेबल छोटे कर दिए जाएंगे; -1 का मतलब है कि लेबल को छोटा नहीं किया जाएगा. यह विकल्प सिर्फ़ --output=graph पर लागू होता है.
टैग:
terminal_output --[no]implicit_depsdefault: "true"-
अगर यह विकल्प चालू है, तो क्वेरी जिस डिपेंडेंसी ग्राफ़ पर काम करती है उसमें इंप्लिसिट डिपेंडेंसी शामिल की जाएंगी. इंप्लिसिट डिपेंडेंसी ऐसी डिपेंडेंसी होती है जिसे BUILD फ़ाइल में साफ़ तौर पर नहीं बताया जाता, लेकिन Bazel उसे जोड़ देता है. cquery के लिए, यह विकल्प हल की गई टूलचेन को फ़िल्टर करने की सुविधा को कंट्रोल करता है.
टैग:
build_file_semantics --[no]include_aspectsdefault: "true"-
aquery, cquery: क्या आउटपुट में, आसपेक्ट से जनरेट हुई कार्रवाइयों को शामिल करना है. query: no-op (आसपेक्ट हमेशा फ़ॉलो किए जाते हैं).
टैग:
terminal_output --[no]incompatible_lexicographical_outputdefault: "true"-
यह विकल्प सेट होने पर, --order_output=auto, आउटपुट को लेक्सिकोग्राफ़िकल क्रम में लगाता है.
--[no]incompatible_package_group_includes_double_slashdefault: "true"-
इस सेटिंग को चालू करने पर, package_group
packagesएट्रिब्यूट की वैल्यू देते समय, लीडिंग//को नहीं हटाया जाएगा. --[no]infer_universe_scopedefault: "false"-
अगर इसे सेट किया गया है और --universe_scope को सेट नहीं किया गया है, तो --universe_scope की वैल्यू को क्वेरी एक्सप्रेशन में मौजूद यूनीक टारगेट पैटर्न की सूची के तौर पर माना जाएगा. ध्यान दें कि क्वेरी एक्सप्रेशन के लिए अनुमानित --universe_scope वैल्यू, आपकी ज़रूरत के हिसाब से नहीं हो सकती.ऐसा तब होता है, जब क्वेरी एक्सप्रेशन में यूनिवर्स के स्कोप वाले फ़ंक्शन (जैसे,
allrdeps) का इस्तेमाल किया जाता है.इसलिए, इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब आपको पता हो कि आपको क्या करना है. ज़्यादा जानकारी और उदाहरणों के लिए, https://bazel.build/reference/query#sky-query पर जाएं. अगर --universe_scope सेट है, तो इस विकल्प की वैल्यू को अनदेखा कर दिया जाता है. ध्यान दें: यह विकल्प सिर्फ़queryपर लागू होता है. इसका मतलब है कि यहcqueryपर लागू नहीं होता.टैग:
loading_and_analysis --[no]line_terminator_nulldefault: "false"-
क्या हर फ़ॉर्मैट को नई लाइन के बजाय \0 से खत्म किया गया है.
टैग:
terminal_output --[no]nodep_depsdefault: "true"-
अगर यह विकल्प चालू है, तो "nodep" एट्रिब्यूट से मिली डिपेंडेंसी को डिपेंडेंसी ग्राफ़ में शामिल किया जाएगा. इस ग्राफ़ पर क्वेरी काम करती है. "nodep" एट्रिब्यूट का एक सामान्य उदाहरण "visibility" है. बिल्ड लैंग्वेज में मौजूद सभी "nodep" एट्रिब्यूट के बारे में जानने के लिए,
info build-languageका आउटपुट पार्स करें और उसे चलाएं.टैग:
build_file_semantics --noorder_results-
नतीजों को निर्भरता के क्रम (डिफ़ॉल्ट) या बिना क्रम के दिखाएं. बिना क्रम वाली आउटपुट फ़ाइल तेज़ी से जनरेट होती है. हालांकि, यह सुविधा सिर्फ़ तब काम करती है, जब --output को minrank, maxrank या graph के तौर पर सेट न किया गया हो.
बढ़कर:
--order_output=noटैग:
terminal_output --null-
क्या हर फ़ॉर्मैट को नई लाइन के बजाय \0 से खत्म किया गया है.
बढ़कर:
--line_terminator_null=trueटैग:
terminal_output --order_output=<no, deps, auto or full>default: "auto"-
नतीजों को क्रम से न लगाएं (no), निर्भरता के क्रम से लगाएं (deps) या पूरी तरह से क्रम से लगाएं (full). डिफ़ॉल्ट रूप से, यह 'auto' पर सेट होता है. इसका मतलब है कि नतीजे, आउटपुट फ़ॉर्मेटर के हिसाब से क्रम में लगाए जाते हैं. जैसे, proto, minrank, maxrank, और graph के लिए, निर्भरता के हिसाब से क्रम में लगाए जाते हैं. वहीं, अन्य सभी के लिए, पूरी तरह से क्रम में लगाए जाते हैं. जब आउटपुट पूरी तरह से क्रम में होता है, तो नोड को पूरी तरह से तय किए गए क्रम में प्रिंट किया जाता है. सबसे पहले, सभी नोड को वर्णमाला के क्रम में लगाया जाता है. इसके बाद, सूची में मौजूद हर नोड का इस्तेमाल, पोस्ट-ऑर्डर डेप्थ-फ़र्स्ट सर्च की शुरुआत के तौर पर किया जाता है. इसमें, जिन नोड पर नहीं जाया गया है उनके आउटगोइंग एज को, सक्सेसर नोड के वर्णमाला क्रम में ट्रैवर्स किया जाता है. आखिर में, नोड को उस क्रम के उलट क्रम में प्रिंट किया जाता है जिस क्रम में उन्हें देखा गया था.
टैग:
terminal_output --order_results-
नतीजों को निर्भरता के क्रम (डिफ़ॉल्ट) या बिना क्रम के दिखाएं. बिना क्रम वाली आउटपुट फ़ाइल तेज़ी से जनरेट होती है. हालांकि, यह सुविधा सिर्फ़ तब काम करती है, जब --output को minrank, maxrank या graph के तौर पर सेट न किया गया हो.
बढ़कर:
--order_output=autoटैग:
terminal_output --output=<a string>default: "label"-
क्वेरी के नतीजों को प्रिंट करने का फ़ॉर्मैट. क्वेरी के लिए इन वैल्यू का इस्तेमाल किया जा सकता है: build, graph, streamed_jsonproto, label, label_kind, location, maxrank, minrank, package, proto, streamed_proto, xml.
टैग:
terminal_output --output_file=<a string>default: ""-
इस विकल्प को चुनने पर, क्वेरी के नतीजे सीधे इस फ़ाइल में लिखे जाएंगे. साथ ही, Bazel के स्टैंडर्ड आउटपुट स्ट्रीम (stdout) में कुछ भी प्रिंट नहीं किया जाएगा. आम तौर पर, बेंचमार्क में यह <code>bazel query > file</code> से ज़्यादा तेज़ होता है.
टैग:
terminal_output --[no]proto:default_valuesdefault: "true"-
अगर यह विकल्प सही है, तो उन एट्रिब्यूट को शामिल किया जाता है जिनकी वैल्यू BUILD फ़ाइल में साफ़ तौर पर नहीं दी गई है. अगर यह विकल्प गलत है, तो उन एट्रिब्यूट को शामिल नहीं किया जाता है. यह विकल्प, --output=proto पर लागू होता है
टैग:
terminal_output --[no]proto:definition_stackdefault: "false"-
definition_stack proto फ़ील्ड भरें. यह फ़ील्ड, हर नियम के इंस्टेंस के लिए, Starlark कॉल स्टैक को रिकॉर्ड करता है. यह रिकॉर्डिंग, नियम की क्लास तय किए जाने के समय की होती है.
टैग:
terminal_output --[no]proto:flatten_selectsdefault: "true"-
इस विकल्प को चालू करने पर, select() फ़ंक्शन से बनाए गए कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट को फ़्लैट कर दिया जाता है. सूची टाइप के लिए, फ़्लैट किए गए डेटा का मतलब ऐसी सूची से है जिसमें चुने गए मैप की हर वैल्यू सिर्फ़ एक बार शामिल होती है. स्केलर टाइप को शून्य पर सेट किया जाता है.
टैग:
build_file_semantics --[no]proto:include_attribute_source_aspectsdefault: "false"-
हर एट्रिब्यूट के source_aspect_name प्रोटो फ़ील्ड में, उस सोर्स पहलू का नाम डालें जिससे एट्रिब्यूट मिला है. अगर एट्रिब्यूट किसी सोर्स पहलू से नहीं मिला है, तो इस फ़ील्ड में खाली स्ट्रिंग डालें.
टैग:
terminal_output --[no]proto:include_starlark_rule_envdefault: "true"-
जनरेट किए गए $internal_attr_hash एट्रिब्यूट की वैल्यू में, Starlark एनवायरमेंट का इस्तेमाल करें. इससे यह पक्का होता है कि स्टार्लार्क नियम की परिभाषा (और उसके ट्रांज़िटिव इंपोर्ट) इस आइडेंटिफ़ायर का हिस्सा हैं.
टैग:
terminal_output --[no]proto:include_synthetic_attribute_hashdefault: "false"-
$internal_attr_hash एट्रिब्यूट की वैल्यू का हिसाब लगाना है या नहीं.
टैग:
terminal_output --[no]proto:instantiation_stackdefault: "false"-
हर नियम के इंस्टैंटिएशन कॉल स्टैक को पॉप्युलेट करें. ध्यान दें कि इसके लिए, स्टैक का मौजूद होना ज़रूरी है
टैग:
terminal_output --[no]proto:locationsdefault: "true"-
जगह की जानकारी को प्रोटो आउटपुट में दिखाना है या नहीं.
टैग:
terminal_output --proto:output_rule_attrs=<comma-separated list of options>default: "all"-
आउटपुट में शामिल किए जाने वाले एट्रिब्यूट की कॉमा लगाकर बनाई गई सूची. डिफ़ॉल्ट रूप से, सभी एट्रिब्यूट के लिए लागू होता है. किसी भी एट्रिब्यूट को आउटपुट न करने के लिए, इसे खाली स्ट्रिंग पर सेट करें. यह विकल्प, --output=proto पर लागू होता है.
टैग:
terminal_output --[no]proto:rule_classesdefault: "false"-
हर नियम के rule_class_key फ़ील्ड में वैल्यू डालें. साथ ही, दिए गए rule_class_key वाले पहले नियम के लिए, उसके rule_class_info प्रोटो फ़ील्ड में भी वैल्यू डालें. rule_class_key फ़ील्ड, नियम क्लास की खास तौर पर पहचान करता है. साथ ही, rule_class_info फ़ील्ड, Stardoc फ़ॉर्मैट में नियम क्लास की एपीआई डेफ़िनिशन है.
टैग:
terminal_output --[no]proto:rule_inputs_and_outputsdefault: "true"-
rule_input और rule_output फ़ील्ड में वैल्यू डालनी है या नहीं.
टैग:
terminal_output --query_file=<a string>default: ""-
अगर इसे सेट किया जाता है, तो क्वेरी, कमांड लाइन के बजाय यहां दी गई फ़ाइल से क्वेरी पढ़ेगी. यहां फ़ाइल और कमांड-लाइन क्वेरी, दोनों को एक साथ नहीं बताया जा सकता.
टैग:
changes_inputs --[no]relative_locationsdefault: "false"-
अगर इस नीति को 'सही है' पर सेट किया जाता है, तो एक्सएमएल और प्रोटो आउटपुट में BUILD फ़ाइलों की जगह की जानकारी रिलेटिव होगी. डिफ़ॉल्ट रूप से, जगह की जानकारी का आउटपुट एक ऐब्सलूट पाथ होता है. यह अलग-अलग मशीनों पर एक जैसा नहीं होता. इस विकल्प को true पर सेट किया जा सकता है, ताकि सभी मशीनों पर एक जैसा नतीजा मिले.
टैग:
terminal_output --[no]strict_test_suitedefault: "false"-
अगर यह विकल्प सही है, तो tests() एक्सप्रेशन में गड़बड़ी दिखेगी. ऐसा तब होगा, जब उसे ऐसी test_suite मिलेगी जिसमें नॉन-टेस्ट टारगेट शामिल हों.
--[no]tool_depsdefault: "true"-
क्वेरी: अगर यह सुविधा बंद है, तो 'एक्ज़ीक्यूशन कॉन्फ़िगरेशन' पर निर्भरता, उस डिपेंडेंसी ग्राफ़ में शामिल नहीं की जाएगी जिस पर क्वेरी काम करती है. 'exec configuration' डिपेंडेंसी एज, जैसे कि किसी भी 'proto_library' नियम से लेकर प्रोटोकॉल कंपाइलर तक, आम तौर पर उस टूल की ओर इशारा करता है जिसे बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है. यह उसी 'target' प्रोग्राम का हिस्सा नहीं होता. Cquery: अगर यह विकल्प बंद है, तो यह उन सभी कॉन्फ़िगर किए गए टारगेट को फ़िल्टर कर देता है जो टॉप-लेवल के उस टारगेट से एक्ज़ीक्यूशन ट्रांज़िशन को पार करते हैं जिसने इस कॉन्फ़िगर किए गए टारगेट का पता लगाया था. इसका मतलब है कि अगर टॉप-लेवल का टारगेट, टारगेट कॉन्फ़िगरेशन में है, तो टारगेट कॉन्फ़िगरेशन में कॉन्फ़िगर किए गए टारगेट ही दिखाए जाएंगे. अगर टॉप-लेवल का टारगेट, exec कॉन्फ़िगरेशन में है, तो सिर्फ़ exec कॉन्फ़िगर किए गए टारगेट दिखाए जाएंगे. इस विकल्प से, हल की गई टूलचेन को नहीं हटाया जाएगा.
टैग:
build_file_semantics --universe_scope=<comma-separated list of options>default: ""-
कॉमा लगाकर अलग किए गए टारगेट पैटर्न का सेट (जोड़ने और घटाने वाले). क्वेरी को, ट्रांज़िटिव क्लोज़र के ज़रिए तय किए गए यूनिवर्स में किया जा सकता है. इस विकल्प का इस्तेमाल, क्वेरी और cquery कमांड के लिए किया जाता है. cquery के लिए, इस विकल्प का इनपुट वे टारगेट होते हैं जिनके तहत सभी जवाब बनाए जाते हैं. इसलिए, यह विकल्प कॉन्फ़िगरेशन और ट्रांज़िशन पर असर डाल सकता है. अगर इस विकल्प के बारे में नहीं बताया जाता है, तो यह माना जाता है कि क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के टारगेट हैं. ध्यान दें: cquery के लिए, इस विकल्प को तय न करने पर, बिल्ड टूट सकता है. ऐसा तब होता है, जब क्वेरी एक्सप्रेशन से पार्स किए गए टारगेट, टॉप-लेवल के विकल्पों के साथ नहीं बनाए जा सकते.
टैग:
loading_and_analysis --[no]xml:default_valuesdefault: "false"-
अगर यह विकल्प सही है, तो उन नियमों के एट्रिब्यूट प्रिंट किए जाते हैं जिनकी वैल्यू BUILD फ़ाइल में साफ़ तौर पर नहीं दी गई है. ऐसा न होने पर, उन्हें छोड़ दिया जाता है.
टैग:
terminal_output --[no]xml:line_numbersdefault: "true"-
अगर सही है, तो एक्सएमएल आउटपुट में लाइन नंबर शामिल होते हैं. इस विकल्प को बंद करने से, अंतर को आसानी से पढ़ा जा सकता है. यह विकल्प सिर्फ़ --output=xml पर लागू होता है.
टैग:
terminal_output
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
रन करने के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- ऐसे विकल्प जो कमांड से पहले दिखते हैं और जिन्हें क्लाइंट पार्स करता है:
--[no]portable_pathsdefault: "false"-
अगर यह सही है, तो इसमें ExecRequest में बदलने के लिए पाथ शामिल होते हैं, ताकि नतीजे के तौर पर मिले पाथ को पोर्टेबल बनाया जा सके.
टैग:
affects_outputs --[no]rundefault: "true"-
अगर यह वैल्यू 'गलत है' पर सेट है, तो बनाए गए टारगेट के लिए बनाई गई कमांड लाइन को चलाने की प्रोसेस को स्किप कर दें. ध्यान दें कि इस फ़्लैग को --script_path के ज़रिए बनाए गए सभी बिल्ड के लिए अनदेखा कर दिया जाता है.
टैग:
affects_outputs --run_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
इस विकल्प से, टारगेट को चलाने के लिए उपलब्ध एनवायरमेंट वैरिएबल के सेट के बारे में पता चलता है. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर से भी वैल्यू को सेट किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> से उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. ध्यान दें कि आम तौर पर, लागू किए गए टारगेट को होस्ट का पूरा एनवायरमेंट दिखेगा. हालांकि, उन वैरिएबल को छोड़कर जिन्हें साफ़ तौर पर अनसेट किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--script_path=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
अगर सेट है, तो दी गई फ़ाइल में एक शेल स्क्रिप्ट लिखें, जो टारगेट को शुरू करती है. अगर इस विकल्प को सेट किया जाता है, तो टारगेट को Bazel से नहीं चलाया जाता. '//foo' टारगेट को शुरू करने के लिए, 'bazel run --script_path=foo //foo && ./foo' का इस्तेमाल करें. यह 'bazel run //foo' से इस मामले में अलग है कि bazel लॉक को रिलीज़ कर दिया जाता है और एक्ज़ीक्यूटेबल को टर्मिनल के stdin से कनेक्ट कर दिया जाता है.
टैग:
affects_outputs,execution
बंद करने के विकल्प
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--iff_heap_size_greater_than=<an integer>default: "0"-
अगर यह वैल्यू शून्य नहीं है, तो सर्वर सिर्फ़ तब बंद होगा, जब JVM की ओर से इस्तेमाल की गई कुल मेमोरी (MB में) इस वैल्यू से ज़्यादा होगी.
टेस्ट के विकल्प
build से सभी विकल्प इनहेरिट करता है.
- लॉगिंग की जानकारी के लेवल, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--[no]print_relative_test_log_pathsdefault: "false"-
अगर यह सही है, तो टेस्ट लॉग का पाथ प्रिंट करते समय, ऐसे रिलेटिव पाथ का इस्तेमाल करें जो 'testlogs' सुविधा वाले सिमलंक का इस्तेमाल करता है. ध्यान दें - अलग कॉन्फ़िगरेशन के साथ 'build'/'test'/वगैरह को बाद में इनवोक करने से, इस सिंबल लिंक का टारगेट बदल सकता है. इससे पहले प्रिंट किया गया पाथ अब काम नहीं करेगा.
टैग:
affects_outputs --[no]test_verbose_timeout_warningsdefault: "false"-
अगर यह सही है, तो टेस्ट के असल में पूरा होने का समय, टेस्ट के लिए तय किए गए टाइम आउट से मेल न खाने पर, अतिरिक्त चेतावनियां प्रिंट करें. टाइम आउट का मतलब साफ़ तौर पर बताया गया हो या न बताया गया हो.
टैग:
affects_outputs --[no]verbose_test_summarydefault: "true"-
सही होने पर, टेस्ट की खास जानकारी में अतिरिक्त जानकारी (समय, फ़ेल हुए रन की संख्या वगैरह) प्रिंट करें.
टैग:
affects_outputs
वेंडर के विकल्प
test से सभी विकल्प इनहेरिट करता है.
- बिल्ड एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]keep_going[-k] डिफ़ॉल्ट: "false"-
गड़बड़ी होने के बाद भी ज़्यादा से ज़्यादा काम जारी रखें. हालांकि, फ़ेल हुए टारगेट और उस पर निर्भर टारगेट का विश्लेषण नहीं किया जा सकता. हालांकि, इन टारगेट की अन्य ज़रूरी शर्तों का विश्लेषण किया जा सकता है.
टैग:
eagerness_to_exit --loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">default: "auto"-
डेटा लोड करने/विश्लेषण करने के लिए, एक साथ इस्तेमाल की जाने वाली थ्रेड की संख्या. इसमें पूर्णांक या कीवर्ड ("auto", "HOST_CPUS", "HOST_RAM") का इस्तेमाल किया जाता है. इसके बाद, ऑपरेशन ([-|]<float>) का इस्तेमाल किया जा सकता है. उदाहरण के लिए, "auto", "HOST_CPUS.5". "auto" वैल्यू, होस्ट के संसाधनों के आधार पर डिफ़ॉल्ट रूप से एक सही वैल्यू सेट करती है. कम से कम 1 होना चाहिए
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_config_setting_private_default_visibilitydefault: "false"-
अगर incompatible_enforce_config_setting_visibility=false है, तो यह एक noop है. अगर यह फ़्लैग फ़ॉल्स है, तो दिखने की सेटिंग के एट्रिब्यूट के बिना कोई भी config_setting, //visibility:public होगी. अगर यह फ़्लैग सही है, तो config_setting, दिखने से जुड़े उसी लॉजिक का पालन करती है जिसका पालन अन्य सभी नियम करते हैं. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12933 पर जाएं.
--[no]incompatible_enforce_config_setting_visibilitydefault: "true"-
अगर सही है, तो config_setting के दिखने से जुड़ी पाबंदियां लागू करें. अगर यह वैल्यू 'गलत है', तो हर config_setting, हर टारगेट को दिखेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/12932 पर जाएं.
- Bzlmod के आउटपुट और सिमैंटिक्स से जुड़े विकल्प:
--repo=<a string>कई बार इस्तेमाल किया गया हो-
सिर्फ़ वे वेंडर, तय की गई रिपॉज़िटरी का इस्तेमाल कर सकते हैं. यह रिपॉज़िटरी
@apparent_repo_nameया@@canonical_repo_nameहो सकती है. इस विकल्प को कई बार सेट किया जा सकता हैटैग:
changes_inputs
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--deleted_packages=<comma-separated list of package names>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए उन पैकेज के नामों की सूची जिन्हें बिल्ड सिस्टम, मौजूद नहीं मानता है. भले ही, वे पैकेज पाथ पर कहीं दिख रहे हों. मौजूदा पैकेज 'x' के सबपैकेज 'x/y' को मिटाने के लिए, इस विकल्प का इस्तेमाल करें. उदाहरण के लिए, अगर आपने अपने क्लाइंट में x/y/BUILD को मिटा दिया है, तो बिल्ड सिस्टम को शिकायत मिल सकती है. ऐसा तब होगा, जब उसे '//x:y/z' लेबल दिखेगा. हालांकि, ऐसा तब ही होगा, जब यह लेबल अब भी किसी अन्य package_path एंट्री से मिला हो. --deleted_packages x/y को तय करने से, इस समस्या से बचा जा सकता है.
--[no]fetchdefault: "true"-
इस कमांड से, बाहरी डिपेंडेंसी फ़ेच की जा सकती हैं. अगर इसे 'गलत है' पर सेट किया जाता है, तो कमांड, डिपेंडेंसी के कैश मेमोरी में सेव किए गए किसी भी वर्शन का इस्तेमाल करेगी. अगर कोई वर्शन मौजूद नहीं है, तो कमांड काम नहीं करेगी.
--package_path=<colon-separated list of options>default: "%workspace%"-
पैकेज ढूंढने की जगहों की सूची, जिसे कोलन से अलग किया गया है. '%workspace%' से शुरू होने वाले एलिमेंट, शामिल किए गए वर्कस्पेस के हिसाब से होते हैं. अगर इसे शामिल नहीं किया जाता है या इसकी वैल्यू खाली है, तो डिफ़ॉल्ट वैल्यू 'bazel info default-package-path' का आउटपुट होती है.
--[no]show_loading_progressdefault: "true"-
अगर यह विकल्प चालू है, तो Bazel "Loading package:" मैसेज प्रिंट करेगा.
- बिल्ड के एक्ज़ीक्यूशन को कंट्रोल करने वाले विकल्प:
--[no]experimental_persistent_aar_extractordefault: "false"-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट एएआर एक्सट्रैक्टर चालू करें.
टैग:
execution,experimental --[no]experimental_remotable_source_manifestsdefault: "false"-
सोर्स मेनिफ़ेस्ट की कार्रवाइयों को रिमोट किया जा सकता है या नहीं
--[no]experimental_split_coverage_postprocessingdefault: "false"-
सही होने पर, Bazel एक नए स्पॉन में टेस्ट के लिए कवरेज पोस्टप्रोसेसिंग चलाएगा.
टैग:
execution,experimental --[no]experimental_strict_fileset_outputdefault: "false"-
अगर यह विकल्प चालू है, तो फ़ाइलसेट सभी आउटपुट आर्टफ़ैक्ट को सामान्य फ़ाइलों के तौर पर मैनेज करेंगे. ये डायरेक्ट्री में नहीं जाएंगे और सिमलंक के लिए संवेदनशील नहीं होंगे.
टैग:
execution,experimental --[no]incompatible_modify_execution_info_additivedefault: "true"-
इस विकल्प के चालू होने पर, एक से ज़्यादा --modify_execution_info फ़्लैग पास करने से, जानकारी जुड़ जाती है. इस सुविधा के बंद होने पर, सिर्फ़ आखिरी फ़्लैग को ध्यान में रखा जाता है.
टैग:
execution,affects_outputs,loading_and_analysis,incompatible_change --modify_execution_info=<regex=[+-]key,regex=[+-]key,...>कई बार इस्तेमाल किया गया हो-
कार्रवाई के लिए तय किए गए निमोनिक के आधार पर, कार्रवाई की एक्ज़ीक्यूशन जानकारी में कुंजियां जोड़ें या हटाएं. यह सिर्फ़ उन कार्रवाइयों पर लागू होता है जिनमें एक्ज़ीक्यूशन की जानकारी शामिल होती है. कई सामान्य कार्रवाइयों में एक्ज़ीक्यूशन की जानकारी शामिल होती है. जैसे, Genrule, CppCompile, Javac, StarlarkAction, TestRunner. एक से ज़्यादा वैल्यू तय करते समय, क्रम मायने रखता है. ऐसा इसलिए, क्योंकि कई रेगुलर एक्सप्रेशन एक ही नेमोनिक पर लागू हो सकते हैं.
सिंटैक्स: "regex=[+-]key,regex=[+-]key,...".
उदाहरण: '.=+x,.=-y,.=+z' से, सभी कार्रवाइयों के लिए एक्ज़ीक्यूशन की जानकारी में 'x' और 'z' जुड़ जाते हैं और 'y' हट जाता है. 'Genrule=+requires-x' से, Genrule की सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी में जोड़ा जाता है. '(?!Genrule).=-requires-x' से, Genrule के अलावा अन्य सभी कार्रवाइयों के लिए, 'requires-x' को एक्ज़ीक्यूशन की जानकारी से हटा दिया जाता है.
--persistent_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार चालू करें.
बढ़कर:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker --persistent_android_resource_processor-
वर्कर्स का इस्तेमाल करके, Android रिसॉर्स प्रोसेसर को लगातार चालू रखने की सुविधा चालू करें.
इनमें बदल जाता है:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker --persistent_multiplex_android_dex_desugar-
वर्कर्स का इस्तेमाल करके, Android dex और desugar की कार्रवाइयों को लगातार कई बार चलाने की सुविधा चालू करें.
बढ़कर:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar --persistent_multiplex_android_resource_processor-
वर्कर्स का इस्तेमाल करके, पर्सिस्टेंट मल्टीप्लेक्स किए गए Android रिसॉर्स प्रोसेसर को चालू करें.
बढ़कर:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers --persistent_multiplex_android_tools-
Android के लगातार काम करने वाले और मल्टीप्लेक्स किए गए टूल (dexing, desugaring, resource processing) चालू करें.
बढ़कर:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar --[no]use_target_platform_for_testsdefault: "false"-
अगर यह वैल्यू सही है, तो टेस्ट एक्ज़ेक ग्रुप के बजाय, टेस्ट चलाने के लिए टारगेट प्लैटफ़ॉर्म का इस्तेमाल करें.
टैग:
execution
- ऐक्शन को लागू करने के लिए इस्तेमाल की जाने वाली टूलचेन को कॉन्फ़िगर करने वाले विकल्प:
--android_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Android टारगेट कंपाइलर.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_manifest_merger=<legacy, android or force_android>डिफ़ॉल्ट: "android"-
android_binary नियमों के लिए, मेनिफ़ेस्ट मर्जर को चुनता है. यह फ़्लैग, लेगसी मर्जर से Android मेनिफ़ेस्ट मर्जर पर ट्रांज़िशन करने में मदद करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --android_platforms=<a build target label>default: ""-
यह विकल्प उन प्लैटफ़ॉर्म को सेट करता है जिनका इस्तेमाल android_binary टारगेट करते हैं. अगर एक से ज़्यादा प्लैटफ़ॉर्म तय किए गए हैं, तो बाइनरी एक फ़ैट APK है. इसमें हर टारगेट प्लैटफ़ॉर्म के लिए नेटिव बाइनरी शामिल होती हैं.
टैग:
changes_inputs,loading_and_analysis,loses_incremental_state --cc_output_directory_tag=<a string>default: ""-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
affects_outputs --compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट को कंपाइल करने के लिए, C++ कंपाइलर.
--coverage_output_generator=<a build target label>default: "@bazel_tools//tools/test:lcov_merger"-
उस बाइनरी का पाथ जिसका इस्तेमाल, रॉ कवरेज रिपोर्ट को पोस्टप्रोसेस करने के लिए किया जाता है. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:lcov_merger' होती है.
--coverage_report_generator=<a build target label>default: "@bazel_tools//tools/test:coverage_report_generator"-
कवरेज रिपोर्ट जनरेट करने के लिए इस्तेमाल किए गए बाइनरी की जगह. यह बाइनरी टारगेट होना चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू '//tools/test:coverage_report_generator' होती है.
--coverage_support=<a build target label>default: "@bazel_tools//tools/test:coverage_support"-
सहायता देने वाली फ़ाइलों की जगह. ये फ़ाइलें, कोड कवरेज की जानकारी इकट्ठा करने वाली हर टेस्ट कार्रवाई के इनपुट के लिए ज़रूरी होती हैं. डिफ़ॉल्ट रूप से, यह '//tools/test:coverage_support' पर सेट होती है.
--custom_malloc=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह विकल्प, malloc को लागू करने का कस्टम तरीका तय करता है. यह सेटिंग, बिल्ड के नियमों में malloc एट्रिब्यूट को बदल देती है.
--[no]experimental_include_xcode_execution_requirementsdefault: "false"-
अगर सेट है, तो हर Xcode ऐक्शन में "requires-xcode:{version}" एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें. अगर Xcode के वर्शन में हाइफ़न वाला लेबल है, तो "requires-xcode-label:{version_label}" के तौर पर भी एक्ज़ीक्यूशन की ज़रूरी शर्त जोड़ें.
टैग:
loses_incremental_state,loading_and_analysis,execution,experimental --[no]experimental_prefer_mutual_xcodedefault: "true"-
अगर यह नीति 'सही है' पर सेट है, तो स्थानीय और रिमोट, दोनों जगहों पर उपलब्ध Xcode के सबसे नए वर्शन का इस्तेमाल करें. अगर यह गलत है या दोनों के लिए कोई भी वर्शन उपलब्ध नहीं है, तो xcode-select के ज़रिए चुने गए Xcode के लोकल वर्शन का इस्तेमाल करें.
--extra_execution_platforms=<comma-separated list of options>default: ""-
कार्रवाइयां करने के लिए, इन प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. प्लेटफ़ॉर्म को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. register_execution_platforms() में बताए गए प्लैटफ़ॉर्म से पहले, इन प्लैटफ़ॉर्म पर विचार किया जाएगा. इस विकल्प को सिर्फ़ एक बार सेट किया जा सकता है. बाद में, फ़्लैग की सेटिंग पहले की सेटिंग को बदल देंगी.
टैग:
execution --extra_toolchains=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
टूलचेन के नियमों को टूलचेन रिज़ॉल्यूशन के दौरान ध्यान में रखा जाना चाहिए. टूलचेन को सटीक टारगेट या टारगेट पैटर्न के तौर पर तय किया जा सकता है. इन टूलचेन को, register_toolchains() फ़ंक्शन के ज़रिए WORKSPACE फ़ाइल में बताए गए टूलचेन से पहले माना जाएगा.
--grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
चेक-इन की गई libc लाइब्रेरी का लेबल. डिफ़ॉल्ट वैल्यू को क्रॉसटूल टूलचेन चुनता है. आपको इसे बदलने की ज़रूरत शायद ही कभी पड़ती है.
--host_compiler=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह फ़्लैग कोई कार्रवाई नहीं करता. आने वाले समय में रिलीज़ होने वाले वर्शन में इसे हटा दिया जाएगा.
--host_grte_top=<a label>डिफ़ॉल्ट: ब्यौरा देखें-
अगर यह सेटिंग तय की जाती है, तो यह exec कॉन्फ़िगरेशन के लिए, libc की टॉप-लेवल डायरेक्ट्री (--grte_top) को बदल देती है.
--host_platform=<a build target label>default: "@bazel_tools//tools:host_platform"-
होस्ट सिस्टम की जानकारी देने वाले प्लैटफ़ॉर्म के नियम का लेबल.
--[no]incompatible_bazel_test_exec_run_underdefault: "true"-
अगर यह विकल्प चालू है, तो "bazel test --run_under=//:runner" कमांड, एक्ज़ेक कॉन्फ़िगरेशन में "//:runner" बनाता है. यह सुविधा बंद होने पर, टारगेट कॉन्फ़िगरेशन में "//:runner" बनाता है. Bazel, एक्ज़ेक मशीनों पर टेस्ट करता है. इसलिए, पहला विकल्प ज़्यादा सही है. इससे "bazel run" पर कोई असर नहीं पड़ता. यह हमेशा टारगेट कॉन्फ़िगरेशन में "`--run_under=//foo" बनाता है.
--[no]incompatible_builtin_objc_strip_actiondefault: "true"-
objc लिंकिंग के हिस्से के तौर पर स्ट्रिप ऐक्शन को चालू करना है या नहीं.
--[no]incompatible_dont_enable_host_nonhost_crosstool_featuresdefault: "true"-
अगर यह सही है, तो Bazel, C++ टूलचेन में 'होस्ट' और 'नॉनहोस्ट' सुविधाएं चालू नहीं करेगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7407 देखें.
--[no]incompatible_enable_apple_toolchain_resolutiondefault: "false"-
ऐपल के नियमों (Starlark और नेटिव) के लिए Apple SDK टूल चुनने के लिए, टूलचेन रिज़ॉल्यूशन का इस्तेमाल करें
--[no]incompatible_remove_legacy_whole_archivedefault: "true"-
अगर यह विकल्प चालू है, तो Bazel डिफ़ॉल्ट रूप से लाइब्रेरी की डिपेंडेंसी को पूरे संग्रह के तौर पर लिंक नहीं करेगा. माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/7362 देखें.
--[no]incompatible_strip_executable_safelydefault: "false"-
अगर यह सही है, तो एक्ज़ीक्यूटेबल के लिए स्ट्रिप ऐक्शन, -x फ़्लैग का इस्तेमाल करेगा. इससे डाइनैमिक सिंबल रिज़ॉल्यूशन नहीं टूटेगा.
-
अगर टूलचेन में इंटरफ़ेस शेयर किए गए ऑब्जेक्ट इस्तेमाल करने की सुविधा है, तो उनका इस्तेमाल करें. फ़िलहाल, सभी ईएलएफ़ टूलचेन इस सेटिंग के साथ काम करते हैं.
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
इससे iOS ऐप्लिकेशन बनाने के लिए, iOS SDK के वर्शन के बारे में पता चलता है. यह जानकारी उपलब्ध न होने पर, 'xcode_version' से iOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
macOS ऐप्लिकेशन बनाने के लिए, macOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से macOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--minimum_os_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
ओएस का वह कम से कम वर्शन जिसे कंपाइल करने के लिए टारगेट किया गया है.
--platform_mappings=<a main workspace-relative path>default: ""-
मैपिंग फ़ाइल की जगह. इससे यह पता चलता है कि अगर कोई प्लैटफ़ॉर्म सेट नहीं है, तो कौनसा प्लैटफ़ॉर्म इस्तेमाल करना है. साथ ही, अगर कोई प्लैटफ़ॉर्म पहले से मौजूद है, तो कौनसा फ़्लैग सेट करना है. यह मुख्य वर्कस्पेस रूट के हिसाब से होना चाहिए. डिफ़ॉल्ट रूप से, यह 'platform_mappings' पर सेट होता है. यह फ़ाइल, वर्कस्पेस के रूट फ़ोल्डर में मौजूद होती है.
टैग:
affects_outputs,changes_inputs,loading_and_analysis,non_configurable --platforms=<a build target label>default: ""-
प्लैटफ़ॉर्म के नियमों के लेबल. इनसे मौजूदा कमांड के लिए टारगेट प्लैटफ़ॉर्म के बारे में पता चलता है.
--python_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट प्लैटफ़ॉर्म पर Python टारगेट चलाने के लिए, Python इंटरप्रेटर का ऐब्सलूट पाथ. अब काम नहीं करता; --incompatible_use_python_toolchains फ़्लैग की वजह से बंद है.
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
यह tvOS ऐप्लिकेशन बनाने के लिए, tvOS SDK टूल के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से tvOS SDK के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--[no]use_platforms_in_apple_crosstool_transitiondefault: "false"-
इससे apple_crosstool_transition, ज़रूरत पड़ने पर लेगसी
--cpuके बजाय--platformsफ़्लैग की वैल्यू का इस्तेमाल करता है.टैग:
loading_and_analysis --watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
watchOS ऐप्लिकेशन बनाने के लिए, watchOS SDK के वर्शन के बारे में बताता है. अगर यह जानकारी नहीं दी गई है, तो 'xcode_version' से watchOS SDK टूल के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
अगर बताया गया है, तो यह बिल्ड से जुड़ी कार्रवाइयों के लिए, दिए गए वर्शन के Xcode का इस्तेमाल करता है. अगर यह विकल्प नहीं दिया जाता है, तो Xcode के एक्ज़ीक्यूटर के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है.
--xcode_version_config=<a build target label>default: "@bazel_tools//tools/cpp:host_xcodes"-
यह xcode_config नियम का लेबल है. इसका इस्तेमाल, बिल्ड कॉन्फ़िगरेशन में Xcode का वर्शन चुनने के लिए किया जाता है.
- कमांड के आउटपुट को कंट्रोल करने वाले विकल्प:
--[no]apple_generate_dsymdefault: "false"-
डीबग सिंबल (.dSYM) फ़ाइलें जनरेट करनी हैं या नहीं.
--[no]build_runfile_linksdefault: "true"-
अगर यह सही है, तो सभी टारगेट के लिए रनफ़ाइल के सिंबल लिंक फ़ॉरेस्ट बनाएं. अगर यह वैल्यू 'गलत है', तो इन्हें सिर्फ़ तब लिखें, जब स्थानीय कार्रवाई, जांच या रन कमांड के लिए इनकी ज़रूरत हो.
टैग:
affects_outputs --[no]build_runfile_manifestsdefault: "true"-
अगर सही है, तो सभी टारगेट के लिए रनफ़ाइल मेनिफ़ेस्ट लिखें. अगर जानकारी गलत है, तो उसे शामिल न करें. इसकी वैल्यू फ़ॉल्स होने पर, लोकल टेस्ट नहीं चल पाएंगे.
टैग:
affects_outputs --[no]build_test_dwpdefault: "false"-
अगर यह सुविधा चालू है, तो C++ टेस्ट को स्टैटिक तौर पर और फ़िशन के साथ बनाने पर, टेस्ट बाइनरी के लिए .dwp फ़ाइल भी अपने-आप बन जाएगी.
--cc_proto_library_header_suffixes=<comma-separated set of options>default: ".pb.h"-
यह विकल्प, cc_proto_library से बनाई गई हेडर फ़ाइलों के सफ़िक्स सेट करता है.
--cc_proto_library_source_suffixes=<comma-separated set of options>default: ".pb.cc"-
यह विकल्प, उन सोर्स फ़ाइलों के सफ़िक्स सेट करता है जिन्हें cc_proto_library बनाता है.
--[no]experimental_proto_descriptor_sets_include_source_infodefault: "false"-
proto_library में, Java API के अन्य वर्शन के लिए अतिरिक्त कार्रवाइयां चलाएं.
--[no]experimental_save_feature_statedefault: "false"-
इस कुकी का इस्तेमाल, चालू की गई और अनुरोध की गई सुविधाओं की स्थिति को कंपाइल करने के आउटपुट के तौर पर सेव करने के लिए किया जाता है.
टैग:
affects_outputs,experimental --fission=<a set of compilation modes>default: "no"-
इससे यह तय होता है कि C++ कंपाइलेशन और लिंक के लिए, फ़िशन का इस्तेमाल कौनसे कंपाइलेशन मोड करते हैं. यह {'fastbuild', 'dbg', 'opt'} का कोई भी कॉम्बिनेशन हो सकता है. इसके अलावा, सभी मोड चालू करने के लिए 'yes' और सभी मोड बंद करने के लिए 'no' जैसी खास वैल्यू भी इस्तेमाल की जा सकती हैं.
टैग:
loading_and_analysis,action_command_lines,affects_outputs --[no]incompatible_always_include_files_in_datadefault: "true"-
अगर यह सही है, तो नेटिव नियम, डेटा डिपेंडेंसी के <code>DefaultInfo.files</code> को अपनी रनफ़ाइल में जोड़ते हैं. यह Starlark नियमों के लिए सुझाई गई सेटिंग से मेल खाता है (https://bazel.build/extending/rules#runfiles_features_to_avoid).
--[no]incompatible_compact_repo_mapping_manifestdefault: "false"-
अगर यह सुविधा चालू है, तो <binary>.repo_mapping फ़ाइल, मॉड्यूल एक्सटेंशन की रेपो मैपिंग को सिर्फ़ एक बार दिखाती है. ऐसा तब होता है, जब एक्सटेंशन से जनरेट होने वाली हर रेपो के लिए, रनफ़ाइलें उपलब्ध कराई जाती हैं.
--incompatible_disable_select_on=<comma-separated set of options>default: ""-
उन फ़्लैग की सूची जिनके लिए select() में इस्तेमाल करने की सुविधा बंद है.
टैग:
loading_and_analysis,incompatible_change,non_configurable --[no]incompatible_filegroup_runfiles_for_datadefault: "true"-
अगर यह सही है, तो srcs एट्रिब्यूट में शामिल टारगेट की रनफ़ाइलें, उन टारगेट के लिए उपलब्ध होती हैं जो फ़ाइल ग्रुप को डेटा डिपेंडेंसी के तौर पर इस्तेमाल करते हैं.
टैग:
incompatible_change --[no]objc_generate_linkmapdefault: "false"-
इससे यह तय होता है कि लिंकमैप फ़ाइल जनरेट करनी है या नहीं.
टैग:
affects_outputs --[no]save_tempsdefault: "false"-
अगर यह सेट है, तो gcc से मिले कुछ समय के लिए आउटपुट सेव किए जाएंगे. इनमें .s फ़ाइलें (असेंबलर कोड), .i फ़ाइलें (प्रीप्रोसेस्ड C), और .ii फ़ाइलें (प्रीप्रोसेस्ड C++) शामिल हैं.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह टारगेट कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध एनवायरमेंट वैरिएबल का सेट तय करता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, वैल्यू को इनवॉकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, <code>name=value</code> पेयर के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे वैल्यू को इनवॉकेशन एनवायरमेंट से अलग सेट किया जा सकता है. साथ ही, <code>=name</code> के हिसाब से भी वैरिएबल को तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है. <br> ध्यान दें कि जब तक <code>--incompatible_repo_env_ignores_action_env</code> की वैल्यू सही नहीं होती, तब तक <code>name=value</code> के सभी जोड़े, रिपॉज़िटरी के नियमों के लिए उपलब्ध रहेंगे.
टैग:
action_command_lines --allowed_cpu_values=<comma-separated set of options>default: ""-
--cpu फ़्लैग के लिए इस्तेमाल की जा सकने वाली वैल्यू.
--[no]android_databinding_use_androidxdefault: "true"-
AndroidX के साथ काम करने वाली डेटा-बाइंडिंग फ़ाइलें जनरेट करें. इसका इस्तेमाल सिर्फ़ databinding v2 के साथ किया जाता है. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]android_databinding_use_v3_4_argsdefault: "true"-
3.4.0 आर्ग्युमेंट के साथ android databinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --android_dynamic_mode=<off, default or fully>default: "off"-
इससे यह तय होता है कि जब cc_binary, शेयर की गई लाइब्रेरी को साफ़ तौर पर नहीं बनाता है, तो Android नियमों की C++ डिपेंडेंसी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तौर पर लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>default: "alphabetical"-
यह विकल्प, Android बाइनरी के लिए मेनिफ़ेस्ट मर्जर को पास किए गए मेनिफ़ेस्ट का क्रम सेट करता है. ALPHABETICAL का मतलब है कि मेनिफ़ेस्ट को execroot के हिसाब से पाथ के हिसाब से क्रम में लगाया जाता है. ALPHABETICAL_BY_CONFIGURATION का मतलब है कि मेनिफ़ेस्ट को आउटपुट डायरेक्ट्री में कॉन्फ़िगरेशन डायरेक्ट्री के हिसाब से पाथ के हिसाब से क्रम से लगाया जाता है. DEPENDENCY का मतलब है कि मेनिफ़ेस्ट को इस तरह से क्रम में लगाया जाता है कि हर लाइब्रेरी का मेनिफ़ेस्ट, उसकी डिपेंडेंसी के मेनिफ़ेस्ट से पहले आता है.
--[no]android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]build_python_zipdefault: "auto"-
Python एक्ज़ीक्यूटेबल ज़िप बनाएं; Windows पर चालू और अन्य प्लैटफ़ॉर्म पर बंद
टैग:
affects_outputs --catalyst_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ऐसी सूची जिसमें कॉमा लगाकर उन आर्किटेक्चर को अलग किया गया हो जिनके लिए Apple Catalyst बाइनरी बनानी हैं.
--[no]collect_code_coveragedefault: "false"-
अगर ऐसा तय किया गया है, तो Bazel कोड को इंस्ट्रुमेंट करेगा. इसके लिए, जहां भी मुमकिन होगा वहां ऑफ़लाइन इंस्ट्रुमेंटेशन का इस्तेमाल किया जाएगा. साथ ही, टेस्ट के दौरान कवरेज की जानकारी इकट्ठा करेगा. सिर्फ़ उन टारगेट पर असर पड़ेगा जो --instrumentation_filter से मैच करते हैं. आम तौर पर, इस विकल्प को सीधे तौर पर नहीं बताया जाना चाहिए. इसके बजाय, 'bazel coverage' कमांड का इस्तेमाल किया जाना चाहिए.
टैग:
affects_outputs --compilation_mode=<fastbuild, dbg or opt>[-c] default: "fastbuild"-
उस मोड के बारे में बताएं जिसमें बाइनरी बनाई जाएगी. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
C सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--copt=<a string>कई बार इस्तेमाल किया गया हो-
gcc को पास करने के लिए अतिरिक्त विकल्प.
--cpu=<a string>default: ""-
अब इस्तेमाल नहीं किया जाता: इस फ़्लैग का इस्तेमाल Blaze इंटरनल तौर पर नहीं करता है. हालांकि, पुराने प्लैटफ़ॉर्म मैपिंग मौजूद हैं, ताकि पुराने सिस्टम के साथ काम करने की सुविधा दी जा सके. इस फ़्लैग का इस्तेमाल न करें. इसके बजाय, प्लैटफ़ॉर्म की सही जानकारी के साथ --platforms का इस्तेमाल करें.
--cs_fdo_absolute_path=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, सीएसएफ़डीओ प्रोफ़ाइल की जानकारी का इस्तेमाल करें. प्रोफ़ाइल फ़ाइल, रॉ या इंडेक्स की गई LLVM प्रोफ़ाइल फ़ाइल वाली ZIP फ़ाइल का पूरा पाथ नेम डालें.
टैग:
affects_outputs --cs_fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कॉन्टेक्स्ट के हिसाब से संवेदनशील FDO इंस्ट्रुमेंटेशन के साथ बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --cs_fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
cs_fdo_profile, कॉन्टेक्स्ट के हिसाब से काम करने वाली प्रोफ़ाइल को दिखाता है. इसका इस्तेमाल ऑप्टिमाइज़ेशन के लिए किया जाता है.
टैग:
affects_outputs --cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने का अतिरिक्त विकल्प.
--define=<a 'name=value' assignment>कई बार इस्तेमाल किया गया हो-
हर --define विकल्प, बिल्ड वैरिएबल के लिए असाइनमेंट तय करता है. किसी वैरिएबल के लिए एक से ज़्यादा वैल्यू होने पर, सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
--dynamic_mode=<off, default or fully>default: "default"-
इससे यह तय होता है कि C++ बाइनरी को डाइनैमिक तरीके से लिंक किया जाएगा या नहीं. 'default' का मतलब है कि Bazel यह तय करेगा कि डाइनैमिक तरीके से लिंक करना है या नहीं. 'पूरी तरह से' का मतलब है कि सभी लाइब्रेरी डाइनैमिक तरीके से लिंक की जाएंगी. 'off' का मतलब है कि सभी लाइब्रेरी, ज़्यादातर स्टैटिक मोड में लिंक होंगी.
--[no]enable_propeller_optimize_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो Propeller Optimize के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी होगी.
टैग:
affects_outputs --[no]enable_remaining_fdo_absolute_pathsdefault: "true"-
अगर इसे सेट किया जाता है, तो FDO के लिए ऐब्सलूट पाथ का इस्तेमाल करने पर गड़बड़ी दिखेगी.
टैग:
affects_outputs --[no]enable_runfilesdefault: "auto"-
रनफ़ाइल के सिमलिंक ट्री को चालू करें. डिफ़ॉल्ट रूप से, यह Windows पर बंद होता है और अन्य प्लैटफ़ॉर्म पर चालू होता है.
टैग:
affects_outputs --exec_aspects=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन पहलुओं की सूची जिन्हें एक्ज़ीक्यूटिव के कॉन्फ़िगर किए गए टारगेट पर लागू किया जाना है. भले ही, वे टॉप-लेवल के टारगेट हों या न हों. इस सुविधा पर एक्सपेरिमेंट जारी है और इसमें बदलाव हो सकता है.
टैग:
loading_and_analysis --experimental_action_listener=<a build target label>कई बार इस्तेमाल किया गया हो-
इसे पहलुओं के लिए बंद कर दिया गया है. action_listener का इस्तेमाल करके, मौजूदा बिल्ड ऐक्शन में extra_action अटैच करें.
टैग:
execution,experimental --[no]experimental_android_compress_java_resourcesdefault: "false"-
APK में Java संसाधनों को कंप्रेस करना
--[no]experimental_android_databinding_v2default: "true"-
Android DataBinding v2 का इस्तेमाल करें. यह फ़्लैग कोई कार्रवाई नहीं करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_android_resource_shrinkingdefault: "false"-
इस विकल्प को चालू करने पर, ProGuard का इस्तेमाल करने वाले android_binary APK के लिए, संसाधन कम करने की सुविधा चालू हो जाती है.
--[no]experimental_android_rewrite_dexes_with_rexdefault: "false"-
dex फ़ाइलों को फिर से लिखने के लिए, rex टूल का इस्तेमाल करें
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]experimental_collect_code_coverage_for_generated_filesdefault: "false"-
अगर ऐसा बताया गया है, तो Bazel जनरेट की गई फ़ाइलों के लिए, कवरेज की जानकारी भी इकट्ठा करेगा.
टैग:
affects_outputs,experimental --experimental_objc_fastbuild_options=<comma-separated list of options>default: "-O0,-DDEBUG=1"-
इन स्ट्रिंग का इस्तेमाल, objc fastbuild कंपाइलर के विकल्पों के तौर पर करता है.
टैग:
action_command_lines --[no]experimental_omitfpdefault: "false"-
अगर सही है, तो स्टैक अनवाइंडिंग के लिए libunwind का इस्तेमाल करें. साथ ही, -fomit-frame-pointer और -fasynchronous-unwind-tables के साथ कंपाइल करें.
--experimental_output_paths=<off or strip>default: "off"-
आउटपुट ट्री में किस मॉडल का इस्तेमाल किया जाए, ताकि नियम अपने आउटपुट लिख सकें. खास तौर पर, मल्टी-प्लैटफ़ॉर्म / मल्टी-कॉन्फ़िगरेशन बिल्ड के लिए. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/6526 पर जाएं. Starlark ऐक्शन, पाथ मैपिंग में ऑप्ट-इन कर सकते हैं. इसके लिए, उन्हें 'execution_requirements' डिक्शनरी में 'supports-path-mapping' कुंजी जोड़नी होगी.
टैग:
loses_incremental_state,bazel_internal_configuration,affects_outputs,execution --experimental_override_platform_cpu_name=<a 'label=value' assignment>कई बार इस्तेमाल किया गया हो-
हर एंट्री, label=value के फ़ॉर्म में होनी चाहिए. इसमें label का मतलब प्लैटफ़ॉर्म से है और values, $(TARGET_CPU) मेक वैरिएबल और आउटपुट पाथ में प्लैटफ़ॉर्म के सीपीयू के नाम को बदलने के लिए, मनचाहा शॉर्टनेम है. इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब --experimental_platform_in_output_dir, --incompatible_target_cpu_from_platform या --incompatible_bep_cpu_from_platform सही पर सेट हो. नाम रखने के लिए सबसे ज़्यादा प्राथमिकता दी जाती है.
टैग:
affects_outputs,experimental --[no]experimental_platform_in_output_dirdefault: "false"-
अगर इसे सही पर सेट किया जाता है, तो आउटपुट डायरेक्ट्री के नाम में सीपीयू के बजाय टारगेट प्लैटफ़ॉर्म के लिए शॉर्टनेम का इस्तेमाल किया जाता है. अगर ऑटो मोड चुना जाता है, तो यह सिर्फ़ एक्ज़ेक कॉन्फ़िगरेशन के लिए लागू होता है. यह स्कीम एक्सपेरिमेंट के तौर पर उपलब्ध है और इसमें बदलाव किया जा सकता है: अगर --platforms विकल्प में सिर्फ़ एक वैल्यू नहीं है, तो platforms विकल्प के हैश का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_override_name_platform_in_output_dir ने मौजूदा प्लैटफ़ॉर्म के लिए कोई छोटा नाम रजिस्टर किया है, तो उस छोटे नाम का इस्तेमाल किया जाता है. इसके बाद, अगर --experimental_use_platforms_in_output_dir_legacy_heuristic सेट है, तो मौजूदा प्लैटफ़ॉर्म के लेबल के आधार पर शॉर्टनेम का इस्तेमाल करें. आखिर में, प्लैटफ़ॉर्म के विकल्प के हैश का इस्तेमाल किया जाता है.
टैग:
affects_outputs,experimental --[no]experimental_py_binaries_include_labeldefault: "false"-
py_binary टारगेट में उनका लेबल शामिल होता है. भले ही, स्टैंपिंग की सुविधा बंद हो.
टैग:
affects_outputs,experimental --[no]experimental_use_llvm_covmapdefault: "false"-
अगर ऐसा तय किया गया है, तो collect_code_coverage चालू होने पर Bazel, gcov के बजाय llvm-cov कवरेज मैप की जानकारी जनरेट करेगा.
टैग:
changes_inputs,affects_outputs,loading_and_analysis,experimental --[no]experimental_use_platforms_in_output_dir_legacy_heuristicdefault: "true"-
कृपया इस फ़्लैग का इस्तेमाल सिर्फ़ माइग्रेशन या टेस्टिंग की सुझाई गई रणनीति के तहत करें. ध्यान दें कि इस ह्यूरिस्टिक में कुछ कमियां हैं. हमारा सुझाव है कि आप सिर्फ़ --experimental_override_name_platform_in_output_dir पर भरोसा करें.
टैग:
affects_outputs,experimental --fdo_instrument=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
एफ़डीओ इंस्ट्रुमेंटेशन की मदद से बाइनरी जनरेट करें. Clang/LLVM कंपाइलर के साथ, यह उस डायरेक्ट्री का नाम भी स्वीकार करता है जिसमें रनटाइम के दौरान रॉ प्रोफ़ाइल फ़ाइलें डंप की जाएंगी.
टैग:
affects_outputs --fdo_optimize=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, FDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. .gcda फ़ाइल ट्री वाली zip फ़ाइल, ऑटो प्रोफ़ाइल वाली afdo फ़ाइल या LLVM प्रोफ़ाइल फ़ाइल का नाम डालें. यह फ़्लैग, लेबल के तौर पर तय की गई फ़ाइलों को भी स्वीकार करता है.जैसे,
//foo/bar:file.afdo- आपको हो सकता है कि इससे जुड़े पैकेज में//foo/bar:file.afdoडायरेक्टिव जोड़ना पड़े. साथ ही, यहfdo_profileटारगेट की ओर इशारा करने वाले लेबल को भी स्वीकार करता है.exports_filesयह फ़्लैग,fdo_profileनियम की जगह लागू होगा.टैग:
affects_outputs --fdo_prefetch_hints=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कैश मेमोरी प्रीफ़ेच के लिए, हिंट का इस्तेमाल करें.
टैग:
affects_outputs --fdo_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
fdo_profile, ऑप्टिमाइज़ेशन के लिए इस्तेमाल की जाने वाली प्रोफ़ाइल को दिखाता है.
टैग:
affects_outputs --features=<a string>कई बार इस्तेमाल किया गया हो-
टारगेट कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं. --host_features भी देखें
--[no]force_picdefault: "false"-
इस विकल्प के चालू होने पर, सभी C++ कंपाइलेशन, पोज़िशन-इंडिपेंडेंट कोड ("-fPIC") जनरेट करते हैं. साथ ही, लिंक, नॉन-पीआईसी लाइब्रेरी के बजाय पीआईसी प्री-बिल्ट लाइब्रेरी को प्राथमिकता देते हैं. इसके अलावा, लिंक, पोज़िशन-इंडिपेंडेंट एक्ज़ीक्यूटेबल ("-pie") जनरेट करते हैं.
--host_action_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह उन एनवायरमेंट वैरिएबल का सेट तय करता है जो एक्ज़ीक्यूशन कॉन्फ़िगरेशन वाली कार्रवाइयों के लिए उपलब्ध होते हैं. वैरिएबल को नाम के हिसाब से तय किया जा सकता है. ऐसे में, वैल्यू को इनवोकेशन एनवायरमेंट से लिया जाएगा. इसके अलावा, इसे name=value पेयर के हिसाब से भी तय किया जा सकता है. इससे वैल्यू को इनवोकेशन एनवायरमेंट से अलग सेट किया जा सकेगा. साथ ही, इसे <code>=name</code> के हिसाब से भी तय किया जा सकता है. इससे उस नाम के वैरिएबल को अनसेट किया जा सकेगा. इस विकल्प का इस्तेमाल कई बार किया जा सकता है. एक ही वैरिएबल के लिए दिए गए विकल्पों में से, सबसे नया विकल्प चुना जाता है. अलग-अलग वैरिएबल के लिए दिए गए विकल्पों को इकट्ठा किया जाता है.
टैग:
action_command_lines --host_compilation_mode=<fastbuild, dbg or opt>default: "opt"-
यह तय करें कि बिल्ड के दौरान इस्तेमाल किए गए टूल किस मोड में बनाए जाएंगे. वैल्यू: 'fastbuild', 'dbg', 'opt'.
--host_conlyopt=<a string>कई बार इस्तेमाल किया गया हो-
यह एक अतिरिक्त विकल्प है. इसका इस्तेमाल, exec कॉन्फ़िगरेशन में C सोर्स फ़ाइलों को कंपाइल करते समय C कंपाइलर को पास करने के लिए किया जाता है. हालांकि, इसका इस्तेमाल C++ सोर्स फ़ाइलों के लिए नहीं किया जा सकता.
--host_copt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_cpu=<a string>default: ""-
होस्ट सीपीयू.
--host_cxxopt=<a string>कई बार इस्तेमाल किया गया हो-
exec कॉन्फ़िगरेशन में बनाए गए टूल के लिए, C++ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
--host_features=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में बनाए गए टारगेट के लिए, दी गई सुविधाएं डिफ़ॉल्ट रूप से चालू या बंद रहेंगी. -<feature> को तय करने पर, सुविधा बंद हो जाएगी. नकारात्मक फ़ीचर हमेशा सकारात्मक फ़ीचर की जगह लेती हैं.
--host_linkopt=<a string>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में टूल लिंक करते समय, लिंकर को पास करने का अतिरिक्त विकल्प.
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
होस्ट टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
एक्ज़ेक कॉन्फ़िगरेशन में कुछ फ़ाइलों को कंपाइल करते समय, C/C++ कंपाइलर को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --host_per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों के gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--[no]incompatible_auto_exec_groupsdefault: "false"-
इस सुविधा को चालू करने पर, नियम के लिए इस्तेमाल की गई हर टूलचेन के लिए, एक्ज़ेक ग्रुप अपने-आप बन जाता है. इसके लिए, नियम को अपनी कार्रवाइयों पर
toolchainपैरामीटर तय करना होगा. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/17134 पर जाएं. --[no]incompatible_merge_genfiles_directorydefault: "true"-
अगर सही है, तो genfiles डायरेक्ट्री को bin डायरेक्ट्री में शामिल किया जाता है.
--[no]incompatible_target_cpu_from_platformdefault: "true"-
अगर टारगेट प्लैटफ़ॉर्म के cpu कंस्ट्रेंट (@platforms//cpu:cpu) की वैल्यू तय की गई है, तो उसका इस्तेमाल $(TARGET_CPU) मेक वैरिएबल को सेट करने के लिए किया जाता है.
--[no]instrument_test_targetsdefault: "false"-
कवरेज की सुविधा चालू होने पर, यह तय करता है कि टेस्ट के नियमों को लागू करना है या नहीं. इस विकल्प को सेट करने पर, --instrumentation_filter में शामिल किए गए टेस्ट नियमों को इंस्ट्रुमेंट किया जाता है. ऐसा न होने पर, टेस्ट के नियमों को हमेशा कवरेज इंस्ट्रूमेंटेशन से बाहर रखा जाता है.
टैग:
affects_outputs --instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-/javatests[/:],-/test/java[/:]"-
कवरेज की सुविधा चालू होने पर, सिर्फ़ उन नियमों को इंस्ट्रुमेंट किया जाएगा जिनके नाम, तय किए गए रेगुलर एक्सप्रेशन (रेगुलर एक्सप्रेशन) पर आधारित फ़िल्टर में शामिल हैं. इसके बजाय, '-' से शुरू होने वाले नियमों को शामिल नहीं किया जाता. ध्यान दें कि सिर्फ़ ऐसे नियमों को लागू किया जाता है जो टेस्ट नहीं किए गए हैं. हालांकि, अगर --instrument_test_targets विकल्प चालू है, तो टेस्ट किए गए नियमों को भी लागू किया जा सकता है.
टैग:
affects_outputs --ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, iOS का कम से कम ज़रूरी वर्शन. अगर यह जानकारी नहीं दी गई है, तो 'ios_sdk_version' का इस्तेमाल किया जाता है.
--ios_multi_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
ios_application बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. नतीजा एक यूनिवर्सल बाइनरी होती है, जिसमें सभी आर्किटेक्चर शामिल होते हैं.
--[no]legacy_whole_archivedefault: "true"-
यह विकल्प अब काम नहीं करता. इसकी जगह --incompatible_remove_legacy_whole_archive का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/7362 पर जाएं. चालू होने पर, cc_binary नियमों के लिए --whole-archive का इस्तेमाल करें. इन नियमों में linkshared=True और linkopts में linkstatic=True या '-static' होना चाहिए. यह सिर्फ़ पुराने सिस्टम के साथ काम करने की सुविधा के लिए है. इसके बजाय, हमेशा लिंक करने की सुविधा (alwayslink=1) का इस्तेमाल करना बेहतर विकल्प है.
--linkopt=<a string>कई बार इस्तेमाल किया गया हो-
लिंक करते समय gcc को पास करने का अतिरिक्त विकल्प.
--ltobackendopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ बैकएंड के चरण में पास करने का अतिरिक्त विकल्प (under --features=thin_lto).
--ltoindexopt=<a string>कई बार इस्तेमाल किया गया हो-
एलटीओ इंडेक्सिंग के चरण में पास करने के लिए अतिरिक्त विकल्प (--features=thin_lto के तहत).
--macos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
Apple macOS के बाइनरी फ़ाइलें बनाने के लिए, कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची.
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट के लिए, macOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'macos_sdk_version' का इस्तेमाल किया जाता है.
--memprof_profile=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
memprof प्रोफ़ाइल का इस्तेमाल करें.
टैग:
affects_outputs --[no]objc_debug_with_GLIBCXXdefault: "false"-
अगर इसे सेट किया गया है और कंपाइलेशन मोड को 'dbg' पर सेट किया गया है, तो GLIBCXX_DEBUG, GLIBCXX_DEBUG_PEDANTIC, और GLIBCPP_CONCEPT_CHECKS को तय करें.
टैग:
action_command_lines --[no]objc_enable_binary_strippingdefault: "false"-
लिंक की गई बाइनरी पर सिंबल और डेड-कोड स्ट्रिपिंग की जानी चाहिए या नहीं. अगर इस फ़्लैग और --compilation_mode=opt, दोनों को सेट किया जाता है, तो बाइनरी स्ट्रिपिंग की जाएगी.
टैग:
action_command_lines --objccopt=<a string>कई बार इस्तेमाल किया गया हो-
Objective-C/C++ सोर्स फ़ाइलों को कंपाइल करते समय, gcc को पास करने के लिए अतिरिक्त विकल्प.
टैग:
action_command_lines --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ फ़ाइलों को कंपाइल करते समय, gcc को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_copt=//foo/.*.cc,-//foo/bar.cc@-O0, //foo/ में मौजूद bar.cc को छोड़कर, सभी cc फ़ाइलों की gcc कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>कई बार इस्तेमाल किया गया हो-
कुछ बैकएंड ऑब्जेक्ट को कंपाइल करते समय, LTO बैकएंड (under --features=thin_lto) को चुनिंदा तौर पर पास करने के लिए अतिरिक्त विकल्प. इस विकल्प को कई बार पास किया जा सकता है. सिंटैक्स: regex_filter@option_1,option_2,...,option_n. यहां regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. option_1 से लेकर option_n तक का मतलब, कमांड लाइन के किसी भी विकल्प से है. अगर किसी विकल्प में कॉमा है, तो उसे बैकस्लैश के साथ कोट करना होगा. विकल्पों में @ शामिल हो सकता है. स्ट्रिंग को अलग करने के लिए, सिर्फ़ पहले @ का इस्तेमाल किया जाता है. उदाहरण: --per_file_ltobackendopt=//foo/.*.o,-//foo/bar.o@-O0, //foo/ में मौजूद bar.o को छोड़कर, सभी o फ़ाइलों के LTO बैकएंड कमांड लाइन में -O0 कमांड लाइन विकल्प जोड़ता है.
--platform_suffix=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह कॉन्फ़िगरेशन डायरेक्ट्री में जोड़े जाने वाले सफ़िक्स के बारे में बताता है.
टैग:
loses_incremental_state,affects_outputs,loading_and_analysis --propeller_optimize=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
बिल्ड टारगेट को ऑप्टिमाइज़ करने के लिए, Propeller की प्रोफ़ाइल की जानकारी का इस्तेमाल करें. Propeller की प्रोफ़ाइल में, कम से कम दो फ़ाइलों में से एक फ़ाइल होनी चाहिए. ये फ़ाइलें, सीसी प्रोफ़ाइल और एलडी प्रोफ़ाइल हैं. यह फ़्लैग, बिल्ड लेबल स्वीकार करता है. यह लेबल, प्रोपेलर प्रोफ़ाइल की इनपुट फ़ाइलों का रेफ़रंस देता है. उदाहरण के लिए, a/b/BUILD में मौजूद BUILD फ़ाइल, लेबल को इस तरह से तय करती है:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Bazel को ये फ़ाइलें दिखाने के लिए, हो सकता है कि आपको संबंधित पैकेज में exports_files डायरेक्टिव जोड़ना पड़े. इस विकल्प का इस्तेमाल इस तरह किया जाना चाहिए: --propeller_optimize=//a/b:propeller_profile
--propeller_optimize_absolute_cc_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए cc_profile फ़ाइल का पूरा पाथ.
टैग:
affects_outputs --propeller_optimize_absolute_ld_profile=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
Propeller Optimized बिल्ड के लिए, ld_profile फ़ाइल का ऐब्सलूट पाथ.
टैग:
affects_outputs --run_under=<a prefix in front of command>डिफ़ॉल्ट: ब्यौरा देखें-
'test' और 'run' कमांड के लिए, एक्ज़ीक्यूटेबल से पहले डालने के लिए प्रीफ़िक्स. अगर वैल्यू 'foo -bar' है और एक्ज़ीक्यूशन कमांड लाइन 'test_binary -baz' है, तो फ़ाइनल कमांड लाइन 'foo -bar test_binary -baz' होगी. यह एक्ज़ीक्यूटेबल टारगेट का लेबल भी हो सकता है. इसके कुछ उदाहरण ये हैं: 'valgrind', 'strace', 'strace -c', 'valgrind --quiet --num-callers=20', '//package:target', '//package:target --options'.
टैग:
action_command_lines -
अगर यह विकल्प चुना जाता है, तो एक जैसी सुविधा देने वाली नेटिव लाइब्रेरी को अलग-अलग टारगेट के साथ शेयर किया जाएगा
--[no]stampdefault: "false"-
बाइनरी पर तारीख, उपयोगकर्ता नाम, होस्टनेम, Workspace की जानकारी वगैरह की मुहर लगाएं
टैग:
affects_outputs --strip=<always, sometimes or never>डिफ़ॉल्ट: "कभी-कभी"-
इससे यह तय किया जाता है कि बाइनरी और शेयर की गई लाइब्रेरी को स्ट्रिप करना है या नहीं. इसके लिए, "-Wl,--strip-debug" का इस्तेमाल किया जाता है. 'sometimes' की डिफ़ॉल्ट वैल्यू का मतलब है कि --compilation_mode=fastbuild होने पर ही स्ट्रिप करें.
टैग:
affects_outputs --stripopt=<a string>कई बार इस्तेमाल किया गया हो-
'<name>.stripped' बाइनरी जनरेट करते समय, स्ट्रिप को पास करने के लिए अतिरिक्त विकल्प.
--tvos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग किए गए आर्किटेक्चर की सूची. इनके लिए Apple tvOS बाइनरी बनानी हैं.
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, tvOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'tvos_sdk_version' का इस्तेमाल किया जाता है.
--visionos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई उन आर्किटेक्चर की सूची जिनके लिए Apple visionOS बाइनरी बनानी हैं.
--watchos_cpus=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
कॉमा लगाकर अलग की गई, उन आर्किटेक्चर की सूची जिनके लिए Apple watchOS बाइनरी बनानी हैं.
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
टारगेट सिम्युलेटर और डिवाइसों के लिए, watchOS का कम से कम ज़रूरी वर्शन. यह जानकारी उपलब्ध न होने पर, 'watchos_sdk_version' का इस्तेमाल किया जाता है.
--xbinary_fdo=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
कंपाइलेशन को ऑप्टिमाइज़ करने के लिए, XbinaryFDO प्रोफ़ाइल की जानकारी का इस्तेमाल करें. डिफ़ॉल्ट क्रॉस बाइनरी प्रोफ़ाइल का नाम तय करें. इस विकल्प का इस्तेमाल --fdo_instrument/--fdo_optimize/--fdo_profile के साथ करने पर, उन विकल्पों को हमेशा प्राथमिकता दी जाएगी. ऐसा माना जाएगा कि xbinary_fdo को कभी भी तय नहीं किया गया है.
टैग:
affects_outputs
- ऐसे विकल्प जिनसे इस बात पर असर पड़ता है कि Bazel, मान्य बिल्ड इनपुट (नियम की परिभाषाएं, फ़्लैग कॉम्बिनेशन वगैरह) को कितनी सख्ती से लागू करता है:
--[no]check_visibilitydefault: "true"-
अगर यह सुविधा बंद है, तो टारगेट डिपेंडेंसी में दिखने वाली गड़बड़ियों को चेतावनियों में बदल दिया जाता है.
--[no]desugar_for_androiddefault: "true"-
यह तय करता है कि Java 8 के बाइटकोड को dexing से पहले desugar करना है या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]desugar_java8_libsdefault: "false"-
लेगसी डिवाइसों के लिए बनाए गए ऐप्लिकेशन में, Java 8 की सुविधा वाली लाइब्रेरी शामिल करनी हैं या नहीं.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state,experimental --[no]enforce_constraintsdefault: "true"-
यह जांच करता है कि हर टारगेट, किन एनवायरमेंट के साथ काम करता है. साथ ही, अगर किसी टारगेट की ऐसी डिपेंडेंसी हैं जो एक ही एनवायरमेंट के साथ काम नहीं करती हैं, तो गड़बड़ियों की जानकारी देता है
टैग:
build_file_semantics --[no]experimental_check_desugar_depsdefault: "true"-
Android बाइनरी लेवल पर, सही डिसुगरिंग की दोबारा जांच करनी है या नहीं.
--[no]experimental_enforce_transitive_visibilitydefault: "false"-
अगर यह सही है, तो package()s को transitive_visibility एट्रिब्यूट सेट करने की अनुमति दें. इससे यह तय किया जा सकेगा कि कौनसे पैकेज उन पर निर्भर हो सकते हैं.
--experimental_one_version_enforcement=<off, warning or error>default: "OFF"-
इस विकल्प को चालू करने पर, यह लागू किया जाता है कि java_binary नियम में क्लासपाथ पर एक ही क्लास फ़ाइल का एक से ज़्यादा वर्शन नहीं हो सकता. इस नीति के उल्लंघन को लागू करने से, बिल्ड में गड़बड़ी हो सकती है या सिर्फ़ चेतावनियां मिल सकती हैं.
टैग:
loading_and_analysis --experimental_strict_java_deps=<off, warn, error, strict or default>default: "default"-
अगर यह सही है, तो यह जांच करता है कि Java टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
--[no]incompatible_check_testonly_for_output_filesdefault: "false"-
अगर यह सुविधा चालू है, तो ज़रूरी शर्तों को पूरा करने वाले उन टारगेट के लिए testonly की जांच करें जो आउटपुट फ़ाइलें हैं. इसके लिए, जनरेट करने वाले नियम का testonly देखें. यह सेटिंग, दिखने की स्थिति की जांच करने की सुविधा से मिलती-जुलती है.
--[no]incompatible_disable_native_android_rulesdefault: "false"-
यह नीति चालू होने पर, Android के नेटिव नियमों का सीधे तौर पर इस्तेमाल नहीं किया जा सकेगा. कृपया https://github.com/bazelbuild/rules_android पर जाकर, Starlark Android के नियमों का इस्तेमाल करें
--[no]incompatible_disable_native_apple_binary_ruledefault: "false"-
कोई कार्रवाई नहीं. इसे पुराने सिस्टम के साथ काम करने की सुविधा के लिए यहां रखा गया है.
--[no]one_version_enforcement_on_java_testsdefault: "true"-
इसे चालू करने पर और experimental_one_version_enforcement को NONE के अलावा किसी अन्य वैल्यू पर सेट करने पर, java_test टारगेट पर एक वर्शन लागू करें. इस फ़्लैग को बंद किया जा सकता है. इससे, इंक्रीमेंटल टेस्ट की परफ़ॉर्मेंस बेहतर होगी. हालांकि, इससे एक वर्शन के संभावित उल्लंघनों का पता नहीं चल पाएगा.
टैग:
loading_and_analysis --python_native_rules_allowlist=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
--incompatible_python_disallow_native_rules को लागू करते समय इस्तेमाल करने के लिए, अनुमति वाली सूची (package_group टारगेट).
टैग:
loading_and_analysis --[no]strict_filesetsdefault: "false"-
अगर यह विकल्प चालू है, तो पैकेज की सीमाओं को पार करने वाले फ़ाइलसेट को गड़बड़ियों के तौर पर रिपोर्ट किया जाता है.
--strict_proto_deps=<off, warn, error, strict or default>डिफ़ॉल्ट: "error"-
जब तक यह विकल्प बंद नहीं होता, तब तक यह जांच करता है कि proto_library टारगेट, सीधे तौर पर इस्तेमाल किए गए सभी टारगेट को डिपेंडेंसी के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --strict_public_imports=<off, warn, error, strict or default>default: "off"-
अगर यह विकल्प बंद नहीं है, तो यह जांच करता है कि proto_library टारगेट, 'import public' में इस्तेमाल किए गए सभी टारगेट को एक्सपोर्ट के तौर पर साफ़ तौर पर दिखाता है या नहीं.
टैग:
build_file_semantics,eagerness_to_exit,incompatible_change --[no]strict_system_includesdefault: "false"-
अगर यह विकल्प चालू है, तो सिस्टम में शामिल किए गए पाथ (-isystem) से मिले हेडर भी घोषित किए जाने चाहिए.
--target_environment=<a build target label>कई बार इस्तेमाल किया गया हो-
यह कुकी, इस बिल्ड के टारगेट एनवायरमेंट के बारे में बताती है. यह "एनवायरमेंट" नियम का लेबल रेफ़रंस होना चाहिए. अगर यह तय किया गया है, तो सभी टॉप-लेवल टारगेट इस एनवायरमेंट के साथ काम करने चाहिए.
टैग:
changes_inputs
- ऐसे विकल्प जो किसी बिल्ड के हस्ताक्षर करने के आउटपुट पर असर डालते हैं:
--apk_signing_method=<v1, v2, v1_v2 or v4>डिफ़ॉल्ट: "v1_v2"-
APK पर साइन करने के लिए इस्तेमाल किया जाने वाला तरीका
टैग:
action_command_lines,affects_outputs,loading_and_analysis --[no]device_debug_entitlementsdefault: "true"-
अगर यह नीति सेट है और कंपाइलेशन मोड 'opt' नहीं है, तो हस्ताक्षर करते समय, objc ऐप्लिकेशन में डीबग एनटाइटलमेंट शामिल होंगे.
टैग:
changes_inputs --ios_signing_cert_name=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
iOS पर हस्ताक्षर करने के लिए इस्तेमाल किए जाने वाले सर्टिफ़िकेट का नाम. इसे सेट न करने पर, प्रोविज़निंग प्रोफ़ाइल का इस्तेमाल किया जाएगा. यह सर्टिफ़िकेट की कीचेन आइडेंटिटी प्रेफ़रेंस या सर्टिफ़िकेट के कॉमन नेम का (सबस्ट्रिंग) हो सकता है. यह जानकारी, codesign के मैन पेज (SIGNING IDENTITIES) के मुताबिक है.
टैग:
action_command_lines
- इस विकल्प से, Starlark भाषा के सिमैंटिक या BUILD फ़ाइलों, .bzl फ़ाइलों या WORKSPACE फ़ाइलों के लिए उपलब्ध बिल्ड एपीआई पर असर पड़ता है.:
--[no]incompatible_disallow_sdk_frameworks_attributesdefault: "false"-
अगर सही है, तो objc_library और objc_import में sdk_frameworks और weak_sdk_frameworks एट्रिब्यूट को अनुमति न दें.
--[no]incompatible_objc_alwayslink_by_defaultdefault: "false"-
अगर सही है, तो objc_library और objc_import में alwayslink एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू को सही पर सेट करें.
--[no]incompatible_python_disallow_native_rulesdefault: "false"-
अगर यह विकल्प सही है, तो बिल्ट-इन py_* नियमों का इस्तेमाल करने पर गड़बड़ी होती है. इसके बजाय, rule_python नियमों का इस्तेमाल किया जाना चाहिए. ज़्यादा जानकारी और माइग्रेशन के निर्देशों के लिए, https://github.com/bazelbuild/bazel/issues/17773 पर जाएं.
- टेस्ट एनवायरमेंट या टेस्ट रनर के व्यवहार को कंट्रोल करने वाले विकल्प:
--[no]allow_analysis_failuresdefault: "false"-
अगर यह वैल्यू 'सही' पर सेट है, तो नियम के टारगेट का विश्लेषण पूरा न होने पर, टारगेट के लिए AnalysisFailureInfo का एक इंस्टेंस जनरेट होगा. इसमें गड़बड़ी की जानकारी शामिल होगी. इससे बिल्ड फ़ेल नहीं होगा.
--analysis_testing_deps_limit=<an integer>डिफ़ॉल्ट: "2000"-
यह for_analysis_testing कॉन्फ़िगरेशन ट्रांज़िशन वाले नियम एट्रिब्यूट के ज़रिए, ट्रांज़िटिव डिपेंडेंसी की ज़्यादा से ज़्यादा संख्या सेट करता है. इस सीमा से ज़्यादा नियम बनाने पर, गड़बड़ी का मैसेज दिखेगा.
टैग:
loading_and_analysis --[no]break_build_on_parallel_dex2oat_failuredefault: "false"-
अगर यह विकल्प सही है, तो dex2oat की कार्रवाई पूरी न होने पर, टेस्ट रनटाइम के दौरान dex2oat को एक्ज़ीक्यूट करने के बजाय, बिल्ड टूट जाएगा.
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>कई बार इस्तेमाल किया गया हो-
टेस्ट के लिए, संसाधनों की डिफ़ॉल्ट सीमा को बदलें. सही फ़ॉर्मैट <resource>=<value> है. अगर <value> के तौर पर कोई पॉज़िटिव संख्या दी जाती है, तो यह टेस्ट के सभी साइज़ के लिए डिफ़ॉल्ट संसाधनों को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार नंबर दिए जाते हैं, तो वे छोटे, मीडियम, बड़े, और बहुत बड़े टेस्ट साइज़ के लिए, संसाधन की रकम को बदल देंगे. वैल्यू, HOST_RAM/HOST_CPU भी हो सकती हैं. इसके बाद, [-|]<float> (उदाहरण के लिए, memory=HOST_RAM.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4) भी जोड़ा जा सकता है. इस फ़्लैग से तय किए गए डिफ़ॉल्ट टेस्ट संसाधनों को, टैग में बताए गए संसाधनों से बदल दिया जाता है.
--[no]experimental_android_use_parallel_dex2oatdefault: "false"-
android_test को तेज़ करने के लिए, dex2oat का इस्तेमाल करें.
टैग:
loading_and_analysis,host_machine_resource_optimizations,experimental --[no]ios_memleaksdefault: "false"-
ios_test टारगेट में मेमोरी लीक की जांच करने की सुविधा चालू करें.
टैग:
action_command_lines --ios_simulator_device=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर में iOS ऐप्लिकेशन चलाने के दौरान, सिम्युलेट किए जाने वाले डिवाइस का नाम. उदाहरण के लिए, 'iPhone 6'. सिम्युलेटर को जिस मशीन पर चलाया जाएगा उस पर 'xcrun simctl list devicetypes' कमांड चलाकर, डिवाइसों की सूची देखी जा सकती है.
टैग:
test_runner --ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>डिफ़ॉल्ट: ब्यौरा देखें-
सिम्युलेटर पर चलाने या टेस्ट करने के लिए, iOS का वर्शन. अगर नियम में कोई टारगेट डिवाइस तय किया गया है, तो ios_test नियमों के लिए इसे अनदेखा कर दिया जाता है.
टैग:
test_runner --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>कई बार इस्तेमाल किया गया हो-
इससे पता चलता है कि हर टेस्ट को कितनी बार चलाना है. अगर किसी वजह से, इनमें से कोई भी कोशिश पूरी नहीं होती है, तो पूरे टेस्ट को 'टेस्ट पूरा नहीं हुआ' के तौर पर मार्क किया जाता है. आम तौर पर, बताई गई वैल्यू सिर्फ़ एक पूर्णांक होती है. उदाहरण: --runs_per_test=3 से सभी टेस्ट तीन बार चलेंगे. वैकल्पिक सिंटैक्स: regex_filter@runs_per_test. यहां runs_per_test का मतलब पूर्णांक वैल्यू से है. वहीं, regex_filter का मतलब, शामिल और बाहर किए गए रेगुलर एक्सप्रेशन पैटर्न की सूची से है. --instrumentation_filter भी देखें. उदाहरण: --runs_per_test=//foo/.,-//foo/bar/.@3, //foo/ में मौजूद सभी टेस्ट को तीन बार चलाता है. हालांकि, foo/bar में मौजूद टेस्ट को तीन बार नहीं चलाता. इस विकल्प को कई बार पास किया जा सकता है. मिलते-जुलते सबसे हाल के तर्क को अहमियत दी जाती है. अगर कोई भी शर्त पूरी नहीं होती है, तो टेस्ट सिर्फ़ एक बार चलाया जाता है.
--test_env=<a 'name[=value]' assignment with an optional value part or the special syntax '=name' to unset a variable>कई बार इस्तेमाल किया गया हो-
यह विकल्प, टेस्ट रनर एनवायरमेंट में इंजेक्ट किए जाने वाले अतिरिक्त एनवायरमेंट वैरिएबल के बारे में बताता है. वैरिएबल को <code>name</code> के हिसाब से तय किया जा सकता है. इस मामले में, इसकी वैल्यू Bazel क्लाइंट एनवायरमेंट से पढ़ी जाएगी. इसके अलावा, इसे <code>name=value</code> पेयर के हिसाब से भी तय किया जा सकता है. पहले से सेट किए गए वैरिएबल को <code>=name</code> के ज़रिए अनसेट किया जा सकता है. इस विकल्प का इस्तेमाल कई बार किया जा सकता है, ताकि कई वैरिएबल तय किए जा सकें. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
टैग:
test_runner --test_timeout=<a single integer or comma-separated list of 4 integers>default: "-1"-
जांच के टाइम आउट के लिए, जांच के टाइम आउट की डिफ़ॉल्ट वैल्यू (सेकंड में) बदलें. अगर एक पॉज़िटिव पूर्णांक वैल्यू दी जाती है, तो यह सभी कैटगरी को बदल देगी. अगर कॉमा लगाकर अलग किए गए चार पूर्णांक दिए जाते हैं, तो वे छोटे, सामान्य, लंबे, और हमेशा के लिए (इसी क्रम में) टाइम आउट को बदल देंगे. दोनों फ़ॉर्म में, -1 वैल्यू से Blaze को उस कैटगरी के लिए डिफ़ॉल्ट टाइमआउट का इस्तेमाल करने के लिए कहा जाता है.
--[no]zip_undeclared_test_outputsdefault: "false"-
सही होने पर, टेस्ट के ऐसे आउटपुट को zip फ़ाइल में संग्रहित किया जाएगा जिनके बारे में जानकारी नहीं दी गई है.
टैग:
test_runner
- बिल्ड टाइम को ऑप्टिमाइज़ करने वाले विकल्प:
--[no]experimental_filter_library_jar_with_program_jardefault: "false"-
ProGuard ProgramJar को फ़िल्टर करें, ताकि LibraryJar में मौजूद सभी क्लास हट जाएं.
--[no]experimental_inmemory_dotd_filesdefault: "true"-
अगर यह सुविधा चालू है, तो C++ .d फ़ाइलें सीधे तौर पर रिमोट बिल्ड नोड से मेमोरी में पास की जाएंगी. इन्हें डिस्क में नहीं लिखा जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_inmemory_jdeps_filesdefault: "true"-
अगर यह सुविधा चालू है, तो Java कंपाइलेशन से जनरेट हुई डिपेंडेंसी (.jdeps) फ़ाइलों को डिस्क में सेव करने के बजाय, सीधे रिमोट बिल्ड नोड से मेमोरी में पास किया जाएगा.
टैग:
loading_and_analysis,execution,affects_outputs,experimental --[no]experimental_retain_test_configuration_across_testonlydefault: "false"-
इस विकल्प को चालू करने पर, --trim_test_configuration, testonly=1 के तौर पर मार्क किए गए नियमों के लिए टेस्ट कॉन्फ़िगरेशन को ट्रिम नहीं करेगा. इसका मकसद, कार्रवाई से जुड़ी समस्याओं को कम करना है. ऐसा तब होता है, जब टेस्ट नहीं किए गए नियम, cc_test नियमों पर निर्भर होते हैं. अगर --trim_test_configuration की वैल्यू 'गलत है' पर सेट है, तो इसका कोई असर नहीं होगा.
टैग:
loading_and_analysis,loses_incremental_state,experimental --[no]experimental_unsupported_and_brittle_include_scanningdefault: "false"-
इनपुट फ़ाइलों से #include लाइनें पार्स करके, इनपुट को C/C++ कंपाइलेशन तक सीमित करना है या नहीं. इससे परफ़ॉर्मेंस और इंक्रीमेंटैलिटी को बेहतर बनाया जा सकता है. इसके लिए, कंपाइलेशन इनपुट ट्री का साइज़ कम किया जाता है. हालांकि, इससे बिल्ड भी टूट सकते हैं, क्योंकि include स्कैनर, C प्रीप्रोसेसर सिमैंटिक्स को पूरी तरह से लागू नहीं करता है. खास तौर पर, यह डाइनैमिक #include डायरेक्टिव को नहीं समझता है और प्रीप्रोसेसर की शर्त वाली लॉजिक को अनदेखा करता है. इसे अपने जोखिम पर इस्तेमाल करें. इस फ़्लैग से जुड़ी सभी समस्याएं बंद कर दी जाएंगी.
टैग:
loading_and_analysis,execution,changes_inputs,experimental --[no]incremental_dexingdefault: "true"-
यह हर जार फ़ाइल के लिए, अलग से डेक्सिंग का ज़्यादातर काम करता है.
टैग:
affects_outputs,loading_and_analysis,loses_incremental_state --[no]objc_use_dotd_pruningdefault: "true"-
अगर इसे सेट किया जाता है, तो clang से जनरेट हुई .d फ़ाइलों का इस्तेमाल, objc कंपाइल में पास किए गए इनपुट के सेट को कम करने के लिए किया जाएगा.
--[no]process_headers_in_dependenciesdefault: "false"-
//a:a टारगेट बनाते समय, उन सभी टारगेट में हेडर प्रोसेस करें जिन पर //a:a निर्भर करता है. ऐसा तब करें, जब टूलचेन के लिए हेडर प्रोसेसिंग चालू हो.
टैग:
execution --[no]trim_test_configurationdefault: "true"-
यह सुविधा चालू करने पर, टेस्ट से जुड़े विकल्प, बिल्ड के टॉप लेवल के नीचे से हट जाएंगे. इस फ़्लैग के चालू होने पर, टेस्ट को नॉन-टेस्ट नियमों की डिपेंडेंसी के तौर पर नहीं बनाया जा सकता. हालांकि, टेस्ट से जुड़े विकल्पों में बदलाव करने से, नॉन-टेस्ट नियमों का फिर से विश्लेषण नहीं किया जाएगा.
- लॉगिंग की जानकारी, फ़ॉर्मैट या जगह पर असर डालने वाले विकल्प:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>default: "-.*"-
टूलचेन रिज़ॉल्यूशन के दौरान डीबग की जानकारी प्रिंट करें. इस फ़्लैग में रेगुलर एक्सप्रेशन का इस्तेमाल किया जाता है. इसकी जांच टूलचेन टाइप और खास टारगेट के हिसाब से की जाती है, ताकि यह पता लगाया जा सके कि किसे डीबग करना है. एक से ज़्यादा रेगुलर एक्सप्रेशन को कॉमा लगाकर अलग किया जा सकता है. इसके बाद, हर रेगुलर एक्सप्रेशन की अलग-अलग जांच की जाती है. ध्यान दें: इस फ़्लैग का आउटपुट बहुत जटिल होता है. इसलिए, यह सिर्फ़ टूलचेन की समस्या हल करने वाले विशेषज्ञों के लिए काम का हो सकता है.
टैग:
terminal_output --[no]verbose_visibility_errorsdefault: "false"-
अगर यह सुविधा चालू है, तो दिखने से जुड़ी गड़बड़ियों में गड़बड़ी की अतिरिक्त जानकारी शामिल होती है.
- Bazel कमांड के लिए, सामान्य इनपुट को तय करने या बदलने वाले विकल्प. ये विकल्प, अन्य कैटगरी में नहीं आते.:
--flag_alias=<a 'name=value' flag alias>कई बार इस्तेमाल किया गया हो-
यह Starlark फ़्लैग के लिए, छोटा नाम सेट करता है. यह "<key>=<value>" के तौर पर एक की-वैल्यू पेयर को आर्ग्युमेंट के तौर पर लेता है.
--[no]incompatible_default_to_explicit_init_pydefault: "false"-
इस फ़्लैग से डिफ़ॉल्ट व्यवहार बदल जाता है, ताकि Python टारगेट की रनफ़ाइल में init.py फ़ाइलें अपने-आप न बन पाएं. खास तौर पर, जब किसी py_binary या py_test टारगेट के लिए legacy_create_init को "auto" (डिफ़ॉल्ट) पर सेट किया जाता है, तो इस फ़्लैग के सेट होने पर ही इसे फ़ॉल्स के तौर पर माना जाता है. ज़्यादा जानकारी के लिए, https://github.com/bazelbuild/bazel/issues/10076 पर जाएं.
- अन्य विकल्प, जिन्हें किसी और कैटगरी में नहीं रखा गया है.:
--[no]cache_test_results[-t] default: "auto"-
'auto' पर सेट होने पर, Bazel किसी टेस्ट को सिर्फ़ तब फिर से चलाता है, जब: (1) Bazel को टेस्ट या उसकी डिपेंडेंसी में बदलावों का पता चलता है, (2) टेस्ट को बाहरी के तौर पर मार्क किया गया है, (3) --runs_per_test के साथ कई टेस्ट रन का अनुरोध किया गया था या(4) टेस्ट पहले फ़ेल हो गया था. अगर इसे 'हां' पर सेट किया जाता है, तो Bazel, बाहरी के तौर पर मार्क किए गए टेस्ट को छोड़कर, सभी टेस्ट के नतीजों को कैश मेमोरी में सेव करता है. 'नहीं' पर सेट करने पर, Bazel किसी भी टेस्ट के नतीजे को कैश मेमोरी में सेव नहीं करता है.
--[no]experimental_cancel_concurrent_testsdefault: "never"-
अगर 'on_failed' या 'on_passed' है, तो Blaze उस नतीजे के साथ पहली बार चलने वाले टेस्ट को रद्द कर देगा. यह विकल्प, सिर्फ़ --runs_per_test_detects_flakes के साथ काम करता है.
--[no]experimental_fetch_all_coverage_outputsdefault: "false"-
अगर यह विकल्प सही है, तो कवरेज रन के दौरान Bazel, हर टेस्ट के लिए कवरेज डेटा डायरेक्ट्री को फ़ेच करता है.
--[no]experimental_generate_llvm_lcovdefault: "false"-
अगर यह विकल्प 'सही है' पर सेट है, तो Clang के लिए कवरेज, LCOV रिपोर्ट जनरेट करेगा.
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback>default: "bazel"-
यह Java कंपाइलेशन के लिए, कम किए गए क्लासपाथ को चालू करता है.
--[no]experimental_run_android_lint_on_java_rulesdefault: "false"-
java_* सोर्स की पुष्टि करनी है या नहीं.
टैग:
affects_outputs,experimental --[no]explicit_java_test_depsdefault: "false"-
java_test में JUnit या Hamcrest के लिए, TestRunner के deps से गलती से पाने के बजाय, साफ़ तौर पर डिपेंडेंसी तय करें. फ़िलहाल, यह सिर्फ़ Bazel के लिए काम करता है.
--host_java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह Java लॉन्चर है. इसका इस्तेमाल उन टूल के लिए किया जाता है जिन्हें बिल्ड के दौरान एक्ज़ीक्यूट किया जाता है.
--host_javacopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान लागू होने वाले टूल बनाने के लिए, javac को पास किए जाने वाले अतिरिक्त विकल्प.
--host_jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
बिल्ड के दौरान एक्ज़ीक्यूट किए जाने वाले टूल बनाते समय, Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--[no]incompatible_check_sharding_supportdefault: "true"-
अगर यह विकल्प सही है, तो Bazel, शेयर किए गए टेस्ट को तब फ़ेल कर देगा, जब टेस्ट रनर यह नहीं बताता कि वह TEST_SHARD_STATUS_FILE में दिए गए पाथ पर फ़ाइल को ऐक्सेस करके, शेयर करने की सुविधा के साथ काम करता है. अगर यह वैल्यू गलत है, तो शार्डिंग की सुविधा के साथ काम न करने वाला टेस्ट रनर, हर शार्ड में सभी टेस्ट चलाएगा.
टैग:
incompatible_change --[no]incompatible_exclusive_test_sandboxeddefault: "true"-
अगर यह विकल्प चुना जाता है, तो एक्सक्लूसिव टेस्ट, सैंडबॉक्स की गई रणनीति के साथ चलेंगे. 'local' टैग जोड़कर, स्थानीय तौर पर सिर्फ़ एक टेस्ट रन करें
टैग:
incompatible_change --[no]incompatible_strict_action_envdefault: "false"-
अगर यह विकल्प सही है, तो Bazel ऐसे एनवायरमेंट का इस्तेमाल करता है जिसमें PATH के लिए स्टैटिक वैल्यू होती है. साथ ही, यह LD_LIBRARY_PATH को इनहेरिट नहीं करता. अगर आपको क्लाइंट से कुछ एनवायरमेंट वैरिएबल इनहेरिट करने हैं, तो --action_env=ENV_VARIABLE का इस्तेमाल करें. हालांकि, ध्यान दें कि ऐसा करने से, अलग-अलग उपयोगकर्ताओं के लिए कैश मेमोरी का इस्तेमाल नहीं किया जा सकेगा. ऐसा तब होगा, जब शेयर की गई कैश मेमोरी का इस्तेमाल किया जा रहा हो.
--j2objc_translation_flags=<comma-separated list of options>कई बार इस्तेमाल किया गया हो-
J2ObjC टूल को पास करने के लिए अन्य विकल्प.
--java_debug-
इस विकल्प का इस्तेमाल करने पर, Java टेस्ट की Java वर्चुअल मशीन, JDWP के साथ काम करने वाले डीबगर (जैसे कि jdb) से कनेक्शन मिलने का इंतज़ार करती है. इसके बाद ही, टेस्ट शुरू होता है. इसका मतलब है कि -test_output=streamed.
बढ़कर:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results --[no]java_depsdefault: "true"-
हर Java टारगेट के लिए, डिपेंडेंसी की जानकारी जनरेट करता है. फ़िलहाल, यह कंपाइल-टाइम क्लासपाथ के लिए है.
--[no]java_header_compilationdefault: "true"-
सोर्स से सीधे तौर पर ijars कंपाइल करें.
--java_language_version=<a string>default: ""-
Java भाषा का वर्शन
--java_launcher=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
Java बाइनरी बनाते समय इस्तेमाल किया जाने वाला Java लॉन्चर. अगर इस फ़्लैग को खाली स्ट्रिंग पर सेट किया जाता है, तो JDK लॉन्चर का इस्तेमाल किया जाता है. "लॉन्चर" एट्रिब्यूट, इस फ़्लैग को बदल देता है.
--java_runtime_version=<a string>डिफ़ॉल्ट: "local_jdk"-
Java रनटाइम का वर्शन
--javacopt=<a string>कई बार इस्तेमाल किया गया हो-
javac को पास करने के लिए अन्य विकल्प.
--jvmopt=<a string>कई बार इस्तेमाल किया गया हो-
Java VM को पास करने के लिए अतिरिक्त विकल्प. ये विकल्प, हर java_binary टारगेट के वीएम स्टार्टअप विकल्पों में जोड़ दिए जाएंगे.
--legacy_main_dex_list_generator=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह एक बाइनरी तय करता है, जिसका इस्तेमाल उन क्लास की सूची जनरेट करने के लिए किया जाता है जिन्हें लेगसी मल्टीडेक्स को कंपाइल करते समय, मुख्य डेक्स में होना चाहिए.
--optimizing_dexer=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बिना शार्डिंग के डेक्सिंग करने के लिए, बाइनरी तय करता है.
--plugin=<a build target label>कई बार इस्तेमाल किया गया हो-
बिल्ड में इस्तेमाल किए जाने वाले प्लगिन. फ़िलहाल, यह java_plugin के साथ काम करता है.
--proguard_top=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह बताता है कि Java बाइनरी बनाते समय, कोड हटाने के लिए ProGuard के किस वर्शन का इस्तेमाल करना है.
--proto_compiler=<a build target label>default: "@bazel_tools//tools/proto:protoc"-
प्रोटो-कंपाइलर का लेबल.
--[no]proto_profiledefault: "true"-
प्रोटो कंपाइलर को profile_path पास करना है या नहीं.
--proto_profile_path=<a build target label>डिफ़ॉल्ट: ब्यौरा देखें-
यह प्रोफ़ाइल, proto कंपाइलर को profile_path के तौर पर पास की जाती है. अगर इसे सेट नहीं किया गया है, लेकिन --proto_profile सही है (डिफ़ॉल्ट रूप से), तो --fdo_optimize से पाथ का अनुमान लगाता है.
--proto_toolchain_for_cc=<a build target label>default: "@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें C++ प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_j2objc=<a build target label>default: "@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें j2objc प्रोटो को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_java=<a build target label>default: "@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें Java protos को कंपाइल करने का तरीका बताया गया है
--proto_toolchain_for_javalite=<a build target label>default: "@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() का लेबल, जिसमें JavaLite protos को कंपाइल करने का तरीका बताया गया है
--protocopt=<a string>कई बार इस्तेमाल किया गया हो-
प्रोटोबफ़ कंपाइलर को पास करने के लिए अतिरिक्त विकल्प.
टैग:
affects_outputs --[no]runs_per_test_detects_flakesdefault: "false"-
अगर यह विकल्प चुना जाता है, तो जिस भी शार्ड में कम से कम एक रन/कोशिश पास होती है और कम से कम एक रन/कोशिश फ़ेल होती है उसे FLAKY स्टेटस मिलता है.
--shell_executable=<a path>डिफ़ॉल्ट: ब्यौरा देखें-
Bazel के इस्तेमाल के लिए, शेल एक्ज़ीक्यूटेबल का ऐब्सलूट पाथ. अगर इसे सेट नहीं किया जाता है, लेकिन BAZEL_SH एनवायरमेंट वैरिएबल को Bazel के पहले इनवोकेशन (जो Bazel सर्वर शुरू करता है) पर सेट किया जाता है, तो Bazel इसका इस्तेमाल करता है. अगर इनमें से कोई भी सेट नहीं है, तो Bazel, ऑपरेटिंग सिस्टम के हिसाब से हार्ड-कोड किए गए डिफ़ॉल्ट पाथ का इस्तेमाल करता है. जैसे, Windows: c:/msys64/usr/bin/bash.exe, FreeBSD: /usr/local/bin/bash, और अन्य सभी: /bin/bash. ध्यान दें कि bash के साथ काम न करने वाले शेल का इस्तेमाल करने से, जनरेट की गई बाइनरी फ़ाइलों को बनाने या उन्हें चलाने में समस्याएं आ सकती हैं.
टैग:
loading_and_analysis --test_arg=<a string>कई बार इस्तेमाल किया गया हो-
इस विकल्प की मदद से, टेस्ट एक्ज़ीक्यूटेबल को पास किए जाने वाले अतिरिक्त विकल्प और आर्ग्युमेंट तय किए जाते हैं. कई आर्ग्युमेंट तय करने के लिए, इसका इस्तेमाल कई बार किया जा सकता है. अगर एक से ज़्यादा टेस्ट किए जाते हैं, तो हर टेस्ट को एक जैसे आर्ग्युमेंट मिलेंगे. इसका इस्तेमाल सिर्फ़ 'bazel test' कमांड करती है.
--test_filter=<a string>डिफ़ॉल्ट: ब्यौरा देखें-
यह टेस्ट फ़्रेमवर्क को फ़ॉरवर्ड किए जाने वाले फ़िल्टर के बारे में बताता है. इस कुकी का इस्तेमाल, टेस्ट को सीमित करने के लिए किया जाता है. ध्यान दें कि इससे यह तय नहीं होता कि कौनसे टारगेट बनाए जाएंगे.
--test_result_expiration=<an integer>default: "-1"-
इस विकल्प को बंद कर दिया गया है और इससे कोई असर नहीं पड़ता.
--[no]test_runner_fail_fastdefault: "false"-
यह विकल्प, टेस्ट रनर को तुरंत फ़ॉरवर्ड करता है. पहली गड़बड़ी होने पर, टेस्ट रनर को टेस्ट बंद कर देना चाहिए.
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>default: "explicit"-
टेस्ट शार्डिंग के लिए रणनीति तय करें: 'shard_count' BUILD एट्रिब्यूट मौजूद होने पर ही शार्डिंग का इस्तेमाल करने के लिए, 'explicit' का इस्तेमाल करें. 'disabled' को कभी भी टेस्ट शार्डिंग का इस्तेमाल न करने के लिए सेट करें. 'forced=k' का इस्तेमाल, 'shard_count' BUILD एट्रिब्यूट के बावजूद, टेस्टिंग के लिए 'k' शार्ड लागू करने के लिए किया जाता है.
--tool_java_language_version=<a string>default: ""-
बिल्ड के दौरान ज़रूरी टूल को चलाने के लिए इस्तेमाल किया गया Java भाषा का वर्शन
--tool_java_runtime_version=<a string>default: "remotejdk_11"-
बिल्ड के दौरान टूल को एक्ज़ीक्यूट करने के लिए इस्तेमाल किया गया Java रनटाइम वर्शन
--[no]use_ijarsdefault: "true"-
अगर यह विकल्प चालू है, तो Java कंपाइलेशन के लिए इंटरफ़ेस जार का इस्तेमाल किया जाता है. इससे इन्क्रीमेंटल कंपाइलेशन तेज़ी से होगा, लेकिन गड़बड़ी के मैसेज अलग-अलग हो सकते हैं.
वर्शन के विकल्प
- ऐसे विकल्प जिनसे उपयोगकर्ता, आउटपुट को कॉन्फ़िगर कर सकता है. इससे आउटपुट की वैल्यू पर असर पड़ता है, न कि उसके मौजूद होने पर:
--[no]gnu_formatdefault: "false"-
अगर सेट है, तो GNU के मानकों में बताए गए नियमों का इस्तेमाल करके, stdout में वर्शन लिखें.
टैग:
affects_outputs,execution
विकल्प के असर वाले टैग
unknown |
इस विकल्प का असर क्या होगा, इसकी जानकारी नहीं है या इसके बारे में दस्तावेज़ में नहीं बताया गया है. |
no_op |
इस विकल्प से कोई फ़र्क़ नहीं पड़ता. |
loses_incremental_state |
इस विकल्प की वैल्यू बदलने से, इंक्रीमेंटल स्टेट में काफ़ी नुकसान हो सकता है. इससे बिल्ड की प्रोसेस धीमी हो जाती है. सर्वर को फिर से शुरू करने या डिपेंडेंसी ग्राफ़ के बड़े हिस्से को अमान्य करने की वजह से, स्थिति मिट सकती है. |
changes_inputs |
इस विकल्प से, उन इनपुट में बदलाव होता है जिन्हें Bazel, बिल्ड के लिए इस्तेमाल करता है. जैसे, फ़ाइल सिस्टम से जुड़ी पाबंदियां, रिपॉज़िटरी के वर्शन या अन्य विकल्प. |
affects_outputs |
इस विकल्प से Bazel के आउटपुट पर असर पड़ता है. यह टैग जान-बूझकर ब्रॉड रखा गया है. इसमें ट्रांज़िटिव इफ़ेक्ट शामिल हो सकते हैं. साथ ही, यह नहीं बताता कि यह किस तरह के आउटपुट पर असर डालता है. |
build_file_semantics |
इस विकल्प से BUILD या .bzl फ़ाइलों के सिमैंटिक पर असर पड़ता है. |
bazel_internal_configuration |
इस विकल्प से, Bazel के इंटरनल सिस्टम की सेटिंग पर असर पड़ता है. इस टैग का मतलब यह नहीं है कि बिल्ड आर्टफ़ैक्ट पर असर पड़ा है. |
loading_and_analysis |
इस विकल्प से, डिपेंडेंसी लोड करने और उनका विश्लेषण करने के साथ-साथ डिपेंडेंसी ग्राफ़ बनाने पर असर पड़ता है. |
execution |
इस विकल्प से, एक्ज़ीक्यूशन फ़ेज़ पर असर पड़ता है. जैसे, सैंडबॉक्सिंग या रिमोट एक्ज़ीक्यूशन से जुड़े विकल्प. |
host_machine_resource_optimizations |
इस विकल्प से एक ऑप्टिमाइज़ेशन ट्रिगर होता है. यह ऑप्टिमाइज़ेशन, मशीन के हिसाब से अलग-अलग हो सकता है. साथ ही, इस बात की कोई गारंटी नहीं है कि यह सभी मशीनों पर काम करेगा. ऑप्टिमाइज़ेशन में, परफ़ॉर्मेंस के अन्य पहलुओं के साथ समझौता करना पड़ सकता है. जैसे, मेमोरी या सीपीयू की लागत. |
eagerness_to_exit |
इस विकल्प से यह तय होता है कि Bazel, किसी गड़बड़ी के बाद कितनी जल्दी बंद हो जाएगा. इसमें यह विकल्प होता है कि गड़बड़ी के बावजूद काम जारी रखा जाए या इनवॉकेशन को खत्म कर दिया जाए. |
bazel_monitoring |
इस विकल्प का इस्तेमाल, Bazel के व्यवहार और परफ़ॉर्मेंस पर नज़र रखने के लिए किया जाता है. |
terminal_output |
इस विकल्प से, Bazel के टर्मिनल आउटपुट पर असर पड़ता है. |
action_command_lines |
इस विकल्प से, एक या उससे ज़्यादा बिल्ड ऐक्शन के कमांड लाइन आर्ग्युमेंट बदल जाते हैं. |
test_runner |
इस विकल्प से, बिल्ड के टेस्ट रनर एनवायरमेंट को बदला जाता है. |
विकल्प मेटाडेटा टैग
experimental |
इस विकल्प से, एक्सपेरिमेंट के तौर पर उपलब्ध सुविधा चालू हो जाती है. हालांकि, इस बात की कोई गारंटी नहीं है कि यह सुविधा काम करेगी. |
incompatible_change |
इस विकल्प से, एपीआई में ऐसा बदलाव होता है जो पहले से मौजूद एपीआई के साथ काम नहीं करता. इस विकल्प का इस्तेमाल करके, यह जांच करें कि माइग्रेशन के लिए आपका सेटअप तैयार है या नहीं. इसके अलावा, नई सुविधा का ऐक्सेस पहले पाएं |
deprecated |
यह विकल्प अब उपलब्ध नहीं है. ऐसा हो सकता है कि यह सुविधा काम न करती हो या जानकारी देने के लिए किसी दूसरे तरीके का इस्तेमाल किया जा रहा हो. |
non_configurable |
इस विकल्प को ट्रांज़िशन में बदला नहीं जा सकता. साथ ही, इसका इस्तेमाल select() स्टेटमेंट में नहीं किया जा सकता. |