This is similar to https://codereview.chromium.org/328423002/ where we started archiv...
[chromium-blink-merge.git] / ipc / ipc.gyp
blob28c112b0ba6ed37123b18b2219785db4474bf5ce
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.
6   'variables': {
7     'chromium_code': 1,
8   },
9   'includes': [
10     'ipc.gypi',
11   ],
12   'targets': [
13     {
14       'target_name': 'ipc',
15       'type': '<(component)',
16       'variables': {
17         'ipc_target': 1,
18       },
19       'dependencies': [
20         '../base/base.gyp:base',
21         # TODO(viettrungluu): Needed for base/lazy_instance.h, which is suspect.
22         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
23       ],
24       # TODO(gregoryd): direct_dependent_settings should be shared with the
25       # 64-bit target, but it doesn't work due to a bug in gyp
26       'direct_dependent_settings': {
27         'include_dirs': [
28           '..',
29         ],
30       },
31     },
32     {
33       'target_name': 'ipc_tests',
34       'type': '<(gtest_target_type)',
35       'dependencies': [
36         'ipc',
37         'test_support_ipc',
38         '../base/base.gyp:base',
39         '../base/base.gyp:base_i18n',
40         '../base/base.gyp:test_support_base',
41         '../testing/gtest.gyp:gtest',
42       ],
43       'include_dirs': [
44         '..'
45       ],
46       'sources': [
47         'file_descriptor_set_posix_unittest.cc',
48         'ipc_channel_posix_unittest.cc',
49         'ipc_channel_proxy_unittest.cc',
50         'ipc_channel_unittest.cc',
51         'ipc_fuzzing_tests.cc',
52         'ipc_message_unittest.cc',
53         'ipc_message_utils_unittest.cc',
54         'ipc_send_fds_test.cc',
55         'ipc_sync_channel_unittest.cc',
56         'ipc_sync_message_unittest.cc',
57         'ipc_sync_message_unittest.h',
58         'run_all_unittests.cc',
59         'sync_socket_unittest.cc',
60         'unix_domain_socket_util_unittest.cc',
61       ],
62       'conditions': [
63         ['OS == "win" or OS == "ios"', {
64           'sources!': [
65             'unix_domain_socket_util_unittest.cc',
66           ],
67         }],
68         ['OS == "android"', {
69           'dependencies': [
70             '../testing/android/native_test.gyp:native_test_native_code',
71           ],
72         }],
73         ['os_posix == 1 and OS != "mac" and OS != "android"', {
74           'conditions': [
75             ['use_allocator!="none"', {
76               'dependencies': [
77                 '../base/allocator/allocator.gyp:allocator',
78               ],
79             }],
80           ],
81         }]
82       ],
83     },
84     {
85       'target_name': 'ipc_perftests',
86       'type': '<(gtest_target_type)',
87       # TODO(viettrungluu): Figure out which dependencies are really needed.
88       'dependencies': [
89         'ipc',
90         'test_support_ipc',
91         '../base/base.gyp:base',
92         '../base/base.gyp:base_i18n',
93         '../base/base.gyp:test_support_base',
94         '../base/base.gyp:test_support_perf',
95         '../testing/gtest.gyp:gtest',
96       ],
97       'include_dirs': [
98         '..'
99       ],
100       'sources': [
101         'ipc_perftests.cc',
102         'ipc_test_base.cc',
103         'ipc_test_base.h',
104       ],
105       'conditions': [
106         ['OS == "android"', {
107           'dependencies': [
108             '../testing/android/native_test.gyp:native_test_native_code',
109           ],
110         }],
111         ['os_posix == 1 and OS != "mac" and OS != "android"', {
112           'conditions': [
113             ['use_allocator!="none"', {
114               'dependencies': [
115                 '../base/allocator/allocator.gyp:allocator',
116               ],
117             }],
118           ],
119         }]
120       ],
121     },
122     {
123       'target_name': 'test_support_ipc',
124       'type': 'static_library',
125       'dependencies': [
126         'ipc',
127         '../base/base.gyp:base',
128         '../testing/gtest.gyp:gtest',
129       ],
130       'sources': [
131         'ipc_multiprocess_test.cc',
132         'ipc_multiprocess_test.h',
133         'ipc_perftest_support.cc',
134         'ipc_perftest_support.h',
135         'ipc_test_base.cc',
136         'ipc_test_base.h',
137         'ipc_test_channel_listener.cc',
138         'ipc_test_channel_listener.h',
139         'ipc_test_sink.cc',
140         'ipc_test_sink.h',
141       ],
142     },
143   ],
144   'conditions': [
145     ['OS=="win" and target_arch=="ia32"', {
146       'targets': [
147         {
148           'target_name': 'ipc_win64',
149           'type': '<(component)',
150           'variables': {
151             'ipc_target': 1,
152           },
153           'dependencies': [
154             '../base/base.gyp:base_win64',
155             # TODO(viettrungluu): Needed for base/lazy_instance.h, which is
156             # suspect.
157             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
158           ],
159           # TODO(gregoryd): direct_dependent_settings should be shared with the
160           # 32-bit target, but it doesn't work due to a bug in gyp
161           'direct_dependent_settings': {
162             'include_dirs': [
163               '..',
164             ],
165           },
166           'configurations': {
167             'Common_Base': {
168               'msvs_target_platform': 'x64',
169             },
170           },
171         },
172       ],
173     }],
174     ['OS == "android"', {
175       'targets': [
176         {
177           'target_name': 'ipc_tests_apk',
178           'type': 'none',
179           'dependencies': [
180             'ipc_tests',
181           ],
182           'variables': {
183             'test_suite_name': 'ipc_tests',
184           },
185           'includes': [ '../build/apk_test.gypi' ],
186         },
187         {
188           'target_name': 'ipc_perftests_apk',
189           'type': 'none',
190           'dependencies': [
191             'ipc_perftests',
192           ],
193           'variables': {
194             'test_suite_name': 'ipc_perftests',
195           },
196           'includes': [ '../build/apk_test.gypi' ],
197         }],
198     }],
199   ],