指令列選項
您可以間接 (做為平台實作細節) 或直接由開發人員將核心指令列選項新增至產品組合,以便進行本機偵錯和測試。
在電路板或產品檔案中指定選項
產品和電路板只能透過產品組合間接新增核心指令列選項: - 做為組合輸入套件的一部分。- 在組合中作為平台設定規則的一部分。
在本機指定選項
針對本機開發作業,您可以指定應附加至核心指令列的字串清單,做為組合開發人員覆寫值的一部分。
這需要兩個步驟:
1. 定義組態覆寫目標
在 //local/*
下的 //local/BUILD.gn
或其他 BUILD.gn
檔案中定義組合程式覆寫目標。
import("//build/assembly/developer_overrides.gni")
assembly_developer_overrides("custom_kernel_args") {
kernel = {
command_line_args = [ "foo" ]
}
}
這項操作只需為每組覆寫值執行一次,之後即可在建構中重複使用任何產品組合或任何 outdir。
接下來,請告訴 GN 要使用哪個開發人員覆寫目標來製作產品。
2a. 請將該目標與「主要」產品組合一起使用
針對「主」產品組合 (fx set
指令中指定的產品組合),您可以使用以下指令,告知 GN 使用上述定義的產品組合目標:
fx set ... --assembly-override //local:custom_kernel_args
或者,您也可以執行 fx args
,然後新增或修改一行內容,藉此修改現有的 args.gn
檔案:
product_assembly_overrides_label = "//local:custom_kernel_args"
2b. 除了「main」組件以外的產品組件
除了「主要」產品組合外,其他組合都需要稍微冗長的機制,例如 zedboot 或復原組合。這項操作會使用以萬用字元為基礎的模式比對:
fx set ... --assembly-override '//build/images/zedboot/*=//local:custom_kernel_args'
或 ```posix-terminal fx set ... --assembly-override '//products/microfuchsia/*=//local:custom_kernel_args'
處理多個產品組合時,直接在 args.gn
中指定這項資訊會更方便:
product_assembly_overrides = [
{
# core products:
assembly = "//build/images/fuchsia/*"
overrides = "//local:custom_kernel_args"
},
{
assembly = "//build/images/zedboot/*"
overrides = "//local:zedboot_overrides"
},
{
assembly = "//products/microfuchsia/*"
overrides = "//local:zedboot_overrides"
}
]
請注意,使用 //vendor/*
電路板時,產品組裝目標也會位於 //vendor
存放區 (例如 //vendor/<foo>/products/minimal
)。