chromium/ui/gfx/geometry/mojom/BUILD.gn

# Copyright 2016 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")

# This target does NOT depend on skia. One can depend on this target to avoid
# picking up a dependency on skia.
mojom("mojom") {
  generate_java = true
  sources = [ "geometry.mojom" ]

  check_includes_blink = false

  shared_cpp_typemap = {
    types = [
      {
        mojom = "gfx.mojom.Point"
        cpp = "::gfx::Point"
      },
      {
        mojom = "gfx.mojom.PointF"
        cpp = "::gfx::PointF"
      },
      {
        mojom = "gfx.mojom.Point3F"
        cpp = "::gfx::Point3F"
      },
      {
        mojom = "gfx.mojom.Size"
        cpp = "::gfx::Size"
      },
      {
        mojom = "gfx.mojom.SizeF"
        cpp = "::gfx::SizeF"
      },
      {
        mojom = "gfx.mojom.Rect"
        cpp = "::gfx::Rect"
      },
      {
        mojom = "gfx.mojom.RectF"
        cpp = "::gfx::RectF"
      },
      {
        mojom = "gfx.mojom.Insets"
        cpp = "::gfx::Insets"
      },
      {
        mojom = "gfx.mojom.InsetsF"
        cpp = "::gfx::InsetsF"
      },
      {
        mojom = "gfx.mojom.QuadF"
        cpp = "::gfx::QuadF"
      },
      {
        mojom = "gfx.mojom.Quaternion"
        cpp = "::gfx::Quaternion"
      },
      {
        mojom = "gfx.mojom.Vector2d"
        cpp = "::gfx::Vector2d"
      },
      {
        mojom = "gfx.mojom.Vector2dF"
        cpp = "::gfx::Vector2dF"
      },
      {
        mojom = "gfx.mojom.Vector3dF"
        cpp = "::gfx::Vector3dF"
      },
    ]

    traits_headers = [ "geometry_mojom_traits.h" ]
    traits_public_deps = [ ":mojom_traits" ]
  }
  cpp_typemaps = [ shared_cpp_typemap ]
  blink_cpp_typemaps = [ shared_cpp_typemap ]
  webui_module_path = "chrome://resources/mojo/ui/gfx/geometry/mojom"
  generate_legacy_js_bindings = true
}

mojom("test_interfaces") {
  sources = [ "geometry_traits_test_service.mojom" ]

  public_deps = [ ":mojom" ]
}

source_set("unit_test") {
  testonly = true

  sources = [ "geometry_mojom_traits_unittest.cc" ]

  deps = [
    ":test_interfaces",
    "//base",
    "//base/test:test_support",
    "//mojo/public/cpp/bindings",
    "//testing/gtest",
    "//ui/gfx/geometry",
  ]
}

source_set("mojom_traits") {
  sources = [ "geometry_mojom_traits.h" ]
  public_deps = [
    ":mojom_shared",
    "//ui/gfx/geometry",
  ]
}