chromium/components/spellcheck/common/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("//components/spellcheck/spellcheck_build_features.gni")
import("//mojo/public/tools/bindings/mojom.gni")

source_set("common") {
  sources = [
    "spellcheck_common.cc",
    "spellcheck_common.h",
    "spellcheck_features.cc",
    "spellcheck_features.h",
  ]

  public_deps = [
    ":interfaces",
    ":spellcheck_result",
    "//components/spellcheck:buildflags",
  ]

  deps = [
    "//base:i18n",
    "//ipc",
    "//third_party/icu",
  ]
}

# This is separated out because it is used by both the mojo interfaces below
# (see spellcheck.typemap) and by "common" above.
source_set("spellcheck_result") {
  sources = [
    "spellcheck_result.cc",
    "spellcheck_result.h",
  ]

  deps = [ "//base" ]
}

mojom("interfaces") {
  sources = [ "spellcheck.mojom" ]

  if (has_spellcheck_panel) {
    sources += [ "spellcheck_panel.mojom" ]
  }

  public_deps = [ "//mojo/public/mojom/base" ]

  enabled_features = []
  if (use_browser_spellchecker) {
    enabled_features += [ "USE_BROWSER_SPELLCHECKER" ]
  }

  if (use_renderer_spellchecker) {
    enabled_features += [ "USE_RENDERER_SPELLCHECKER" ]
  }

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "spellcheck.mojom.Decoration"
          cpp = "::SpellCheckResult::Decoration"
        },
        {
          mojom = "spellcheck.mojom.SpellCheckResult"
          cpp = "::SpellCheckResult"
        },
      ]
      traits_headers = [ "spellcheck_mojom_traits.h" ]
      traits_sources = [ "spellcheck_mojom_traits.cc" ]
      traits_public_deps = [ "//components/spellcheck:buildflags" ]
    },
  ]
}