# Copyright 2018 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/fidl/fidl.gni")

fidl("fuchsia.modular") {
  sdk_category = "partner"

  sources = [
    "agent.fidl",
    "agent_controller.fidl",
    "annotation.fidl",
    "component_context.fidl",
    "intent.fidl",
    "lifecycle.fidl",
    "module_context.fidl",
    "module_data.fidl",
    "module_manifest.fidl",
    "module_state.fidl",
    "overview.fidl",
    "puppet_master.fidl",
    "session_restart_controller.fidl",
    "session_shell.fidl",
    "story_command.fidl",
    "story_controller.fidl",
    "story_info.fidl",
    "story_options.fidl",
    "story_provider.fidl",
    "story_shell.fidl",
    "story_shell_factory.fidl",
    "story_state.fidl",
    "surface.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.mem",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/fidl/fuchsia.ui.views",
    "//zircon/vdso/zx",
  ]
}
