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

# This target does NOT depend on skia. One can depend on this target to avoid
# picking up a dependency on skia.
component("mojo") {
  output_name = "mojo_ime_lib"

  public_deps = [
    "//ui/base/ime",
  ]
  deps = [
    ":interfaces",
    "//base",
    "//ui/platform_window",
  ]

  defines = [ "MOJO_IME_IMPLEMENTATION" ]

  sources = [
    "ime_type_converters.cc",
    "ime_type_converters.h",
    "mojo_ime_export.h",
  ]
}

mojom("interfaces") {
  sources = [
    "text_input_state.mojom",
  ]

  use_new_wrapper_types = false
}
