Prepare for webview compositing on MACOSX.
[chromium-blink-merge.git] / ipc / ipc.gyp
blob5e2f3a75203066c0701027d1fb1d99d6fde055d3
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       ],
62       'conditions': [
63         ['toolkit_uses_gtk == 1', {
64           'dependencies': [
65             '../build/linux/system.gyp:gtk',
66           ],
67         }],
68         ['OS == "android" and gtest_target_type == "shared_library"', {
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             ['linux_use_tcmalloc==1', {
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         ['toolkit_uses_gtk == 1', {
107           'dependencies': [
108             '../build/linux/system.gyp:gtk',
109           ],
110         }],
111         ['OS == "android" and gtest_target_type == "shared_library"', {
112           'dependencies': [
113             '../testing/android/native_test.gyp:native_test_native_code',
114           ],
115         }],
116         ['os_posix == 1 and OS != "mac" and OS != "android"', {
117           'conditions': [
118             ['linux_use_tcmalloc==1', {
119               'dependencies': [
120                 '../base/allocator/allocator.gyp:allocator',
121               ],
122             }],
123           ],
124         }]
125       ],
126     },
127     {
128       'target_name': 'test_support_ipc',
129       'type': 'static_library',
130       'dependencies': [
131         'ipc',
132         '../base/base.gyp:base',
133         '../testing/gtest.gyp:gtest',
134       ],
135       'sources': [
136         'ipc_multiprocess_test.cc',
137         'ipc_multiprocess_test.h',
138         'ipc_test_sink.cc',
139         'ipc_test_sink.h',
140       ],
141     },
142   ],
143   'conditions': [
144     ['OS=="win" and target_arch=="ia32"', {
145       'targets': [
146         {
147           'target_name': 'ipc_win64',
148           'type': '<(component)',
149           'variables': {
150             'ipc_target': 1,
151           },
152           'dependencies': [
153             '../base/base.gyp:base_nacl_win64',
154             # TODO(viettrungluu): Needed for base/lazy_instance.h, which is
155             # suspect.
156             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
157           ],
158           # TODO(gregoryd): direct_dependent_settings should be shared with the
159           # 32-bit target, but it doesn't work due to a bug in gyp
160           'direct_dependent_settings': {
161             'include_dirs': [
162               '..',
163             ],
164           },
165           'configurations': {
166             'Common_Base': {
167               'msvs_target_platform': 'x64',
168             },
169           },
170         },
171       ],
172     }],
173     # Special target to wrap a gtest_target_type==shared_library
174     # ipc_tests into an android apk for execution.
175     # See base.gyp for TODO(jrg)s about this strategy.
176     ['OS == "android" and gtest_target_type == "shared_library"', {
177       'targets': [
178         {
179           'target_name': 'ipc_tests_apk',
180           'type': 'none',
181           'dependencies': [
182             'ipc_tests',
183           ],
184           'variables': {
185             'test_suite_name': 'ipc_tests',
186             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)ipc_tests<(SHARED_LIB_SUFFIX)',
187           },
188           'includes': [ '../build/apk_test.gypi' ],
189         }],
190     }],
191   ],