Index: components/crash.gypi |
diff --git a/components/crash.gypi b/components/crash.gypi |
index e61d1c013bd0c5b09b9a341409764cada9f8f3a6..37b4c54305154f764427c788eb6e0937607d3365 100644 |
--- a/components/crash.gypi |
+++ b/components/crash.gypi |
@@ -19,30 +19,47 @@ |
], |
}, |
{ |
+ # TODO(mark): https://crbug.com/466890: merge this target with |
+ # crash_component. |
+ # |
+ # This is a temporary base target that is depended on by both |
+ # crash_component and crash_component_breakpad_mac_to_be_deleted. It |
+ # provides everything common to both of those targets. For a short period, |
+ # there are two Mac crash component implementations. The new one uses a |
+ # Crashpad implementation and is used by Chrome. The old one uses a |
+ # Breakpad implementation and is used by content_shell. Consumers should |
+ # depend on the desired target. All three targets behave identically on |
+ # non-Mac. When content_shell and any other consumers are migrated to the |
+ # Crashpad implementation on Mac, crash_component will merge back into |
+ # this target, crash_component_non_mac, which will be renamed |
+ # crash_component. crash_component_breakpad_mac_to_be_deleted will be |
+ # deleted. |
+ # |
+ # While this situation exists: |
+ # |
+ # Do not depend on this target directly! Depend on |
+ # crash_component_breakpad_mac_to_be_deleted for old Breakpad behavior on |
+ # all platforms, or preferably, depend on crash_component to get Breakpad |
+ # everywhere except for Mac, where you will get Crashpad. |
+ 'target_name': 'crash_component_non_mac', |
'variables': { |
'conditions': [ |
- ['OS == "ios" ', { |
+ ['OS == "ios" or OS == "mac"', { |
# On IOS there are no files compiled into the library, and we |
# can't have libraries with zero objects. |
+ # For now, the same applies to Mac OS X, until this target merges |
+ # with crash_component. |
'crash_component_target_type%': 'none', |
}, { |
'crash_component_target_type%': 'static_library', |
}], |
], |
}, |
- # Note: if you depend on this target, you need to either link in |
- # content.gyp:content_common, or add |
- # content/public/common/content_switches.cc to your sources. |
- # |
- # GN version: //components/crash/app |
- 'target_name': 'crash_component', |
'type': '<(crash_component_target_type)', |
'sources': [ |
'crash/app/breakpad_linux.cc', |
'crash/app/breakpad_linux.h', |
'crash/app/breakpad_linux_impl.h', |
- 'crash/app/breakpad_mac.h', |
- 'crash/app/breakpad_mac.mm', |
'crash/app/breakpad_win.cc', |
'crash/app/breakpad_win.h', |
'crash/app/hard_error_handler_win.cc', |
@@ -54,11 +71,6 @@ |
], |
'defines': ['CRASH_IMPLEMENTATION'], |
'conditions': [ |
- ['OS=="mac"', { |
- 'dependencies': [ |
- '../breakpad/breakpad.gyp:breakpad', |
- ], |
- }], |
['OS=="win"', { |
'dependencies': [ |
'../breakpad/breakpad.gyp:breakpad_handler', |
@@ -86,6 +98,90 @@ |
], |
}, |
{ |
+ # Note: if you depend on this target, you need to either link in |
+ # content.gyp:content_common, or add |
+ # content/public/common/content_switches.cc to your sources. |
+ # |
+ # GN version: //components/crash/app |
+ |
+ # TODO(mark): https://crbug.com/466890: merge this target with |
+ # crash_component_non_mac. |
+ # |
+ # Most of this target is actually in its dependency, |
+ # crash_component_non_mac. See the comment in that target for an |
+ # explanation for the split. The split is temporary and the two targets |
+ # will be unified again soon. |
+ 'target_name': 'crash_component', |
+ 'variables': { |
+ 'conditions': [ |
+ ['OS != "mac" ', { |
+ # There are no source files on any platform but Mac OS X. |
+ 'crash_component_target_type%': 'none', |
+ }, { |
+ 'crash_component_target_type%': 'static_library', |
+ }], |
+ ], |
+ }, |
+ 'type': '<(crash_component_target_type)', |
+ 'sources': [ |
+ 'crash/app/crashpad_mac.h', |
+ 'crash/app/crashpad_mac.mm', |
+ ], |
+ 'dependencies': [ |
+ 'crash_component_non_mac', |
+ 'crash_component_lib', |
+ '../base/base.gyp:base', |
+ ], |
+ 'defines': ['CRASH_IMPLEMENTATION'], |
+ 'conditions': [ |
+ ['OS=="mac"', { |
+ 'dependencies': [ |
+ '../third_party/crashpad/crashpad/client/client.gyp:crashpad_client', |
+ ], |
+ }], |
+ ], |
+ }, |
+ { |
+ # TODO(mark): https://crbug.com/466890: remove this target. |
+ # |
+ # This is a temporary target provided for Mac Breakpad users that have not |
+ # yet migrated to Crashpad (namely content_shell). This target will be |
+ # removed shortly and all consumers will be expected to use Crashpad as |
+ # the Mac crash-reporting client. See the comment in the |
+ # crash_component_non_mac target for more details. |
+ 'target_name': 'crash_component_breakpad_mac_to_be_deleted', |
+ 'variables': { |
+ 'conditions': [ |
+ ['OS != "mac" ', { |
+ # There are no source files on any platform but Mac OS X. |
+ 'crash_component_target_type%': 'none', |
+ }, { |
+ 'crash_component_target_type%': 'static_library', |
+ }], |
+ ], |
+ }, |
+ 'type': '<(crash_component_target_type)', |
+ 'sources': [ |
+ 'crash/app/breakpad_mac.h', |
+ 'crash/app/breakpad_mac.mm', |
+ ], |
+ 'dependencies': [ |
+ 'crash_component_non_mac', |
+ 'crash_component_lib', |
+ ], |
+ 'defines': ['CRASH_IMPLEMENTATION'], |
+ 'conditions': [ |
+ ['OS=="mac"', { |
+ 'dependencies': [ |
+ '../breakpad/breakpad.gyp:breakpad', |
+ ], |
+ 'include_dirs': [ |
+ '..', |
+ ], |
+ }], |
+ ], |
+ }, |
+ { |
# GN version: //components/crash/app:test_support |
'target_name': 'crash_test_support', |
'type': 'none', |