# 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 binaries to include in the system image.
  dev_system_image_deps = []

  # 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 = []
}
