rule()
和 aspect()
的 attrs
字典引數值。成員
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- 輸出內容
- output_list
- string
- string_dict
- string_list
- string_list_dict
bool
Attribute attr.bool(configurable=unbound, default=False, doc=None, mandatory=False)建立布林屬性的結構定義。對應的
ctx.attr
屬性會是 bool
類型。
參數
參數 | 說明 |
---|---|
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
bool;預設值為 False 。如果在將規則例項化時,沒有指定此屬性的值,系統會使用預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
int
Attribute attr.int(configurable=unbound, default=0, doc=None, mandatory=False, values=[])建立整數屬性的結構定義。這個值必須落在帶正負號的 32 位元範圍內。對應的
ctx.attr
屬性會是 int
類型。
參數
參數 | 說明 |
---|---|
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
int;預設值為 0 。如果沒有在規則化時為這項屬性指定任何值,則會使用預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
values
|
int 的 sequence;預設值為 [] 該屬性的可用值清單。如果指定任何其他值,就會發生錯誤。 |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)為整數清單屬性建立結構定義。每個元素都必須位於已簽署的 32 位元範圍內。
參數
參數 | 說明 |
---|---|
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
int 的 sequence;預設為 [] 如果在規則例項化時沒有指定此屬性的值,系統會使用預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
標籤
Attribute attr.label(configurable=unbound, default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], allow_rules=None, cfg=None, aspects=[])
為標籤屬性建立結構定義。這是依附元件屬性。
此屬性包含不重複的 Label
值。若提供字串取代 Label
,將會使用標籤建構函式轉換該字串。標籤路徑的相對部分 (包括 (可能重新命名) 的存放區) 已針對例項化目標的套件進行解析。
在分析期間 (在規則的實作函式中),從 ctx.attr
擷取屬性值時,標籤會由對應的 Target
取代。這可讓您存取目前目標依附元件的提供者。
除了一般的來源檔案以外,這種屬性經常用於參照工具,例如編譯器。這類工具被視為依附元件,就像來源檔案一樣。如要避免在使用者每次在 BUILD 檔案中使用規則時指定工具的標籤,您可以將標準工具的標籤寫成硬式編碼,做為這項屬性的 default
值。假如您也想禁止使用者覆寫這項預設值,可以為屬性命名 (名稱開頭為底線)。詳情請參閱「規則」頁面。
參數
參數 | 說明 |
---|---|
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
Label;或是 string;LateBoundDefault;或 NativeComputedDefault;或 function; 或 None ;如果未指定這項屬性的值,則預設值為 None 。如果未指定這項屬性的值,則會使用預設值。使用字串或 Label 函式指定預設值,例如 attr.label(default = "//a:b") 。
|
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
executable
|
bool;預設值為 False 如果必須執行依附元件,則為 True。這表示標籤必須參照執行檔,或輸出執行檔的規則。使用 ctx.executable.<attribute_name> 存取標籤。 |
allow_files
|
字串的 bool; 或 sequence;預設為 None 是否允許 File 目標。None 可以是 True 、False (預設),或是允許的副檔名清單 (例如 [".cc", ".cpp"] )。 |
allow_single_file
|
預設值為 None 這類似於 allow_files ,限制標籤必須對應單一檔案。你可以透過 ctx.file.<attribute_name> 使用這項服務。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
skip_validations
|
bool;預設值為 False 如果設為 true,此屬性遞移依附元件的驗證動作將不會執行。這只是暫時的緩解措施,日後我們會移除。 |
providers
|
sequence;預設值為 [] 凡是出現在這項屬性中的依附元件,都必須提供提供者。 這個引數的格式是提供者清單,由 |
allow_rules
|
字串的 sequence;或是 None ;預設值為 None 允許使用哪些規則目標 (類別名稱)。這項功能已淘汰 (僅保留相容性),請改用供應商。 |
cfg
|
預設值為 None 屬性的「設定」。可以是 "exec" ,表示專為 execution platform 建構的依附元件;或是 "target" ,表示為 target platform 建構的依附元件。常見差異範例是建構行動應用程式,其中 target platform 為 Android 或 iOS ,而 execution platform 為 Linux 、macOS 或 Windows 。如果 executable 為 True,就必須使用這個參數,以防在目標設定中意外建構主機工具。"target" 沒有語意效果,因此請勿在 executable 為 False 時設定此屬性,除非它真的有助於釐清您的意圖。
|
aspects
|
Aspect 的 sequence;預設為 [] 應套用至這項屬性指定的依附元件或依附元件。 |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
為保存字典的屬性建立結構定義,其中的鍵是標籤,值是字串。這是依附元件屬性。
此屬性包含不重複的 Label
值。若提供字串取代 Label
,將會使用標籤建構函式轉換該字串。標籤路徑的相對部分 (包括 (可能重新命名) 的存放區) 已針對例項化目標的套件進行解析。
在分析期間 (在規則的實作函式中),從 ctx.attr
擷取屬性值時,標籤會由對應的 Target
取代。這可讓您存取目前目標依附元件的提供者。
參數
參數 | 說明 |
---|---|
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
dict; 或 function;預設值為 {} 在規則例項化時,如果沒有為此屬性指定值,會使用的預設值。使用字串或 Label 函式指定預設值,例如 attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) 。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
allow_files
|
字串的 bool; 或 sequence;預設為 None 是否允許 File 目標。None 可以是 True 、False (預設),或是允許的副檔名清單 (例如 [".cc", ".cpp"] )。 |
allow_rules
|
字串的 sequence;或是 None ;預設值為 None 允許使用哪些規則目標 (類別名稱)。這項功能已淘汰 (僅保留相容性),請改用供應商。 |
providers
|
sequence;預設值為 [] 凡是出現在這項屬性中的依附元件,都必須提供提供者。 這個引數的格式是提供者清單,由 |
flags
|
字串的 sequence;預設值為 [] ,將會移除。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
cfg
|
預設值為 None 屬性的「設定」。可以是 "exec" ,表示專為 execution platform 建構的依附元件;或是 "target" ,表示為 target platform 建構的依附元件。常見差異範例是建構行動應用程式,其中 target platform 為 Android 或 iOS ,而 execution platform 為 Linux 、macOS 或 Windows 。 |
aspects
|
Aspect 的 sequence;預設為 [] 應套用至這項屬性指定的依附元件或依附元件。 |
label_list
Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])
為標籤清單屬性建立結構定義。這是依附元件屬性。對應的 ctx.attr
屬性會是 Target
的 list 類型。
此屬性包含不重複的 Label
值。若提供字串取代 Label
,將會使用標籤建構函式轉換該字串。標籤路徑的相對部分 (包括 (可能重新命名) 的存放區) 已針對例項化目標的套件進行解析。
在分析期間 (在規則的實作函式中),從 ctx.attr
擷取屬性值時,標籤會由對應的 Target
取代。這可讓您存取目前目標依附元件的提供者。
參數
參數 | 說明 |
---|---|
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
標籤的 sequence;或函式;預設值為 [] 。如果在規則例項化時沒有指定此屬性的值,則可使用預設值。使用字串或 Label 函式指定預設值,例如 attr.label_list(default = ["//a:b", "//a:c"]) 。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
allow_files
|
字串的 bool; 或 sequence;預設為 None 是否允許 File 目標。None 可以是 True 、False (預設),或是允許的副檔名清單 (例如 [".cc", ".cpp"] )。 |
allow_rules
|
字串的 sequence;或是 None ;預設值為 None 允許使用哪些規則目標 (類別名稱)。這項功能已淘汰 (僅保留相容性),請改用供應商。 |
providers
|
sequence;預設值為 [] 凡是出現在這項屬性中的依附元件,都必須提供提供者。 這個引數的格式是提供者清單,由 |
flags
|
字串的 sequence;預設值為 [] ,將會移除。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
skip_validations
|
bool;預設值為 False 如果設為 true,此屬性遞移依附元件的驗證動作將不會執行。這只是暫時的緩解措施,日後我們會移除。 |
cfg
|
預設值為 None 屬性的「設定」。可以是 "exec" ,表示專為 execution platform 建構的依附元件;或是 "target" ,表示為 target platform 建構的依附元件。常見差異範例是建構行動應用程式,其中 target platform 為 Android 或 iOS ,而 execution platform 為 Linux 、macOS 或 Windows 。 |
aspects
|
Aspect 的 sequence;預設為 [] 應套用至這項屬性指定的依附元件或依附元件。 |
output
Attribute attr.output(doc=None, mandatory=False)
為輸出 (標籤) 屬性建立結構定義。
此屬性包含不重複的 Label
值。若提供字串取代 Label
,將會使用標籤建構函式轉換該字串。標籤路徑的相對部分 (包括 (可能重新命名) 的存放區) 已針對例項化目標的套件進行解析。
在分析期間,您可以使用 ctx.outputs
擷取對應的 File
。
參數
參數 | 說明 |
---|---|
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)為輸出清單屬性建立結構定義。
此屬性包含不重複的 Label
值。若提供字串取代 Label
,將會使用標籤建構函式轉換該字串。標籤路徑的相對部分 (包括 (可能重新命名) 的存放區) 已針對例項化目標的套件進行解析。
在分析期間,您可以使用 ctx.outputs
擷取對應的 File
。
參數
參數 | 說明 |
---|---|
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
字串
Attribute attr.string(configurable=unbound, default='', doc=None, mandatory=False, values=[])為 string 屬性建立結構定義。
參數
參數 | 說明 |
---|---|
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
string; 或 NativeComputedDefault;預設值為 '' 。如果在將規則例項化時,未指定這項屬性的值,要使用的預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
values
|
字串的 sequence;預設為 [] 屬性的可用值清單。如果指定任何其他值,就會發生錯誤。 |
string_dict
Attribute attr.string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)為保存字典的屬性建立結構定義,其中的鍵和值皆為字串。
參數
參數 | 說明 |
---|---|
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
dict;預設值為 {} 在規則例項化時,如果沒有指定此屬性的值,系統會使用預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)為字串清單屬性建立結構定義。
參數
參數 | 說明 |
---|---|
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
string 的 sequence;或 NativeComputedDefault;預設為 [] 如果沒有為規則執行個體指定任何值,要使用的預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)為保存字典的屬性建立結構定義,其中的鍵是字串,值是字串清單。
參數
參數 | 說明 |
---|---|
allow_empty
|
bool;預設值為 True 如果屬性可以留空,則值為 True。 |
configurable
|
bool; 或 unbound;預設值為 unbound 如果為 true,這個屬性支援 select()s |
default
|
dict;預設值為 {} 在規則例項化時,如果沒有指定此屬性的值,系統會使用預設值。 |
doc
|
string; 或 None ;預設為 None 可透過說明文件產生工具擷取的屬性說明。 |
mandatory
|
bool;預設值為 False 如果設為「true」,就必須明確指定該值 (即使該值具有 default )。 |