# Copyright 2014 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("//build/buildflag_header.gni") import("//build/config/nacl/config.gni") import("//tools/ipc_fuzzer/ipc_fuzzer.gni") declare_args() { enable_mojo_tracing = false } buildflag_header("mojo_buildflags") { header = "mojo_buildflags.h" flags = [ "MOJO_TRACE_ENABLED=$enable_mojo_tracing" ] } # Headers and sources which generated bindings can depend upon. No need for # other targets to depend on this directly: just use the "bindings" target. component("bindings_base") { sources = [ "array_data_view.h", "array_traits.h", "array_traits_span.h", "array_traits_stl.h", "associated_group.h", "associated_group_controller.h", "clone_traits.h", "disconnect_reason.h", "enum_traits.h", "equals_traits.h", "interface_data_view.h", "interface_id.h", "lib/array_internal.cc", "lib/array_internal.h", "lib/array_serialization.h", "lib/associated_group.cc", "lib/associated_group_controller.cc", "lib/bindings_internal.h", "lib/buffer.cc", "lib/buffer.h", "lib/fixed_buffer.cc", "lib/fixed_buffer.h", "lib/handle_serialization.h", "lib/hash_util.h", "lib/map_data_internal.h", "lib/map_serialization.h", "lib/may_auto_lock.h", "lib/message.cc", "lib/message_header_validator.cc", "lib/message_internal.cc", "lib/message_internal.h", "lib/scoped_interface_endpoint_handle.cc", "lib/serialization.h", "lib/serialization.h", "lib/serialization_context.cc", "lib/serialization_context.h", "lib/serialization_forward.h", "lib/serialization_util.h", "lib/string_serialization.h", "lib/template_util.h", "lib/unserialized_message_context.cc", "lib/unserialized_message_context.h", "lib/validate_params.h", "lib/validation_context.cc", "lib/validation_context.h", "lib/validation_errors.cc", "lib/validation_errors.h", "lib/validation_util.cc", "lib/validation_util.h", "map.h", "map_data_view.h", "map_traits.h", "map_traits_flat_map.h", "map_traits_stl.h", "message.h", "message_header_validator.h", "scoped_interface_endpoint_handle.h", "string_data_view.h", "string_traits.h", "string_traits_stl.h", "string_traits_string_piece.h", "struct_ptr.h", "struct_traits.h", "type_converter.h", "union_traits.h", ] defines = [ "IS_MOJO_CPP_BINDINGS_BASE_IMPL" ] public_deps = [ ":mojo_buildflags", "//base", "//mojo/public/cpp/system", ] if (enable_ipc_fuzzer) { all_dependent_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ] } } component("bindings") { sources = [ "associated_binding.h", "associated_binding_set.h", "associated_interface_ptr.h", "associated_interface_ptr_info.h", "associated_interface_request.h", "binding.h", "binding_set.h", "bindings_export.h", "callback_helpers.h", "connection_error_callback.h", "connector.h", "filter_chain.h", "interface_endpoint_client.h", "interface_endpoint_controller.h", "interface_ptr.h", "interface_ptr_info.h", "interface_ptr_set.h", "interface_request.h", "lib/associated_binding.cc", "lib/associated_interface_ptr.cc", "lib/associated_interface_ptr_state.cc", "lib/associated_interface_ptr_state.h", "lib/binding_state.cc", "lib/binding_state.h", "lib/connector.cc", "lib/control_message_handler.cc", "lib/control_message_handler.h", "lib/control_message_proxy.cc", "lib/control_message_proxy.h", "lib/filter_chain.cc", "lib/interface_endpoint_client.cc", "lib/interface_ptr_state.cc", "lib/interface_ptr_state.h", "lib/interface_serialization.h", "lib/multiplex_router.cc", "lib/multiplex_router.h", "lib/native_enum_data.h", "lib/native_enum_serialization.h", "lib/native_struct_serialization.cc", "lib/native_struct_serialization.h", "lib/pipe_control_message_handler.cc", "lib/pipe_control_message_proxy.cc", "lib/sequence_local_sync_event_watcher.cc", "lib/sync_call_restrictions.cc", "lib/sync_event_watcher.cc", "lib/sync_handle_registry.cc", "lib/sync_handle_watcher.cc", "lib/task_runner_helper.cc", "lib/task_runner_helper.h", "native_enum.h", "pipe_control_message_handler.h", "pipe_control_message_handler_delegate.h", "pipe_control_message_proxy.h", "raw_ptr_impl_ref_traits.h", "sequence_local_sync_event_watcher.h", "strong_associated_binding.h", "strong_binding.h", "strong_binding_set.h", "sync_call_restrictions.h", "sync_event_watcher.h", "sync_handle_registry.h", "sync_handle_watcher.h", "thread_safe_interface_ptr.h", "unique_ptr_impl_ref_traits.h", ] if (enable_ipc_fuzzer && !is_nacl_nonsfi) { sources += [ "lib/message_dumper.cc", "message_dumper.h", ] } public_deps = [ ":bindings_base", ":struct_traits", "//base", "//ipc:message_support", "//ipc:param_traits", "//mojo/public/cpp/system", "//mojo/public/interfaces/bindings", ] deps = [ "//ipc:native_handle_type_converters", ] defines = [ "MOJO_CPP_BINDINGS_IMPLEMENTATION" ] } source_set("struct_traits") { sources = [ "array_traits.h", "enum_traits.h", "lib/template_util.h", "map_traits.h", "string_traits.h", "struct_traits.h", "union_traits.h", ] } if (!is_ios) { # TODO(yzshen): crbug.com/617718 Consider moving this into blink. source_set("wtf_support") { sources = [ "array_traits_wtf_vector.h", "lib/string_traits_wtf.cc", "lib/wtf_clone_equals_util.h", "lib/wtf_hash_util.h", "lib/wtf_serialization.h", "map_traits_wtf_hash_map.h", "string_traits_wtf.h", ] public_deps = [ ":bindings", "//third_party/blink/renderer/platform:platform_export", "//third_party/blink/renderer/platform/wtf", ] public_configs = [ "//third_party/blink/renderer:config" ] } }