# Copyright 2020 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.

# A collection of GN arguments that developers can manually set to alter the
# behavior of the build.

declare_args() {
  # List of labels for targets that should be built but not included in any
  # build outputs that are part of the build API (e.g. zbi's, package servers).
  dev_build_only_deps = []

  # List of labels for objects to include in the ZBI.
  dev_bootfs_labels = []

  # List of binary labels to include in the zedboot ZBI.
  dev_zedboot_bootfs_labels = []

  # List of binary labels to include in the recovery ZBI.
  dev_recovery_bootfs_labels = []

  # List of strings to append to the kernel command line.
  dev_kernel_cmdline = []

  # List of strings to append to the zedboot kernel command line.
  dev_zedboot_kernel_cmdline = []

  # List of strings to append to the recovery kernel command line.
  dev_recovery_kernel_cmdline = []
}
