• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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