# Copyright (c) 2012 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. component("ipc") { sources = [ "file_descriptor_set_posix.cc", "file_descriptor_set_posix.h", "ipc_channel.cc", "ipc_channel.h", "ipc_channel_factory.cc", "ipc_channel_factory.h", "ipc_channel_handle.h", "ipc_channel_nacl.cc", "ipc_channel_nacl.h", "ipc_channel_posix.cc", "ipc_channel_posix.h", "ipc_channel_proxy.cc", "ipc_channel_proxy.h", "ipc_channel_reader.cc", "ipc_channel_reader.h", "ipc_channel_win.cc", "ipc_channel_win.h", "ipc_descriptors.h", "ipc_export.h", "ipc_forwarding_message_filter.cc", "ipc_forwarding_message_filter.h", "ipc_listener.h", "ipc_logging.cc", "ipc_logging.h", "ipc_message.cc", "ipc_message.h", "ipc_message_macros.h", "ipc_message_start.h", "ipc_message_utils.cc", "ipc_message_utils.h", "ipc_param_traits.h", "ipc_platform_file.cc", "ipc_platform_file.h", "ipc_sender.h", "ipc_switches.cc", "ipc_switches.h", "ipc_sync_channel.cc", "ipc_sync_channel.h", "ipc_sync_message.cc", "ipc_sync_message.h", "ipc_sync_message_filter.cc", "ipc_sync_message_filter.h", "message_filter.cc", "message_filter.h", "message_filter_router.cc", "message_filter_router.h", "param_traits_log_macros.h", "param_traits_macros.h", "param_traits_read_macros.h", "param_traits_write_macros.h", "struct_constructor_macros.h", "struct_destructor_macros.h", "unix_domain_socket_util.cc", "unix_domain_socket_util.h", ] if (!is_nacl) { sources -= [ "ipc_channel_nacl.cc", "ipc_channel_nacl.h", ] } if (is_win || is_ios) { sources -= [ "ipc_channel_factory.cc", "unix_domain_socket_util.cc", ] } defines = [ "IPC_IMPLEMENTATION" ] deps = [ "//base", # TODO(viettrungluu): Needed for base/lazy_instance.h, which is suspect. "//base/third_party/dynamic_annotations", ] } # TODO(dpranke): crbug.com/360936. Get this to build and run on Android. if (!is_android) { test("ipc_tests") { sources = [ "file_descriptor_set_posix_unittest.cc", "ipc_channel_posix_unittest.cc", "ipc_channel_unittest.cc", "ipc_fuzzing_tests.cc", "ipc_message_unittest.cc", "ipc_message_utils_unittest.cc", "ipc_send_fds_test.cc", "ipc_sync_channel_unittest.cc", "ipc_sync_message_unittest.cc", "ipc_sync_message_unittest.h", "ipc_test_base.cc", "ipc_test_base.h", "sync_socket_unittest.cc", "unix_domain_socket_util_unittest.cc", ] if (is_win || is_ios) { sources -= [ "unix_domain_socket_util_unittest.cc" ] } # TODO(brettw) hook up Android testing. #if (is_android && gtest_target_type == "shared_library") { # deps += "/testing/android/native_test.gyp:native_testNative_code" #} # TODO(brettw) hook up tcmalloc to this target. #if (is_posix && !is_mac && !is_android) { # # TODO(dmikurube): Kill linux_use_tcmalloc. http://crbug.com/345554 # if ((use_allocator!="none" && use_allocator!="see_use_tcmalloc") || (use_allocator=="see_use_tcmalloc" && linux_use_tcmalloc)) { # deps += "/base/allocator" # } #} deps = [ ":ipc", ":test_support_ipc", "//base", "//base:i18n", "//base/test:run_all_unittests", "//base/test:test_support", "//testing/gtest", ] } test("ipc_perftests") { sources = [ "ipc_perftests.cc", "ipc_test_base.cc", "ipc_test_base.h", ] # TODO(brettw) hook up Android testing. #if (is_android && gtest_target_type == "shared_library") { # deps += "/testing/android/native_test.gyp:native_testNative_code" #} # TODO(brettw) hook up tcmalloc to this target. #if (is_posix && !is_mac && !is_android) { # # TODO(dmikurube): Kill linux_use_tcmalloc. http://crbug.com/345554 # if ((use_allocator!="none" && use_allocator!="see_use_tcmalloc") || (use_allocator=="see_use_tcmalloc" && linux_use_tcmalloc)) { # deps += "//base/allocator" # } #} deps = [ ":ipc", ":test_support_ipc", "//base", "//base:i18n", "//base/test:test_support", "//base/test:test_support_perf", "//testing/gtest", ] } } static_library("test_support_ipc") { sources = [ "ipc_multiprocess_test.cc", "ipc_multiprocess_test.h", "ipc_test_sink.cc", "ipc_test_sink.h", ] deps = [ ":ipc", "//base", "//testing/gtest", ] }