Fix small race in the sandbox
[chromium-blink-merge.git] / ipc / ipc.gyp
bloba2476511a84f2d8f62766fefdaa53b3e80d4eb06
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:run_all_unittests',
41         '../base/base.gyp:test_support_base',
42         '../testing/gtest.gyp:gtest',
43       ],
44       'include_dirs': [
45         '..'
46       ],
47       'sources': [
48         'file_descriptor_set_posix_unittest.cc',
49         'ipc_channel_posix_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         'ipc_test_base.cc',
59         'ipc_test_base.h',
60         'sync_socket_unittest.cc',
61         'unix_domain_socket_util_unittest.cc',
62       ],
63       'conditions': [
64         ['toolkit_uses_gtk == 1', {
65           'dependencies': [
66             '../build/linux/system.gyp:gtk',
67           ],
68         }],
69         ['OS == "win" or OS == "ios"', {
70           'sources!': [
71             'unix_domain_socket_util_unittest.cc',
72           ],
73         }],
74         ['OS == "android" and gtest_target_type == "shared_library"', {
75           'dependencies': [
76             '../testing/android/native_test.gyp:native_test_native_code',
77           ],
78         }],
79         ['os_posix == 1 and OS != "mac" and OS != "android"', {
80           'conditions': [
81             ['linux_use_tcmalloc==1', {
82               'dependencies': [
83                 '../base/allocator/allocator.gyp:allocator',
84               ],
85             }],
86           ],
87         }]
88       ],
89     },
90     {
91       'target_name': 'ipc_perftests',
92       'type': '<(gtest_target_type)',
93       # TODO(viettrungluu): Figure out which dependencies are really needed.
94       'dependencies': [
95         'ipc',
96         'test_support_ipc',
97         '../base/base.gyp:base',
98         '../base/base.gyp:base_i18n',
99         '../base/base.gyp:test_support_base',
100         '../base/base.gyp:test_support_perf',
101         '../testing/gtest.gyp:gtest',
102       ],
103       'include_dirs': [
104         '..'
105       ],
106       'sources': [
107         'ipc_perftests.cc',
108         'ipc_test_base.cc',
109         'ipc_test_base.h',
110       ],
111       'conditions': [
112         ['toolkit_uses_gtk == 1', {
113           'dependencies': [
114             '../build/linux/system.gyp:gtk',
115           ],
116         }],
117         ['OS == "android" and gtest_target_type == "shared_library"', {
118           'dependencies': [
119             '../testing/android/native_test.gyp:native_test_native_code',
120           ],
121         }],
122         ['os_posix == 1 and OS != "mac" and OS != "android"', {
123           'conditions': [
124             ['linux_use_tcmalloc==1', {
125               'dependencies': [
126                 '../base/allocator/allocator.gyp:allocator',
127               ],
128             }],
129           ],
130         }]
131       ],
132     },
133     {
134       'target_name': 'test_support_ipc',
135       'type': 'static_library',
136       'dependencies': [
137         'ipc',
138         '../base/base.gyp:base',
139         '../testing/gtest.gyp:gtest',
140       ],
141       'sources': [
142         'ipc_multiprocess_test.cc',
143         'ipc_multiprocess_test.h',
144         'ipc_test_sink.cc',
145         'ipc_test_sink.h',
146       ],
147     },
148   ],
149   'conditions': [
150     ['OS=="win" and target_arch=="ia32"', {
151       'targets': [
152         {
153           'target_name': 'ipc_win64',
154           'type': '<(component)',
155           'variables': {
156             'ipc_target': 1,
157           },
158           'dependencies': [
159             '../base/base.gyp:base_nacl_win64',
160             # TODO(viettrungluu): Needed for base/lazy_instance.h, which is
161             # suspect.
162             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
163           ],
164           # TODO(gregoryd): direct_dependent_settings should be shared with the
165           # 32-bit target, but it doesn't work due to a bug in gyp
166           'direct_dependent_settings': {
167             'include_dirs': [
168               '..',
169             ],
170           },
171           'configurations': {
172             'Common_Base': {
173               'msvs_target_platform': 'x64',
174             },
175           },
176         },
177       ],
178     }],
179     # Special target to wrap a gtest_target_type==shared_library
180     # ipc_tests into an android apk for execution.
181     # See base.gyp for TODO(jrg)s about this strategy.
182     ['OS == "android" and gtest_target_type == "shared_library"', {
183       'targets': [
184         {
185           'target_name': 'ipc_tests_apk',
186           'type': 'none',
187           'dependencies': [
188             'ipc_tests',
189           ],
190           'variables': {
191             'test_suite_name': 'ipc_tests',
192             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)ipc_tests<(SHARED_LIB_SUFFIX)',
193           },
194           'includes': [ '../build/apk_test.gypi' ],
195         }],
196     }],
197   ],