# Copyright 2015 The Crashpad Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("../build/crashpad_buildconfig.gni") crashpad_static_library("client") { sources = [ "crashpad_client.h", "prune_crash_reports.cc", "prune_crash_reports.h", "simulate_crash.h", ] if (crashpad_is_mac) { sources += [ "crashpad_client_mac.cc", "simulate_crash_mac.cc", "simulate_crash_mac.h", ] } if (crashpad_is_ios) { sources += [ "crashpad_client_ios.cc", "ios_handler/exception_processor.h", "ios_handler/exception_processor.mm", "ios_handler/in_process_handler.cc", "ios_handler/in_process_handler.h", "ios_handler/in_process_intermediate_dump_handler.cc", "ios_handler/in_process_intermediate_dump_handler.h", "ios_handler/prune_intermediate_dumps_and_crash_reports_thread.cc", "ios_handler/prune_intermediate_dumps_and_crash_reports_thread.h", "simulate_crash_ios.h", "upload_behavior_ios.h", ] } if (crashpad_is_linux || crashpad_is_android) { sources += [ "crashpad_client_linux.cc", "simulate_crash_linux.h", ] } if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) { sources += [ "client_argv_handling.cc", "client_argv_handling.h", ] } if (crashpad_is_win) { sources += [ "crashpad_client_win.cc", "simulate_crash_win.h", ] } if (crashpad_is_fuchsia) { sources += [ "crashpad_client_fuchsia.cc" ] } public_configs = [ "..:crashpad_config" ] public_deps = [ ":common", "$mini_chromium_source_parent:base", "../util", ] deps = [ ":common", "$mini_chromium_source_parent:chromeos_buildflags", ] if (crashpad_is_win) { libs = [ "rpcrt4.lib" ] cflags = [ "/wd4201" ] # nonstandard extension used : nameless struct/union } if (crashpad_is_apple) { deps += [ "../build:apple_enable_arc" ] } if (crashpad_is_ios) { deps += [ "../handler:common", "../minidump", "../snapshot", ] } if (crashpad_is_linux || crashpad_is_android) { deps += [ "../third_party/lss" ] } if (crashpad_is_fuchsia) { deps += [ "../third_party/fuchsia" ] if (crashpad_is_in_fuchsia) { deps += [ "//sdk/lib/fdio" ] } } } static_library("common") { sources = [ "annotation.cc", "annotation.h", "annotation_list.cc", "annotation_list.h", "crash_report_database.cc", "crash_report_database.h", "crashpad_info.cc", "crashpad_info.h", "length_delimited_ring_buffer.h", "ring_buffer_annotation.h", "settings.cc", "settings.h", "simple_address_range_bag.h", "simple_string_dictionary.h", ] if (crashpad_is_apple) { sources += [ "crash_report_database_mac.mm" ] } if (crashpad_is_win) { sources += [ "crash_report_database_win.cc" ] } if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) { sources += [ "crash_report_database_generic.cc", "crashpad_info_note.S", ] } public_configs = [ "..:crashpad_config" ] public_deps = [ "$mini_chromium_source_parent:base", "../util", ] deps = [ "../util" ] configs += [ "../build:flock_always_supported_defines" ] if (crashpad_is_apple) { deps += [ "../build:apple_enable_arc" ] } } crashpad_executable("ring_buffer_annotation_load_test") { testonly = true sources = [ "ring_buffer_annotation_load_test_main.cc" ] deps = [ ":client", "$mini_chromium_source_parent:base", "../tools:tool_support", ] } source_set("client_test") { testonly = true sources = [ "annotation_list_test.cc", "annotation_test.cc", "crash_report_database_test.cc", "crashpad_info_test.cc", "length_delimited_ring_buffer_test.cc", "prune_crash_reports_test.cc", "ring_buffer_annotation_test.cc", "settings_test.cc", "simple_address_range_bag_test.cc", "simple_string_dictionary_test.cc", ] if (crashpad_is_mac) { sources += [ "simulate_crash_mac_test.cc" ] } if (crashpad_is_win) { sources += [ "crashpad_client_win_test.cc" ] } if (crashpad_is_ios) { sources += [ "crashpad_client_ios_test.mm", "ios_handler/exception_processor_test.mm", "ios_handler/in_process_handler_test.cc", "ios_handler/in_process_intermediate_dump_handler_test.cc", ] } if (crashpad_is_linux || crashpad_is_android) { sources += [ "crashpad_client_linux_test.cc" ] } deps = [ ":client", "$mini_chromium_source_parent:base", "../compat", "../snapshot", "../test", "../third_party/googletest:googlemock", "../third_party/googletest:googletest", "../util", ] if (!crashpad_is_ios && !crashpad_is_fuchsia) { data_deps = [ "../handler:crashpad_handler" ] } if (crashpad_is_apple) { deps += [ "../build:apple_enable_arc" ] } if (crashpad_is_win) { data_deps += [ "../handler:crashpad_handler_console", "../handler/win/wer:crashpad_wer_handler", ] } } if (crashpad_is_linux || crashpad_is_android) { source_set("pthread_create") { sources = [ "pthread_create_linux.cc" ] deps = [ ":client" ] } }