版本核心

指令列選項

核心指令列選項可以間接 (做為平台實作詳細資料) 新增至產品組件,也可以由開發人員直接新增,用於本機偵錯和測試。

在主機板或產品檔案中指定選項

產品和開發板只能透過產品組裝間接新增核心指令列選項:

在當地指定選項

如要進行本機開發,可以指定要附加至核心指令列的字串清單,做為組件開發人員覆寫的一部分。

這需要兩個步驟:

1. 定義組件覆寫目標

//local/BUILD.gn//local/* 下的其他 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. 「主要」組件以外的產品組件

對於「主要」產品組件以外的組件 (例如 zedboot 或復原組件),需要稍微詳細的機制。這項作業會使用以萬用字元為基礎的模式比對完成:

fx set ... --assembly-override '//build/images/zedboot/*=//local:custom_kernel_args'

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)。