# Copyright 2017 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 needs to be conditionally-compiled since the typemaps are
# unconditionally-included from //mojo/public/tools/bindings/mojom.gni. The
# inclusion is done through read_file(), which does not respect the global
# defines for GN, so it itself cannot use the "is_chromeos" variable.
if (is_chromeos) {
  mojom("common") {
    sources = [
      "accessibility_helper.mojom",
      "app.mojom",
      "appfuse.mojom",
      "arc_bridge.mojom",
      "audio.mojom",
      "auth.mojom",
      "backup_settings.mojom",
      "bluetooth.mojom",
      "boot_phase_monitor.mojom",
      "cast_receiver.mojom",
      "cert_store.mojom",
      "clipboard.mojom",
      "crash_collector.mojom",
      "disk_quota.mojom",
      "enterprise_reporting.mojom",
      "file_system.mojom",
      "ime.mojom",
      "input_method_manager.mojom",
      "intent_helper.mojom",
      "kiosk.mojom",
      "lock_screen.mojom",
      "metrics.mojom",
      "midis.mojom",
      "net.mojom",
      "obb_mounter.mojom",
      "oemcrypto.mojom",
      "oemcrypto_daemon.mojom",
      "policy.mojom",
      "power.mojom",
      "print.mojom",
      "process.mojom",
      "rotation_lock.mojom",
      "scale_factor.mojom",
      "screen_capture.mojom",
      "storage_manager.mojom",
      "timer.mojom",
      "tracing.mojom",
      "tts.mojom",
      "usb_host.mojom",
      "voice_interaction_arc_home.mojom",
      "voice_interaction_framework.mojom",
      "volume_mounter.mojom",
      "wake_lock.mojom",
      "wallpaper.mojom",
    ]

    public_deps = [
      ":media",
      ":notifications",
      "//device/usb/public/mojom",
      "//mojo/public/mojom/base",
      "//ui/gfx/geometry/mojo",
    ]
  }

  mojom("notifications") {
    sources = [
      "bitmap.mojom",
      "notifications.mojom",
    ]

    deps = [
      ":media",  # for gfx.mojom
    ]
  }
}

# Media related mojo interfaces. There are used by
# //services/ui/public/interfaces. We have this separate mojom target to avoid
# pulling in unnecessary interfaces,
mojom("media") {
  sources = [
    "gfx.mojom",
    "protected_buffer_manager.mojom",
    "video.mojom",
    "video_common.mojom",
    "video_decode_accelerator.mojom",
    "video_encode_accelerator.mojom",
    "video_protected_buffer_allocator.mojom",
  ]

  public_deps = [
    "//ui/gfx/geometry/mojo",
  ]
}
