1# Copyright 2014 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
5interfaces_bindings_gen_dir = "$root_gen_dir/mojo/public/interfaces/bindings"
6
7component("bindings") {
8  sources = [
9    # Normally, targets should depend on the source_sets generated by mojom
10    # targets. However, the generated source_sets use portions of the bindings
11    # library. In order to avoid linker warnings about locally-defined imports
12    # in Windows components build, this target depends on the generated C++
13    # files directly so that the EXPORT macro defintions match.
14    "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared-internal.h",
15    "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared.cc",
16    "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared.h",
17    "$interfaces_bindings_gen_dir/interface_control_messages.mojom.cc",
18    "$interfaces_bindings_gen_dir/interface_control_messages.mojom.h",
19    "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared-internal.h",
20    "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared.cc",
21    "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared.h",
22    "$interfaces_bindings_gen_dir/pipe_control_messages.mojom.cc",
23    "$interfaces_bindings_gen_dir/pipe_control_messages.mojom.h",
24    "array_data_view.h",
25    "array_traits.h",
26    "array_traits_carray.h",
27    "array_traits_stl.h",
28    "associated_binding.h",
29    "associated_binding_set.h",
30    "associated_group.h",
31    "associated_group_controller.h",
32    "associated_interface_ptr.h",
33    "associated_interface_ptr_info.h",
34    "associated_interface_request.h",
35    "binding.h",
36    "binding_set.h",
37    "bindings_export.h",
38    "clone_traits.h",
39    "connection_error_callback.h",
40    "connector.h",
41    "disconnect_reason.h",
42    "filter_chain.h",
43    "interface_data_view.h",
44    "interface_endpoint_client.h",
45    "interface_endpoint_controller.h",
46    "interface_id.h",
47    "interface_ptr.h",
48    "interface_ptr_info.h",
49    "interface_ptr_set.h",
50    "interface_request.h",
51    "lib/array_internal.cc",
52    "lib/array_internal.h",
53    "lib/array_serialization.h",
54    "lib/associated_binding.cc",
55    "lib/associated_group.cc",
56    "lib/associated_group_controller.cc",
57    "lib/associated_interface_ptr_state.h",
58    "lib/binding_state.cc",
59    "lib/binding_state.h",
60    "lib/bindings_internal.h",
61    "lib/buffer.h",
62    "lib/connector.cc",
63    "lib/control_message_handler.cc",
64    "lib/control_message_handler.h",
65    "lib/control_message_proxy.cc",
66    "lib/control_message_proxy.h",
67    "lib/equals_traits.h",
68    "lib/filter_chain.cc",
69    "lib/fixed_buffer.cc",
70    "lib/fixed_buffer.h",
71    "lib/handle_interface_serialization.h",
72    "lib/hash_util.h",
73    "lib/interface_endpoint_client.cc",
74    "lib/interface_ptr_state.h",
75    "lib/map_data_internal.h",
76    "lib/map_serialization.h",
77    "lib/may_auto_lock.h",
78    "lib/message.cc",
79    "lib/message_buffer.cc",
80    "lib/message_buffer.h",
81    "lib/message_builder.cc",
82    "lib/message_builder.h",
83    "lib/message_header_validator.cc",
84    "lib/message_internal.h",
85    "lib/multiplex_router.cc",
86    "lib/multiplex_router.h",
87    "lib/native_enum_data.h",
88    "lib/native_enum_serialization.h",
89    "lib/native_struct.cc",
90    "lib/native_struct_data.cc",
91    "lib/native_struct_data.h",
92    "lib/native_struct_serialization.cc",
93    "lib/native_struct_serialization.h",
94    "lib/pipe_control_message_handler.cc",
95    "lib/pipe_control_message_proxy.cc",
96    "lib/scoped_interface_endpoint_handle.cc",
97    "lib/serialization.h",
98    "lib/serialization_context.cc",
99    "lib/serialization_context.h",
100    "lib/serialization_forward.h",
101    "lib/serialization_util.h",
102    "lib/string_serialization.h",
103    "lib/string_traits_string16.cc",
104    "lib/sync_call_restrictions.cc",
105    "lib/sync_handle_registry.cc",
106    "lib/sync_handle_watcher.cc",
107    "lib/template_util.h",
108    "lib/union_accessor.h",
109    "lib/validate_params.h",
110    "lib/validation_context.cc",
111    "lib/validation_context.h",
112    "lib/validation_errors.cc",
113    "lib/validation_errors.h",
114    "lib/validation_util.cc",
115    "lib/validation_util.h",
116    "map.h",
117    "map_data_view.h",
118    "map_traits.h",
119    "map_traits_stl.h",
120    "message.h",
121    "message_header_validator.h",
122    "native_enum.h",
123    "native_struct.h",
124    "native_struct_data_view.h",
125    "pipe_control_message_handler.h",
126    "pipe_control_message_handler_delegate.h",
127    "pipe_control_message_proxy.h",
128    "raw_ptr_impl_ref_traits.h",
129    "scoped_interface_endpoint_handle.h",
130    "string_data_view.h",
131    "string_traits.h",
132    "string_traits_stl.h",
133    "string_traits_string16.h",
134    "string_traits_string_piece.h",
135    "strong_associated_binding.h",
136    "strong_binding.h",
137    "strong_binding_set.h",
138    "struct_ptr.h",
139    "sync_call_restrictions.h",
140    "sync_handle_registry.h",
141    "sync_handle_watcher.h",
142    "thread_safe_interface_ptr.h",
143    "type_converter.h",
144    "union_traits.h",
145    "unique_ptr_impl_ref_traits.h",
146  ]
147
148  public_deps = [
149    ":struct_traits",
150    "//base",
151    "//ipc:param_traits",
152    "//mojo/public/cpp/system",
153  ]
154
155  deps = [
156    "//base",
157    "//mojo/public/interfaces/bindings:bindings__generator",
158    "//mojo/public/interfaces/bindings:bindings_shared__generator",
159  ]
160
161  defines = [ "MOJO_CPP_BINDINGS_IMPLEMENTATION" ]
162}
163
164source_set("struct_traits") {
165  sources = [
166    "enum_traits.h",
167    "struct_traits.h",
168  ]
169}
170
171if (!is_ios) {
172  # TODO(yzshen): crbug.com/617718 Consider moving this into blink.
173  source_set("wtf_support") {
174    sources = [
175      "array_traits_wtf_vector.h",
176      "lib/string_traits_wtf.cc",
177      "lib/wtf_clone_equals_util.h",
178      "lib/wtf_hash_util.h",
179      "lib/wtf_serialization.h",
180      "map_traits_wtf_hash_map.h",
181      "string_traits_wtf.h",
182    ]
183
184    public_deps = [
185      ":bindings",
186      "//third_party/WebKit/Source/wtf",
187    ]
188
189    public_configs = [ "//third_party/WebKit/Source:config" ]
190  }
191}
192