chromium/ash/public/mojom/BUILD.gn

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

import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")

assert(is_chromeos_ash)

mojom("mojom") {
  disable_variants = true

  sources = [
    "assistant_volume_control.mojom",
    "tray_action.mojom",
  ]

  public_deps = [
    ":accelerator_actions",
    ":accelerator_configuration",
    ":accelerator_info",
    ":accelerator_keys",
    ":input_device_settings",
    "//chromeos/ash/components/proximity_auth/public/mojom",
    "//components/account_id/mojom",
    "//components/sync/mojom",
    "//mojo/public/mojom/base",
    "//services/preferences/public/mojom",
    "//skia/public/mojom",
    "//ui/gfx/geometry/mojom",
    "//ui/gfx/image/mojom",
    "//ui/gfx/range/mojom",
    "//url/mojom:url_mojom_gurl",
  ]

  component_output_prefix = "ash_public_interfaces"
  export_class_attribute = "ASH_PUBLIC_EXPORT"
  export_define = "ASH_PUBLIC_IMPLEMENTATION=1"
  export_header = "ash/public/cpp/ash_public_export.h"
}

mojom("hid_preserving_bluetooth_state_controller") {
  sources = [ "hid_preserving_bluetooth_state_controller.mojom" ]
  public_deps = [ "//mojo/public/mojom/base" ]
  webui_module_path = "chrome://resources/ash/common/"
}

# This is a separate target so that downstream WebUI targets can take
# advantage of JS module Mojom files, without having to generate WebUI Mojom
# files for all dependencies (and their dependencies) in //ash/public/mojom.
mojom("accelerator_info") {
  disable_variants = true
  generate_legacy_js_bindings = true

  webui_module_path = "/"

  sources = [ "accelerator_info.mojom" ]

  public_deps = [
    "//mojo/public/mojom/base",
    "//ui/base/accelerators/mojom",
  ]
}

# This is a separate target so that downstream WebUI targets can take
# advantage of JS module Mojom files, without having to generate WebUI Mojom
# files for all dependencies (and their dependencies) in //ash/public/mojom.
mojom("input_device_settings") {
  disable_variants = true
  webui_module_path = "/"
  generate_legacy_js_bindings = true

  sources = [ "input_device_settings.mojom" ]

  public_deps = [
    "//mojo/public/mojom/base",
    "//ui/events/ash/mojom",
  ]

  deps = [
    ":accelerator_actions",
    ":accelerator_keys",
  ]
}

# This is a separate target so that downstream WebUI targets can take
# advantage of JS module Mojom files, without having to generate WebUI Mojom
# files for all dependencies (and their dependencies) in //ash/public/mojom.
mojom("accelerator_configuration") {
  disable_variants = true
  generate_legacy_js_bindings = true

  webui_module_path = "/"

  sources = [ "accelerator_configuration.mojom" ]

  public_deps = []
}

# This is a separate target so that downstream WebUI targets can take
# advantage of JS module Mojom files, without having to generate WebUI Mojom
# files for all dependencies (and their dependencies) in //ash/public/mojom.
mojom("accelerator_keys") {
  disable_variants = true
  generate_legacy_js_bindings = true

  webui_module_path = "/"

  sources = [ "accelerator_keys.mojom" ]

  public_deps = []

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "ash.mojom.VKey"
          cpp = "::ui::KeyboardCode"
        },
      ]

      traits_headers = [
        "//ui/events/keycodes/keyboard_codes_posix.h",
        "accelerator_keys_mojom_traits.h",
      ]
      traits_sources = [ "accelerator_keys_mojom_traits.cc" ]
    },
  ]
}

# This is a separate target so that downstream WebUI targets can take
# advantage of JS module Mojom files, without having to generate WebUI Mojom
# files for all dependencies (and their dependencies) in //ash/public/mojom.
mojom("accelerator_actions") {
  disable_variants = true
  generate_legacy_js_bindings = true

  webui_module_path = "/"

  sources = [ "accelerator_actions.mojom" ]

  public_deps = []

  cpp_typemaps = [
    {
      types = [
        {
          mojom = "ash.mojom.AcceleratorAction"
          cpp = "::ash::AcceleratorAction"
        },
      ]

      traits_headers = [ "accelerator_actions_mojom_traits.h" ]
      traits_sources = [ "accelerator_actions_mojom_traits.cc" ]
      traits_public_deps = [ "//ash/public/cpp:accelerator_actions" ]
    },
  ]
}