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