chromium/ash/webui/projector_app/public/mojom/BUILD.gn

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

import("//chrome/common/features.gni")
import("//mojo/public/tools/bindings/mojom.gni")

assert(is_chromeos_ash, "Projector is ChromeOS only")

cur_dir = rebase_path(".", "//")

mojom("projector_mojo_bindings") {
  sources = [ "projector_types.mojom" ]
  webui_module_path = "/$cur_dir"

  # Projector app is still using JS + Closure Compiler.
  generate_webui_js_bindings = true
  public_deps = [ "//mojo/public/mojom/base" ]
  cpp_typemaps = [
    {
      types = [
        {
          mojom = "ash.projector.mojom.NewScreencastPreconditionState"
          cpp = "::ash::NewScreencastPreconditionState"
        },

        {
          mojom = "ash.projector.mojom.NewScreencastPreconditionReason"
          cpp = "::ash::NewScreencastPreconditionReason"
        },

        {
          mojom = "ash.projector.mojom.NewScreencastPrecondition"
          cpp = "::ash::NewScreencastPrecondition"
        },
      ]

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