# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  # Board name used for paving and amber updates.
  board_name = ""

  # Human readable board description corresponding to the board name.
  board_description = ""

  # Configs that are added when targeting this board.
  board_configs = []

  # A list of driver package labels to include in the 'base' package set. Used
  # by the board definition rather than the product definition.
  board_driver_package_labels = []

  # A list of package labels to include in the 'base' package set. Used by the
  # board definition rather than the product definition.
  board_package_labels = []

  # A list of package labels to include in the recovery package set. Used by the
  # board definition rather than the product definition.
  board_recovery_package_labels = []

  # A list of binary labels to include in the ZBI.
  board_bootfs_labels = []

  # A list of binary host tool labels to also build.
  board_host_labels = []

  # List of kernel command line arguments to bake into the zedboot image that are
  # required by this board. See also zedboot_cmdline_args in
  # //build/images/zedboot/BUILD.gn
  board_zedboot_cmdline_args = []

  # A list of binary labels to include in the zedboot ZBI.
  board_zedboot_bootfs_labels = []

  # A list of binary labels to include in the recovery ZBI.
  board_recovery_bootfs_labels = []

  # A list of fshost options to add to the fshost config.
  board_fshost_config = {
  }

  # A list of fshost options to add to the fshost config in the zedboot image.
  board_zedboot_fshost_config = {
  }

  # A list of binary labels to include in the system_image package.
  board_system_image_deps = []

  # Core realm shards specific to this board. See //src/sys/core for more
  # context.
  board_core_realm_shards = []

  # A list of paths to the unlock credentials file necessary to unlock this
  # board's fastboot protocol.
  board_fastboot_unlock_credentials = []

  # List of paths to board-specific tools to include in the build output.
  #
  # Most development tools can just be used in-tree and do not need to be
  # included here. This arg is only meant for tools which may need to be
  # distributed along with the build files, for example tools for flashing
  # from SoC recovery mode.
  #
  # Assets included in this way are included best-effort only and do not form
  # any kind of stable contract for users of the archive.
  board_tools = []

  # Whether or not the board pulls in the system-update-configurator component.
  board_supports_update_configurator = false

  # Whether or not the board supports emulator/physical devices.
  # This is used to determine if product bundle metadata should generate a
  # physical/virtual device spec or both.
  board_is_emu = false
  board_is_phys = true
}
