# Copyright 2016 The Chromium 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("//mojo/public/tools/bindings/mojom.gni")

mojom("mojo") {
  sources = [
    "notification.mojom",
  ]

  public_deps = [
    "//mojo/common:common_custom_types",
    "//skia/public/interfaces:interfaces",
    "//url/mojo:url_mojom_gurl",
  ]
}

mojom("test_interfaces") {
  testonly = true
  sources = [
    "traits_test_service.mojom",
  ]

  public_deps = [
    ":mojo",
  ]
}

source_set("struct_traits") {
  sources = [
    "notification_struct_traits.cc",
    "notification_struct_traits.h",
  ]

  public_deps = [
    ":mojo_shared_cpp_sources",
    "//base",
    "//mojo/common:struct_traits",
    "//mojo/public/cpp/bindings",
    "//skia/public/interfaces",
    "//ui/gfx",
    "//ui/message_center",
    "//url/mojo:url_mojom_gurl",
  ]
}
