1# Copyright (c) 2012 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 5component("ipc") { 6 sources = [ 7 "file_descriptor_set_posix.cc", 8 "file_descriptor_set_posix.h", 9 "ipc_channel.cc", 10 "ipc_channel.h", 11 "ipc_channel_common.cc", 12 "ipc_channel_factory.cc", 13 "ipc_channel_factory.h", 14 "ipc_channel_handle.h", 15 "ipc_channel_nacl.cc", 16 "ipc_channel_nacl.h", 17 "ipc_channel_posix.cc", 18 "ipc_channel_posix.h", 19 "ipc_channel_proxy.cc", 20 "ipc_channel_proxy.h", 21 "ipc_channel_reader.cc", 22 "ipc_channel_reader.h", 23 "ipc_channel_win.cc", 24 "ipc_channel_win.h", 25 "ipc_descriptors.h", 26 "ipc_export.h", 27 "ipc_forwarding_message_filter.cc", 28 "ipc_forwarding_message_filter.h", 29 "ipc_listener.h", 30 "ipc_logging.cc", 31 "ipc_logging.h", 32 "ipc_message.cc", 33 "ipc_message.h", 34 "ipc_message_macros.h", 35 "ipc_message_start.h", 36 "ipc_message_utils.cc", 37 "ipc_message_utils.h", 38 "ipc_param_traits.h", 39 "ipc_platform_file.cc", 40 "ipc_platform_file.h", 41 "ipc_sender.h", 42 "ipc_switches.cc", 43 "ipc_switches.h", 44 "ipc_sync_channel.cc", 45 "ipc_sync_channel.h", 46 "ipc_sync_message.cc", 47 "ipc_sync_message.h", 48 "ipc_sync_message_filter.cc", 49 "ipc_sync_message_filter.h", 50 "message_filter.cc", 51 "message_filter.h", 52 "message_filter_router.cc", 53 "message_filter_router.h", 54 "param_traits_log_macros.h", 55 "param_traits_macros.h", 56 "param_traits_read_macros.h", 57 "param_traits_write_macros.h", 58 "struct_constructor_macros.h", 59 "struct_destructor_macros.h", 60 "unix_domain_socket_util.cc", 61 "unix_domain_socket_util.h", 62 ] 63 64 if (!is_nacl) { 65 sources -= [ 66 "ipc_channel_nacl.cc", 67 "ipc_channel_nacl.h", 68 ] 69 } 70 71 if (is_win || is_ios) { 72 sources -= [ 73 "ipc_channel_factory.cc", 74 "unix_domain_socket_util.cc", 75 ] 76 } 77 78 defines = [ "IPC_IMPLEMENTATION" ] 79 80 deps = [ 81 "//base", 82 # TODO(viettrungluu): Needed for base/lazy_instance.h, which is suspect. 83 "//base/third_party/dynamic_annotations", 84 ] 85} 86 87# TODO(dpranke): crbug.com/360936. Get this to build and run on Android. 88if (!is_android) { 89 test("ipc_tests") { 90 sources = [ 91 "file_descriptor_set_posix_unittest.cc", 92 "ipc_channel_posix_unittest.cc", 93 "ipc_channel_unittest.cc", 94 "ipc_fuzzing_tests.cc", 95 "ipc_message_unittest.cc", 96 "ipc_message_utils_unittest.cc", 97 "ipc_send_fds_test.cc", 98 "ipc_sync_channel_unittest.cc", 99 "ipc_sync_message_unittest.cc", 100 "ipc_sync_message_unittest.h", 101 "ipc_test_base.cc", 102 "ipc_test_base.h", 103 "sync_socket_unittest.cc", 104 "unix_domain_socket_util_unittest.cc", 105 ] 106 107 if (is_win || is_ios) { 108 sources -= [ "unix_domain_socket_util_unittest.cc" ] 109 } 110 111 # TODO(brettw) hook up Android testing. 112 #if (is_android && gtest_target_type == "shared_library") { 113 # deps += "/testing/android/native_test.gyp:native_testNative_code" 114 #} 115 116 # TODO(brettw) hook up tcmalloc to this target. 117 #if (is_posix && !is_mac && !is_android) { 118 # if (use_allocator!="none") { 119 # deps += "/base/allocator" 120 # } 121 #} 122 123 deps = [ 124 ":ipc", 125 ":test_support_ipc", 126 "//base", 127 "//base:i18n", 128 "//base/test:run_all_unittests", 129 "//base/test:test_support", 130 "//testing/gtest", 131 ] 132 } 133 134 test("ipc_perftests") { 135 sources = [ 136 "ipc_perftests.cc", 137 "ipc_test_base.cc", 138 "ipc_test_base.h", 139 ] 140 141 # TODO(brettw) hook up Android testing. 142 #if (is_android && gtest_target_type == "shared_library") { 143 # deps += "/testing/android/native_test.gyp:native_testNative_code" 144 #} 145 146 # TODO(brettw) hook up tcmalloc to this target. 147 #if (is_posix && !is_mac && !is_android) { 148 # if (use_allocator!="none") { 149 # deps += "//base/allocator" 150 # } 151 #} 152 153 deps = [ 154 ":ipc", 155 ":test_support_ipc", 156 "//base", 157 "//base:i18n", 158 "//base/test:test_support", 159 "//base/test:test_support_perf", 160 "//testing/gtest", 161 ] 162 } 163} 164 165static_library("test_support_ipc") { 166 sources = [ 167 "ipc_multiprocess_test.cc", 168 "ipc_multiprocess_test.h", 169 "ipc_test_sink.cc", 170 "ipc_test_sink.h", 171 ] 172 deps = [ 173 ":ipc", 174 "//base", 175 "//testing/gtest", 176 ] 177} 178 179