diff --git a/compat/BUILD.gn b/compat/BUILD.gn index 52eda78b..6c81e70f 100644 --- a/compat/BUILD.gn +++ b/compat/BUILD.gn @@ -21,10 +21,14 @@ config("compat_config") { include_dirs += [ "mac" ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { include_dirs += [ "linux" ] } + if (crashpad_is_android) { + include_dirs += [ "android" ] + } + if (crashpad_is_win) { include_dirs += [ "win" ] } else { @@ -61,13 +65,29 @@ compat_target("compat") { sources += [ "non_mac/mach/mach.h" ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/signal.h", "linux/sys/ptrace.h", ] } + if (crashpad_is_android) { + sources += [ + "android/elf.h", + "android/linux/elf.h", + "android/linux/prctl.h", + "android/linux/ptrace.h", + "android/sched.h", + "android/sys/epoll.cc", + "android/sys/epoll.h", + "android/sys/mman.cc", + "android/sys/mman.h", + "android/sys/syscall.h", + "android/sys/user.h", + ] + } + if (crashpad_is_win) { sources += [ "win/getopt.h", diff --git a/handler/BUILD.gn b/handler/BUILD.gn index 71037bb0..9c337697 100644 --- a/handler/BUILD.gn +++ b/handler/BUILD.gn @@ -37,7 +37,7 @@ static_library("handler") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/exception_handler_server.cc", "linux/exception_handler_server.h", @@ -89,7 +89,7 @@ source_set("handler_test") { "minidump_to_upload_parameters_test.cc", ] - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/exception_handler_server_test.cc" ] } diff --git a/snapshot/BUILD.gn b/snapshot/BUILD.gn index 665620fd..306610f5 100644 --- a/snapshot/BUILD.gn +++ b/snapshot/BUILD.gn @@ -98,7 +98,7 @@ static_library("snapshot") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "elf/elf_dynamic_array_reader.cc", "elf/elf_dynamic_array_reader.h", @@ -252,7 +252,7 @@ static_library("test_support") { config("snapshot_test_link") { visibility = [ ":*" ] - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { # There’s no way to make the link depend on this file. “inputs” doesn’t have # the intended effect in a config. https://crbug.com/781858, # https://crbug.com/796187. @@ -283,7 +283,7 @@ source_set("snapshot_test") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "elf/elf_image_reader_test.cc", "elf/elf_image_reader_test_note.S", @@ -345,7 +345,7 @@ source_set("snapshot_test") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { libs = [ "dl" ] } diff --git a/test/BUILD.gn b/test/BUILD.gn index b8e11d00..2b7991e2 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -65,7 +65,7 @@ static_library("test") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/fake_ptrace_connection.cc", "linux/fake_ptrace_connection.h", diff --git a/third_party/gtest/BUILD.gn b/third_party/gtest/BUILD.gn index d2702315..d6160ef1 100644 --- a/third_party/gtest/BUILD.gn +++ b/third_party/gtest/BUILD.gn @@ -90,9 +90,7 @@ if (crashpad_is_in_chromium) { ] sources -= [ "gtest/googletest/src/gtest-all.cc" ] public_configs = [ ":gtest_public_config" ] - configs -= [ - "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", - ] + configs -= [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ] configs += [ ":gtest_private_config" ] } @@ -129,9 +127,7 @@ if (crashpad_is_in_chromium) { "gtest/googletest/test/production.cc", "gtest/googletest/test/production.h", ] - configs -= [ - "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", - ] + configs -= [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ] configs += [ ":gtest_private_config" ] deps = [ ":gtest", @@ -173,9 +169,7 @@ if (crashpad_is_in_chromium) { "gtest/googletest/test/gtest-param-test_test.cc", "gtest/googletest/test/gtest-param-test_test.h", ] - configs -= [ - "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", - ] + configs -= [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ] configs += [ ":gtest_private_config" ] deps = [ ":gtest", @@ -303,9 +297,7 @@ if (crashpad_is_in_chromium) { ] sources -= [ "gtest/googlemock/src/gmock-all.cc" ] public_configs = [ ":gmock_public_config" ] - configs -= [ - "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", - ] + configs -= [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ] configs += [ ":gmock_private_config" ] deps = [ ":gtest", @@ -378,9 +370,7 @@ if (crashpad_is_in_chromium) { sources = [ "gtest/googlemock/test/gmock_stress_test.cc", ] - configs -= [ - "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors", - ] + configs -= [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ] configs += [ ":gmock_private_config" ] deps = [ ":gmock", diff --git a/util/BUILD.gn b/util/BUILD.gn index 9a4970fd..3008a6e7 100644 --- a/util/BUILD.gn +++ b/util/BUILD.gn @@ -241,6 +241,10 @@ static_library("util") { } if (crashpad_is_linux) { + sources += [ "net/http_transport_libcurl.cc" ] + } + + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/address_types.h", "linux/auxiliary_vector.cc", @@ -269,7 +273,6 @@ static_library("util") { "linux/thread_info.h", "linux/traits.h", "misc/paths_linux.cc", - "net/http_transport_libcurl.cc", "posix/process_info_linux.cc", "process/process_memory_linux.cc", "process/process_memory_linux.h", @@ -450,11 +453,16 @@ source_set("util_test") { "thread/worker_thread_test.cc", ] - if (!crashpad_is_fuchsia) { - # TODO(scottmg): This requires an implementation of MultiprocessExec for - # testing, and a solution to http_transport_test_server.py -- either a port - # to non-Python, or method of forwarding those requests back to the builder + if (!crashpad_is_android && !crashpad_is_fuchsia) { + # Android and Fuchsia will each require an HTTPTransport implementation + # (libcurl isn’t in either’s SDK) and a solution to + # http_transport_test_server.py, because Python isn’t available on either. + # The latter could be ported to non-Python, or the test server could run on + # the build host with a method to forward requests from the device to the # host. + # + # TODO(scottmg): Fuchsia will also require an implementation of + # MultiprocessExec for testing. sources += [ "net/http_transport_test.cc" ] } @@ -493,7 +501,7 @@ source_set("util_test") { ] } - if (crashpad_is_linux) { + if (crashpad_is_linux || crashpad_is_android) { sources += [ "linux/auxiliary_vector_test.cc", "linux/memory_map_test.cc",