config

這是頂層模組,用於建立設定轉換和建構設定描述元,說明規則是哪種建構設定 (如有)。

例如:透過設定 rule() 函式的 build_setting 參數,將下列規則標示為建構設定。具體來說,這是 int 類型的建構設定,也是 flag,表示這個建構設定可在指令列上呼叫。

  my_rule = rule(
    implementation = _impl,
    build_setting = config.int(flag = True),
    ...
  )

成員

bool

BuildSetting config.bool(*, flag=False)

布林型別的建構設定

參數

參數 說明
flag bool;預設為 False
這個建構設定是否可在指令列上呼叫。

exec

ExecTransitionFactory config.exec(exec_group=None)

建立執行作業轉換。

參數

參數 說明
exec_group 字串;或 None; 預設為 None
這個轉換作業將使用的執行群組執行平台名稱。如未提供,這項 exec 轉換會使用目標的預設執行平台。

int

BuildSetting config.int(*, flag=False)

整數類型的建構設定

參數

參數 說明
flag bool;預設為 False
這個建構設定是否可在指令列上呼叫。

transition config.none()

建立會移除所有設定的轉場效果,取消設定所有旗標。適用於僅含資料的依附元件,其中不含需要建構的程式碼,但應只分析一次。

字串

BuildSetting config.string(*, flag=False, allow_multiple=False)

字串型別的建構設定

參數

參數 說明
flag bool;預設為 False
這個建構設定是否可在指令列上呼叫。
allow_multiple bool; 預設為 False
已淘汰,請改用 string_list 設定和 repeatable = True。如果已設定,則允許在指令列上多次設定這個標記。在轉場效果和建構設定實作函式中存取的旗標值會是字串清單。系統會保留插入順序和重複值。如要採取不同做法,可以在建構設定實作函式中後續處理這份清單。

string_list

BuildSetting config.string_list(*, flag=False, repeatable=False)

字串清單類型的建構設定。在指令列中,使用以半形逗號分隔的值傳遞清單,例如 --//my/setting=foo,bar

參數

參數 說明
flag bool;預設為 False
這個建構設定是否可在指令列上呼叫。
repeatable bool; 預設值為 False
如果設定這個標記,指令列上允許多次設定這個標記,且每個值都會視為單一字串,加入清單值中,而非以半形逗號分隔的值。系統會保留插入順序和重複值。如要採取不同做法,可以在建構設定實作函式中後續處理這份清單。

string_set

BuildSetting config.string_set(*, flag=False, repeatable=False)

字串集類型的建構設定。這項設定的值會是 Starlark 中的字串集合。在指令列上,使用半形逗號分隔值 (例如 --//my/setting=foo,bar) 傳遞集合。

string_list 不同,元素的順序並不重要,且只會保留每個元素的單一例項。如果不需要這些屬性,建議使用這個方法,而非 string_list,因為這樣可以避免不必要的設定分叉,進而提升建構效能。

參數

參數 說明
flag bool;預設為 False
這個建構設定是否可在指令列上呼叫。
repeatable bool; 預設為 False
如果設定這個旗標,指令列上可以多次設定這個旗標,且每個值都會視為單一字串,加入設定值中,而不是以半形逗號分隔的值。系統只會保留重複值的單一例項,插入順序無關緊要。

目標

transition config.target()

建立目標轉換。這是無作業轉換,適用於需要轉換物件,但不想實際變更任何內容的情況。等同於 attr.label() 中的 cfg = "target"