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

# These arguments can only be set by boards, and are used for size checking.

declare_args() {
  # Maximum allowable contents for the /blob in a release mode build.
  # False means no limit.
  # contents_size refers to contents stored within the filesystem (regardless
  # of how they are stored).
  max_blob_contents_size = false

  # Maximum allowable contents for the /blob in a release mode build for
  # both slot A and slot B of the system.
  # False means no limit.
  blobfs_capacity = false
}
