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

# Please see the README.md file for details.

import("//build/config.gni")

# Groups main runtime configurations.
group("config") {
  deps = [ ":sysmgr" ]
}

# Sysmgr configuration for products that require `intl_services` to be available.
config_data("sysmgr") {
  for_pkg = "sysmgr"
  outputs = [ "intl_services.config" ]
  sources = [ "sysmgr_config.json" ]
}

# Groups the "small" configurations.  Never include both ":config" and ":small"
# at the same time.
group("small") {
  deps = [ ":sysmgr_small" ]
}

# Sysmgr configuration where intl coexists with a11y
config_data("sysmgr_small") {
  for_pkg = "sysmgr"
  outputs = [ "intl_services.config" ]
  sources = [ "sysmgr_config_small.json" ]
}
