This directory is used to store GN arg mapping for Chrome OS boards.
Files in this directory are populated by running gclient sync
with specific arguments set in the .gclient file. Specifically:
target_os = ["chromeos"]
"custom_vars"
parameter of the chromium/src.git solution must include the parameter: "cros_boards": "{BOARD_NAMES}"
where {BOARD_NAMES}
is a colon-separated list of boards you'd like to checkout.cros_boards_with_qemu_images
var rather than the cros_boards
var.A typical .gclient file is a sibling of the src/ directory, and might look like this:
solutions = [ { "url": "https://chromium.googlesource.com/chromium/src.git", "managed": False, "name": "src", "custom_deps": {}, "custom_vars" : { "checkout_src_internal": True, "cros_boards": "eve:kevin", # If a QEMU-bootable image is desired for any board, move it from # the previous var to the following: "cros_boards_with_qemu_images": "amd64-generic", }, }, ] target_os = ["chromeos"]
To use these files in a build, simply add the following line to your GN args:
import("//build/args/chromeos/${some_board}.gni")
That will produce a Chrome OS build of Chrome very similar to what is shipped for that device. You can also supply additional args or even overwrite ones supplied in the .gni file after the import()
line. For example, the following args will produce a debug build of Chrome for board=eve using goma:
import("//build/args/chromeos/eve.gni") is_debug = true use_goma = true goma_dir = "/path/to/goma/"
TODO(bpastene): Make ‘cros_boards’ a first class citizen in gclient and replace it with ‘target_boards’ instead.