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
5{
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  ],
200}
201