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

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


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

fidl_library("fuchsia.settings") {
  library_name = "settings"
  namespace = "fuchsia"
  public_deps = [
    "../fuchsia.intl",
    "../fuchsia.media",
    "../fuchsia.ui.types",
  ]
  sources = [
    "accessibility.fidl",
    "audio.fidl",
    "device.fidl",
    "display.fidl",
    "do_not_disturb.fidl",
    "intl.fidl",
    "night_mode.fidl",
    "privacy.fidl",
    "settings.fidl",
    "setup.fidl",
    "system.fidl",
  ]
}

group("all"){
  deps = [
    ":fuchsia.settings",
  ]
}
