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