1# Copyright 2017 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//mojo/public/tools/bindings/mojom.gni")
6
7# This needs to be conditionally-compiled since the typemaps are
8# unconditionally-included from //mojo/public/tools/bindings/mojom.gni. The
9# inclusion is done through read_file(), which does not respect the global
10# defines for GN, so it itself cannot use the "is_chromeos" variable.
11if (is_chromeos) {
12  mojom("mojom") {
13    sources = [
14      "accessibility_helper.mojom",
15      "app.mojom",
16      "app_permissions.mojom",
17      "appfuse.mojom",
18      "arc_bridge.mojom",
19      "audio.mojom",
20      "auth.mojom",
21      "backup_settings.mojom",
22      "bluetooth.mojom",
23      "boot_phase_monitor.mojom",
24      "camera.mojom",
25      "cast_receiver.mojom",
26      "cert_store.mojom",
27      "clipboard.mojom",
28      "crash_collector.mojom",
29      "disk_quota.mojom",
30      "enterprise_reporting.mojom",
31      "file_system.mojom",
32      "ime.mojom",
33      "input_method_manager.mojom",
34      "intent_common.mojom",
35      "intent_helper.mojom",
36      "keymaster.mojom",
37      "kiosk.mojom",
38      "lock_screen.mojom",
39      "media_session.mojom",
40      "metrics.mojom",
41      "midis.mojom",
42      "net.mojom",
43      "obb_mounter.mojom",
44      "oemcrypto.mojom",
45      "oemcrypto_daemon.mojom",
46      "pip.mojom",
47      "policy.mojom",
48      "power.mojom",
49      "print.mojom",
50      "print_common.mojom",
51      "print_spooler.mojom",
52      "process.mojom",
53      "property.mojom",
54      "rotation_lock.mojom",
55      "scale_factor.mojom",
56      "screen_capture.mojom",
57      "storage_manager.mojom",
58      "timer.mojom",
59      "tracing.mojom",
60      "tts.mojom",
61      "usb_host.mojom",
62      "voice_interaction_arc_home.mojom",
63      "voice_interaction_framework.mojom",
64      "volume_mounter.mojom",
65      "wake_lock.mojom",
66      "wallpaper.mojom",
67    ]
68
69    public_deps = [
70      ":camera_intent",
71      ":media",
72      ":notifications",
73      "//components/chromeos_camera/common:camera_app_helper",
74      "//media/capture/video/chromeos/mojom:cros_camera",
75      "//mojo/public/mojom/base",
76      "//services/device/public/mojom:usb",
77      "//services/media_session/public/mojom",
78      "//services/resource_coordinator/public/mojom",
79      "//ui/accessibility/mojom",
80      "//ui/gfx/geometry/mojom",
81      "//url/mojom:url_mojom_gurl",
82    ]
83  }
84
85  mojom("camera_intent") {
86    sources = [ "camera_intent.mojom" ]
87  }
88
89  mojom("notifications") {
90    sources = [
91      "bitmap.mojom",
92      "notifications.mojom",
93    ]
94
95    deps = [ ":media" ]  # for gfx.mojom
96  }
97
98  # Media related mojo interfaces. These are used by
99  # //services/viz/public/mojom. We have this separate mojom target to
100  # avoid pulling in unnecessary interfaces.
101  mojom("media") {
102    sources = [
103      "gfx.mojom",
104      "protected_buffer_manager.mojom",
105      "video.mojom",
106      "video_common.mojom",
107      "video_decode_accelerator.mojom",
108      "video_encode_accelerator.mojom",
109      "video_protected_buffer_allocator.mojom",
110    ]
111
112    public_deps = [ "//ui/gfx/geometry/mojom" ]
113  }
114
115  source_set("mojom_traits") {
116    sources = [ "ime_mojom_traits.h" ]
117
118    deps = [
119      ":mojom",
120      "//ui/base/ime:text_input_types",
121    ]
122  }
123
124  source_set("unit_tests") {
125    testonly = true
126    sources = [ "video_accelerator_mojom_traits_unittest.cc" ]
127
128    deps = [
129      ":mojom",
130      "//media",
131      "//mojo/public/cpp/test_support:test_utils",
132      "//testing/gtest",
133    ]
134  }
135}
136