ipc.gyp revision 5821806d5e7f356e8fa4b058a389a808ea183019
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        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
22      ],
23      # TODO(gregoryd): direct_dependent_settings should be shared with the
24      # 64-bit target, but it doesn't work due to a bug in gyp
25      'direct_dependent_settings': {
26        'include_dirs': [
27          '..',
28        ],
29      },
30    },
31    {
32      'target_name': 'ipc_tests',
33      'type': '<(gtest_target_type)',
34      'dependencies': [
35        'ipc',
36        'test_support_ipc',
37        '../base/base.gyp:base',
38        '../base/base.gyp:base_i18n',
39        '../base/base.gyp:test_support_base',
40        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
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_fuzzing_tests.cc',
50        'ipc_message_unittest.cc',
51        'ipc_message_utils_unittest.cc',
52        'ipc_send_fds_test.cc',
53        'ipc_sync_channel_unittest.cc',
54        'ipc_sync_message_unittest.cc',
55        'ipc_sync_message_unittest.h',
56        'ipc_tests.cc',
57        'ipc_tests.h',
58        'sync_socket_unittest.cc',
59      ],
60      'conditions': [
61        ['toolkit_uses_gtk == 1', {
62          'dependencies': [
63            '../build/linux/system.gyp:gtk',
64          ],
65        }],
66        ['OS == "android" and gtest_target_type == "shared_library"', {
67          'dependencies': [
68            '../testing/android/native_test.gyp:native_test_native_code',
69          ],
70        }],
71        ['os_posix == 1 and OS != "mac" and OS != "android"', {
72          'conditions': [
73            ['linux_use_tcmalloc==1', {
74              'dependencies': [
75                '../base/allocator/allocator.gyp:allocator',
76              ],
77            }],
78          ],
79        }]
80      ],
81    },
82    {
83      'target_name': 'test_support_ipc',
84      'type': 'static_library',
85      'dependencies': [
86        'ipc',
87        '../base/base.gyp:base',
88        '../testing/gtest.gyp:gtest',
89      ],
90      'sources': [
91        'ipc_multiprocess_test.cc',
92        'ipc_multiprocess_test.h',
93        'ipc_test_sink.cc',
94        'ipc_test_sink.h',
95      ],
96    },
97  ],
98  'conditions': [
99    ['OS=="win"', {
100      'targets': [
101        {
102          'target_name': 'ipc_win64',
103          'type': '<(component)',
104          'variables': {
105            'ipc_target': 1,
106          },
107          'dependencies': [
108            '../base/base.gyp:base_nacl_win64',
109            '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
110          ],
111          # TODO(gregoryd): direct_dependent_settings should be shared with the
112          # 32-bit target, but it doesn't work due to a bug in gyp
113          'direct_dependent_settings': {
114            'include_dirs': [
115              '..',
116            ],
117          },
118          'configurations': {
119            'Common_Base': {
120              'msvs_target_platform': 'x64',
121            },
122          },
123        },
124      ],
125    }],
126    # Special target to wrap a gtest_target_type==shared_library
127    # ipc_tests into an android apk for execution.
128    # See base.gyp for TODO(jrg)s about this strategy.
129    ['OS == "android" and gtest_target_type == "shared_library"', {
130      'targets': [
131        {
132          'target_name': 'ipc_tests_apk',
133          'type': 'none',
134          'dependencies': [
135            'ipc_tests',
136          ],
137          'variables': {
138            'test_suite_name': 'ipc_tests',
139            'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)ipc_tests<(SHARED_LIB_SUFFIX)',
140          },
141          'includes': [ '../build/apk_test.gypi' ],
142        }],
143    }],
144  ],
145}
146