• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2013 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  'targets': [
7    {
8      'target_name': 'crash_component_lib',
9      'type': 'static_library',
10      'sources': [
11        'crash/app/crash_reporter_client.cc',
12        'crash/app/crash_reporter_client.h',
13        'crash/app/crash_keys_win.cc',
14        'crash/app/crash_keys_win.h',
15      ],
16      'include_dirs': [
17        '..',
18        '../breakpad/src',
19      ],
20    },
21    {
22      'variables': {
23        'conditions': [
24          ['OS == "ios" ', {
25            # On IOS there are no files compiled into the library, and we
26            # can't have libraries with zero objects.
27            'crash_component_target_type%': 'none',
28          }, {
29            'crash_component_target_type%': 'static_library',
30          }],
31        ],
32      },
33      # Note: if you depend on this target, you need to either link in
34      # content.gyp:content_common, or add
35      # content/public/common/content_switches.cc to your sources.
36      #
37      # GN version: //components/crash/app
38      'target_name': 'crash_component',
39      'type': '<(crash_component_target_type)',
40      'sources': [
41        'crash/app/breakpad_linux.cc',
42        'crash/app/breakpad_linux.h',
43        'crash/app/breakpad_linux_impl.h',
44        'crash/app/breakpad_mac.h',
45        'crash/app/breakpad_mac.mm',
46        'crash/app/breakpad_win.cc',
47        'crash/app/breakpad_win.h',
48        'crash/app/hard_error_handler_win.cc',
49        'crash/app/hard_error_handler_win.h',
50      ],
51      'dependencies': [
52        'crash_component_lib',
53        '../base/base.gyp:base',
54      ],
55      'defines': ['CRASH_IMPLEMENTATION'],
56      'conditions': [
57        ['OS=="mac"', {
58          'dependencies': [
59            '../breakpad/breakpad.gyp:breakpad',
60          ],
61        }],
62        ['OS=="win"', {
63          'dependencies': [
64            '../breakpad/breakpad.gyp:breakpad_handler',
65            '../breakpad/breakpad.gyp:breakpad_sender',
66            '../sandbox/sandbox.gyp:sandbox',
67          ],
68        }],
69        ['os_posix == 1 and OS != "mac" and OS != "ios" and android_webview_build != 1', {
70          'dependencies': [
71            '../breakpad/breakpad.gyp:breakpad_client',
72          ],
73          'include_dirs': [
74            '../breakpad/src',
75          ],
76        }],
77      ],
78      'target_conditions': [
79        # Need 'target_conditions' to override default filename_rules to include
80        # the files on Android.
81        ['OS=="android"', {
82          'sources/': [
83            ['include', '^crash/app/breakpad_linux\\.cc$'],
84          ],
85        }],
86      ],
87    },
88    {
89      # GN version: //components/crash/app:test_support
90      'target_name': 'crash_test_support',
91      'type': 'none',
92      'dependencies': [
93        'crash_component_lib',
94      ],
95      'direct_dependent_settings': {
96        'include_dirs' : [
97          '../breakpad/src',
98        ],
99      }
100    },
101  ],
102  'conditions': [
103    ['OS=="win"', {
104      'targets': [
105        {
106          # GN version: //components/crash/tools:crash_service
107          'target_name': 'breakpad_crash_service',
108          'type': 'static_library',
109          'dependencies': [
110            '../base/base.gyp:base',
111            '../breakpad/breakpad.gyp:breakpad_handler',
112            '../breakpad/breakpad.gyp:breakpad_sender',
113          ],
114          'sources': [
115            'crash/tools/crash_service.cc',
116            'crash/tools/crash_service.h',
117          ],
118        },
119      ],
120    }],
121    ['OS=="win" and target_arch=="ia32"', {
122      'targets': [
123        {
124          # Note: if you depend on this target, you need to either link in
125          # content.gyp:content_common, or add
126          # content/public/common/content_switches.cc to your sources.
127          'target_name': 'breakpad_win64',
128          'type': 'static_library',
129          'sources': [
130            'crash/app/crash_reporter_client.cc',
131            'crash/app/crash_reporter_client.h',
132            'crash/app/breakpad_linux.cc',
133            'crash/app/breakpad_linux.h',
134            'crash/app/breakpad_linux_impl.h',
135            'crash/app/breakpad_mac.h',
136            'crash/app/breakpad_mac.mm',
137            'crash/app/breakpad_win.cc',
138            'crash/app/breakpad_win.h',
139            # TODO(siggi): test the x64 version too.
140            'crash/app/crash_keys_win.cc',
141            'crash/app/crash_keys_win.h',
142            'crash/app/hard_error_handler_win.cc',
143            'crash/app/hard_error_handler_win.h',
144          ],
145          'defines': [
146            'COMPILE_CONTENT_STATICALLY',
147            'CRASH_IMPLEMENTATION',
148          ],
149          'dependencies': [
150            '../base/base.gyp:base_win64',
151            '../breakpad/breakpad.gyp:breakpad_handler_win64',
152            '../breakpad/breakpad.gyp:breakpad_sender_win64',
153            '../sandbox/sandbox.gyp:sandbox_win64',
154          ],
155          'configurations': {
156            'Common_Base': {
157              'msvs_target_platform': 'x64',
158            },
159          },
160        },
161        {
162          'target_name': 'breakpad_crash_service_win64',
163          'type': 'static_library',
164          'dependencies': [
165            '../base/base.gyp:base_win64',
166            '../breakpad/breakpad.gyp:breakpad_handler_win64',
167            '../breakpad/breakpad.gyp:breakpad_sender_win64',
168          ],
169          'sources': [
170            'crash/tools/crash_service.cc',
171            'crash/tools/crash_service.h',
172          ],
173          'configurations': {
174            'Common_Base': {
175              'msvs_target_platform': 'x64',
176            },
177          },
178        },
179      ],
180    }],
181    ['OS=="mac"', {
182      'targets': [
183        {
184          'target_name': 'breakpad_stubs',
185          'type': 'static_library',
186          'dependencies': [
187            '../base/base.gyp:base',
188          ],
189          'sources': [
190            'crash/app/crash_reporter_client.cc',
191            'crash/app/crash_reporter_client.h',
192            'crash/app/breakpad_mac.h',
193            'crash/app/breakpad_mac_stubs.mm',
194          ],
195        },
196      ],
197    }],
198    ['os_posix == 1 and OS != "mac" and OS != "ios" and android_webview_build != 1', {
199      'targets': [
200        {
201          # GN version: //components/crash/browser
202          'target_name': 'breakpad_host',
203          'type': 'static_library',
204          'dependencies': [
205            'crash_component',
206            '../base/base.gyp:base',
207            '../breakpad/breakpad.gyp:breakpad_client',
208            '../content/content.gyp:content_browser',
209            '../content/content.gyp:content_common',
210          ],
211          'sources': [
212            'crash/browser/crash_dump_manager_android.cc',
213            'crash/browser/crash_dump_manager_android.h',
214            'crash/browser/crash_handler_host_linux.cc',
215            'crash/browser/crash_handler_host_linux.h',
216          ],
217          'include_dirs': [
218            '../breakpad/src',
219          ],
220          'target_conditions': [
221            # Need 'target_conditions' to override default filename_rules to include
222            # the files on Android.
223            ['OS=="android"', {
224              'sources/': [
225                ['include', '^crash/browser/crash_handler_host_linux\\.cc$'],
226              ],
227            }],
228          ],
229        },
230      ],
231    }],
232  ],
233}
234