Home | History | Annotate | Download | only in components
      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