# 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.

static_library("bindings") {
  sources = [
    "array.h",
    "array_traits.h",
    "array_traits_carray.h",
    "array_traits_standard.h",
    "array_traits_stl.h",
    "associated_binding.h",
    "associated_group.h",
    "associated_group_controller.h",
    "associated_interface_ptr.h",
    "associated_interface_ptr_info.h",
    "associated_interface_request.h",
    "binding.h",
    "binding_set.h",
    "connector.h",
    "enum_traits.h",
    "interface_endpoint_client.h",
    "interface_endpoint_controller.h",
    "interface_id.h",
    "interface_ptr.h",
    "interface_ptr_info.h",
    "interface_ptr_set.h",
    "interface_request.h",
    "lib/array_internal.cc",
    "lib/array_internal.h",
    "lib/array_serialization.h",
    "lib/associated_group.cc",
    "lib/associated_group_controller.cc",
    "lib/associated_interface_ptr_state.h",
    "lib/binding_state.h",
    "lib/bindings_internal.cc",
    "lib/bindings_internal.h",
    "lib/buffer.h",
    "lib/clone_equals_util.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/filter_chain.h",
    "lib/fixed_buffer.cc",
    "lib/fixed_buffer.h",
    "lib/handle_interface_serialization.h",
    "lib/interface_endpoint_client.cc",
    "lib/interface_ptr_state.h",
    "lib/map_data_internal.h",
    "lib/map_serialization.h",
    "lib/message.cc",
    "lib/message_buffer.cc",
    "lib/message_buffer.h",
    "lib/message_builder.cc",
    "lib/message_builder.h",
    "lib/message_filter.cc",
    "lib/message_header_validator.cc",
    "lib/message_internal.h",
    "lib/multiplex_router.cc",
    "lib/multiplex_router.h",
    "lib/native_enum_data.h",
    "lib/native_enum_serialization.h",
    "lib/native_struct.cc",
    "lib/native_struct_data.cc",
    "lib/native_struct_data.h",
    "lib/native_struct_serialization.cc",
    "lib/native_struct_serialization.h",
    "lib/no_interface.cc",
    "lib/pipe_control_message_handler.cc",
    "lib/pipe_control_message_proxy.cc",
    "lib/router.cc",
    "lib/router.h",
    "lib/scoped_interface_endpoint_handle.cc",
    "lib/serialization.h",
    "lib/serialization_context.cc",
    "lib/serialization_context.h",
    "lib/serialization_forward.h",
    "lib/serialization_util.h",
    "lib/string_serialization.h",
    "lib/string_traits_string16.cc",
    "lib/sync_call_restrictions.cc",
    "lib/sync_handle_registry.cc",
    "lib/sync_handle_watcher.cc",
    "lib/template_util.h",
    "lib/union_accessor.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_traits.h",
    "map_traits_standard.h",
    "map_traits_stl.h",
    "message.h",
    "message_filter.h",
    "message_header_validator.h",
    "native_enum.h",
    "native_struct.h",
    "no_interface.h",
    "pipe_control_message_handler.h",
    "pipe_control_message_handler_delegate.h",
    "pipe_control_message_proxy.h",
    "scoped_interface_endpoint_handle.h",
    "stl_converters.h",
    "string.h",
    "string_traits.h",
    "string_traits_standard.h",
    "string_traits_stl.h",
    "string_traits_string16.h",
    "string_traits_string_piece.h",
    "strong_binding.h",
    "struct_ptr.h",
    "sync_call_restrictions.h",
    "sync_handle_registry.h",
    "sync_handle_watcher.h",
    "type_converter.h",
  ]

  public_deps = [
    ":struct_traits",
    "//base",
    "//ipc:param_traits",
    "//mojo/public/cpp/system",
  ]

  deps = [
    "//base",
    "//mojo/public/interfaces/bindings:bindings_cpp_sources",
  ]
}

source_set("struct_traits") {
  sources = [
    "struct_traits.h",
  ]
}

if (!is_ios) {
  # TODO(yzshen): crbug.com/617718 Consider moving this into blink.
  source_set("wtf_support") {
    sources = [
      "array_traits_wtf.h",
      "array_traits_wtf_vector.h",
      "lib/string_traits_wtf.cc",
      "lib/wtf_clone_equals_util.h",
      "lib/wtf_serialization.h",
      "map_traits_wtf.h",
      "map_traits_wtf_hash_map.h",
      "string_traits_wtf.h",
      "wtf_array.h",
      "wtf_map.h",
    ]

    public_deps = [
      ":bindings",
      "//third_party/WebKit/Source/wtf",
    ]

    public_configs = [ "//third_party/WebKit/Source:config" ]
  }
}