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

import("//build/assembly/bootfs_files_for_assembly.gni")
import("//build/component/component_id_index.gni")
import("//build/dist/resource.gni")

resource("config") {
  visibility = [ ":*" ]
  sources = [ "config/core.profiles" ]
  outputs = [ "config/profiles/core.profiles" ]
}

bootfs_files_for_assembly("bootfs") {
  deps = [ ":config" ]
}

# This index contains component ID entries for components whose source-code
# lives in this repository (fuchsia.git).
# See: https://fuchsia.dev/fuchsia-src/development/components/component_id_index
component_id_index("core_component_id_index") {
  source = "core_component_id_index.json5"
}

# If this target is included in the build, all components are allowed to use
# isolated-persistent-storage, even if they are not in the component ID index.
component_id_index("component_id_index_no_restrict_storage") {
  source = "component_id_index_no_restrict_storage.json5"
}
