chromium/components/media_router/common/mojom/BUILD.gn

# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//mojo/public/tools/bindings/mojom.gni")

mojom("logger") {
  sources = [ "logger.mojom" ]
  public_deps = [ "//mojo/public/mojom/base" ]
}

mojom("debugger") {
  sources = [ "debugger.mojom" ]
  public_deps = [ "//mojo/public/mojom/base" ]
}

mojom("media_controller") {
  sources = [
    "media_controller.mojom",
    "media_status.mojom",
  ]

  public_deps = [
    "//mojo/public/mojom/base",
    "//ui/gfx/geometry/mojom",
    "//url/mojom:url_mojom_gurl",
  ]
}

mojom("media_route_provider_id") {
  sources = [ "media_route_provider_id.mojom" ]
}

mojom("media_router") {
  sources = [ "media_router.mojom" ]

  public_deps = [
    ":debugger",
    ":logger",
    ":media_controller",
    ":media_route_provider_id",
    ":route_request_result_code",
    "//components/mirroring/mojom:common",
    "//media/mojo/mojom:remoting",
    "//mojo/public/mojom/base",
    "//services/network/public/mojom:mojom_ip_address",
    "//third_party/blink/public/mojom:mojom_platform",
    "//url/mojom:url_mojom_gurl",
    "//url/mojom:url_mojom_origin",
  ]

  if (is_component_build) {
    overridden_deps = [ "//third_party/blink/public/mojom:mojom_platform" ]
    component_deps = [ "//third_party/blink/public/common" ]
  }

  cpp_only = true
  disable_variants = true

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "media_router.mojom.Issue"
          cpp = "::media_router::IssueInfo"
        },
        {
          mojom = "media_router.mojom.Issue.ActionType"
          cpp = "::media_router::IssueInfo::Action"
        },
        {
          mojom = "media_router.mojom.Issue.Severity"
          cpp = "::media_router::IssueInfo::Severity"
        },
        {
          mojom = "media_router.mojom.MediaRoute"
          cpp = "::media_router::MediaRoute"
        },
        {
          mojom = "media_router.mojom.MediaRouteProvider.Id"
          cpp = "::media_router::mojom::MediaRouteProviderId"
        },
        {
          mojom = "media_router.mojom.MediaSink"
          cpp = "::media_router::MediaSinkInternal"
        },
      ]
      traits_headers = [ "media_router_mojom_traits.h" ]
      traits_sources = [ "media_router_mojom_traits.cc" ]

      traits_public_deps = [
        "//components/media_router/common",
        "//components/media_router/common/providers/cast/channel:capability",
        "//net",
      ]
      traits_deps = [
        "//services/network/public/cpp",
        "//url/mojom:url_mojom_gurl",
      ]
    },
  ]
}

mojom("media_router_test_interfaces") {
  sources = [ "media_router_traits_test_service.mojom" ]

  public_deps = [ ":media_router" ]

  cpp_only = true
  disable_variants = true
}

mojom("route_request_result_code") {
  sources = [ "route_request_result_code.mojom" ]

  webui_module_path = "/"
  generate_legacy_js_bindings = enable_mojom_fuzzer
}