| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # TODO(crbug.com/753619): Enable crash reporting on Fuchsia. |
| assert(!is_ios && !is_fuchsia) |
| |
| if (is_android) { |
| import("//build/config/android/config.gni") |
| } |
| |
| source_set("lib") { |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "crash_reporter_client.cc", |
| "crash_reporter_client.h", |
| ] |
| |
| deps = [ |
| "//base", |
| ] |
| } |
| |
| static_library("app") { |
| sources = [ |
| "crash_export_thunks.h", |
| "crash_switches.cc", |
| "crash_switches.h", |
| "crashpad.h", |
| "crashpad_mac.mm", |
| "crashpad_win.cc", |
| ] |
| |
| if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) { |
| sources += [ "crashpad.cc" ] |
| } |
| |
| if (is_android || (is_linux && !is_chromeos)) { |
| set_sources_assignment_filter([]) |
| sources += [ "crashpad_linux.cc" ] |
| } |
| |
| if (is_linux) { |
| sources += [ |
| "breakpad_linux.cc", |
| "breakpad_linux.h", |
| "breakpad_linux_impl.h", |
| ] |
| } |
| |
| defines = [ "CRASH_IMPLEMENTATION" ] |
| |
| public_deps = [ |
| ":lib", |
| ] |
| deps = [ |
| "//base", |
| ] |
| |
| if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) { |
| deps += [ |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| if (is_android) { |
| deps += [ "//components/crash/android:jni_headers" ] |
| } |
| |
| if (is_android || is_linux) { |
| deps += [ |
| "//base:base_static", |
| "//components/crash/core/common", |
| "//content/public/common:content_descriptors", |
| "//content/public/common:result_codes", |
| "//sandbox", |
| "//third_party/crashpad/crashpad/snapshot", |
| ] |
| |
| if (is_linux) { |
| deps += [ "//third_party/breakpad:client" ] |
| } |
| } |
| |
| if (is_win) { |
| sources += [ |
| "dump_hung_process_with_ptype.cc", |
| "dump_hung_process_with_ptype.h", |
| "minidump_with_crashpad_info.cc", |
| "minidump_with_crashpad_info.h", |
| ] |
| |
| deps += [ |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/handler", |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| if (is_mac) { |
| deps += [ |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/snapshot", |
| ] |
| } |
| |
| if (is_android) { |
| libs = [ "log" ] |
| } |
| } |
| |
| if (is_win) { |
| static_library("run_as_crashpad_handler") { |
| sources = [ |
| "crash_switches.cc", |
| "crash_switches.h", |
| "fallback_crash_handler_launcher_win.cc", |
| "fallback_crash_handler_launcher_win.h", |
| "fallback_crash_handler_win.cc", |
| "fallback_crash_handler_win.h", |
| "fallback_crash_handling_win.cc", |
| "fallback_crash_handling_win.h", |
| "minidump_with_crashpad_info.cc", |
| "minidump_with_crashpad_info.h", |
| "run_as_crashpad_handler_win.cc", |
| "run_as_crashpad_handler_win.h", |
| ] |
| |
| deps = [ |
| "//base", |
| "//components/browser_watcher:crash_stability", |
| "//components/gwp_asan/crash_handler", |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/handler", |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| # This source set contains the include file that declares the export thunks. |
| # Any target that gets compiled into both test and release code needs to |
| # depend on this for the include alone. The binary it's linked into then needs |
| # to depend on either :crash_export_thunks or :test_support, or in the case of |
| # release binaries, on //chrome_elf, which re-exports the thunks. |
| source_set("crash_export_thunk_include") { |
| sources = [ |
| "crash_export_thunks.h", |
| ] |
| } |
| |
| # This source set contains a set of functions that allow using the crashpad |
| # handler across a module boundary. The intent is for these functions to be |
| # built into a dynamic library, which the user of the crashpad handler then |
| # has a link-time dependency on. This will result in an import dependency |
| # from the user to the dynamic library that will be bound at load time. |
| # In a single-module project, this source set can alternatively be included in |
| # the sole module, in which case the implementation will be bound at link |
| # time. |
| source_set("crash_export_thunks") { |
| sources = [ |
| "crash_export_thunks.cc", |
| "crash_export_thunks.h", |
| ] |
| |
| deps = [ |
| ":app", |
| "//base", |
| "//third_party/crashpad/crashpad/client", |
| ] |
| } |
| |
| # This source set contains a set of test stubs for the functions above. |
| # time. |
| source_set("crash_export_stubs") { |
| testonly = true |
| |
| sources = [ |
| "crash_export_stubs.cc", |
| "crash_export_thunks.h", |
| ] |
| |
| deps = [ |
| ":app", |
| "//base", |
| ] |
| } |
| } |
| |
| # This source set provides the functionality required for tests, which on Windows |
| # link the export thunks directly into the test binary. |
| source_set("test_support") { |
| testonly = true |
| |
| deps = [ |
| ":lib", |
| ] |
| |
| if (is_win) { |
| deps += [ ":crash_export_stubs" ] |
| } |
| } |
| |
| # TODO(crbug.com/565771): This target and :deprecated_breakpad_win should be |
| # removed. |
| if (is_win) { |
| static_library("deprecated_breakpad_win") { |
| visibility = [ "//components/nacl/broker:nacl64" ] |
| |
| sources = [ |
| "breakpad_win.cc", |
| "breakpad_win.h", |
| "hard_error_handler_win.cc", |
| "hard_error_handler_win.h", |
| ] |
| |
| defines = [ "CRASH_IMPLEMENTATION" ] |
| |
| deps = [ |
| ":lib", |
| "//base", |
| "//base:base_static", |
| "//components/crash/core/common", |
| "//content/public/common:result_codes", |
| "//sandbox", |
| "//third_party/breakpad:breakpad_handler", |
| "//third_party/breakpad:client", |
| ] |
| |
| include_dirs = [ "../../../../third_party/breakpad/breakpad/src" ] |
| |
| libs = [ "userenv.lib" ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "fallback_crash_handler_launcher_win_unittest.cc", |
| "fallback_crash_handler_win_unittest.cc", |
| "fallback_crash_handling_win_unittest.cc", |
| ] |
| deps = [ |
| ":lib", |
| "//base", |
| "//base/test:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| |
| if (is_win) { |
| deps += [ |
| ":run_as_crashpad_handler", |
| "//third_party/breakpad:client", |
| "//third_party/crashpad/crashpad/client:client", |
| "//third_party/crashpad/crashpad/snapshot:snapshot", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| } |