2017-11-17 17:48:22 -08:00
|
|
|
# Copyright 2015 The Crashpad Authors. All rights reserved.
|
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
import("../build/crashpad_buildconfig.gni")
|
2018-08-13 19:24:49 -04:00
|
|
|
import("net/tls.gni")
|
2018-05-29 12:51:41 -07:00
|
|
|
|
2018-08-29 09:33:25 -07:00
|
|
|
if (crashpad_is_in_chromium) {
|
|
|
|
import("//build/config/sanitizers/sanitizers.gni")
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_mac) {
|
2018-10-11 14:51:52 -07:00
|
|
|
if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
|
2017-12-18 14:35:55 -08:00
|
|
|
import("//build/config/sysroot.gni")
|
|
|
|
} else {
|
|
|
|
import("//third_party/mini_chromium/mini_chromium/build/sysroot.gni")
|
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
|
|
|
|
action_foreach("mig") {
|
|
|
|
script = "mach/mig.py"
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"$sysroot/usr/include/mach/exc.defs",
|
|
|
|
"$sysroot/usr/include/mach/mach_exc.defs",
|
|
|
|
"$sysroot/usr/include/mach/notify.defs",
|
|
|
|
"mach/child_port.defs",
|
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$target_gen_dir/mach/{{source_name_part}}User.c",
|
|
|
|
"$target_gen_dir/mach/{{source_name_part}}Server.c",
|
|
|
|
"$target_gen_dir/mach/{{source_name_part}}.h",
|
|
|
|
"$target_gen_dir/mach/{{source_name_part}}Server.h",
|
|
|
|
]
|
|
|
|
|
|
|
|
args = [ "{{source}}" ]
|
|
|
|
args += rebase_path(outputs, root_build_dir)
|
2017-12-18 14:35:55 -08:00
|
|
|
if (crashpad_is_in_chromium) {
|
|
|
|
if (!use_system_xcode) {
|
2019-06-07 11:37:56 -07:00
|
|
|
import("//build/config/clang/clang.gni")
|
|
|
|
import("//build/config/mac/mac_sdk.gni")
|
2019-09-05 17:53:01 -07:00
|
|
|
clang_path =
|
|
|
|
rebase_path("$clang_base_path/bin/", root_build_dir) + "clang"
|
2019-06-07 11:37:56 -07:00
|
|
|
mig_path = "$mac_bin_path" + "mig"
|
|
|
|
migcom_path = "$mac_bin_path" + "../libexec/migcom"
|
|
|
|
|
2017-12-18 14:35:55 -08:00
|
|
|
args += [
|
2019-06-07 11:37:56 -07:00
|
|
|
"--clang-path",
|
|
|
|
clang_path,
|
|
|
|
"--mig-path",
|
|
|
|
mig_path,
|
|
|
|
"--migcom-path",
|
|
|
|
migcom_path,
|
2017-12-18 14:35:55 -08:00
|
|
|
]
|
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
2017-12-15 18:49:34 -05:00
|
|
|
if (sysroot != "") {
|
|
|
|
args += [
|
|
|
|
"--sdk",
|
|
|
|
sysroot,
|
|
|
|
]
|
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
args += [
|
|
|
|
"--include",
|
|
|
|
rebase_path("../compat/mac", root_build_dir),
|
|
|
|
]
|
|
|
|
}
|
2020-03-23 14:59:21 -04:00
|
|
|
|
|
|
|
source_set("mig_output") {
|
|
|
|
deps = [ ":mig" ]
|
|
|
|
sources = get_target_outputs(":mig")
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
|
|
# mig output contains unreachable code, which irks -Wunreachable-code.
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
|
|
configs += [ "//build/config/compiler:no_chromium_code" ]
|
|
|
|
}
|
|
|
|
public_configs = [ "..:crashpad_config" ]
|
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static_library("util") {
|
|
|
|
sources = [
|
|
|
|
"file/delimited_file_reader.cc",
|
|
|
|
"file/delimited_file_reader.h",
|
|
|
|
"file/directory_reader.h",
|
|
|
|
"file/file_io.cc",
|
|
|
|
"file/file_io.h",
|
|
|
|
"file/file_reader.cc",
|
|
|
|
"file/file_reader.h",
|
|
|
|
"file/file_seeker.cc",
|
|
|
|
"file/file_seeker.h",
|
|
|
|
"file/file_writer.cc",
|
|
|
|
"file/file_writer.h",
|
|
|
|
"file/filesystem.h",
|
2020-01-28 12:02:55 -08:00
|
|
|
"file/output_stream_file_writer.cc",
|
|
|
|
"file/output_stream_file_writer.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"file/scoped_remove_file.cc",
|
|
|
|
"file/scoped_remove_file.h",
|
|
|
|
"file/string_file.cc",
|
|
|
|
"file/string_file.h",
|
|
|
|
"misc/address_sanitizer.h",
|
|
|
|
"misc/address_types.h",
|
2019-01-03 13:36:02 -05:00
|
|
|
"misc/arraysize.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/as_underlying_type.h",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/clock.h",
|
2018-02-15 10:38:36 -08:00
|
|
|
"misc/elf_note_types.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/from_pointer_cast.h",
|
|
|
|
"misc/implicit_cast.h",
|
|
|
|
"misc/initialization_state.h",
|
|
|
|
"misc/initialization_state_dcheck.cc",
|
|
|
|
"misc/initialization_state_dcheck.h",
|
|
|
|
"misc/lexing.cc",
|
|
|
|
"misc/lexing.h",
|
2019-06-28 15:20:01 -07:00
|
|
|
"misc/memory_sanitizer.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/metrics.cc",
|
|
|
|
"misc/metrics.h",
|
|
|
|
"misc/paths.h",
|
|
|
|
"misc/pdb_structures.cc",
|
|
|
|
"misc/pdb_structures.h",
|
|
|
|
"misc/random_string.cc",
|
|
|
|
"misc/random_string.h",
|
2018-06-11 09:38:24 -07:00
|
|
|
"misc/range_set.cc",
|
|
|
|
"misc/range_set.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/reinterpret_bytes.cc",
|
|
|
|
"misc/reinterpret_bytes.h",
|
|
|
|
"misc/scoped_forbid_return.cc",
|
|
|
|
"misc/scoped_forbid_return.h",
|
|
|
|
"misc/symbolic_constants_common.h",
|
|
|
|
"misc/time.cc",
|
|
|
|
"misc/time.h",
|
|
|
|
"misc/tri_state.h",
|
|
|
|
"misc/uuid.cc",
|
|
|
|
"misc/uuid.h",
|
|
|
|
"misc/zlib.cc",
|
|
|
|
"misc/zlib.h",
|
|
|
|
"net/http_body.cc",
|
|
|
|
"net/http_body.h",
|
|
|
|
"net/http_body_gzip.cc",
|
|
|
|
"net/http_body_gzip.h",
|
|
|
|
"net/http_headers.h",
|
|
|
|
"net/http_multipart_builder.cc",
|
|
|
|
"net/http_multipart_builder.h",
|
|
|
|
"net/http_transport.cc",
|
|
|
|
"net/http_transport.h",
|
|
|
|
"net/url.cc",
|
|
|
|
"net/url.h",
|
|
|
|
"numeric/checked_address_range.cc",
|
|
|
|
"numeric/checked_address_range.h",
|
|
|
|
"numeric/checked_range.h",
|
|
|
|
"numeric/checked_vm_address_range.h",
|
|
|
|
"numeric/in_range_cast.h",
|
|
|
|
"numeric/int128.h",
|
|
|
|
"numeric/safe_assignment.h",
|
2019-04-24 11:22:35 -04:00
|
|
|
"process/process_id.h",
|
2018-12-20 11:12:51 -08:00
|
|
|
"process/process_memory.cc",
|
|
|
|
"process/process_memory.h",
|
|
|
|
"process/process_memory_native.h",
|
|
|
|
"process/process_memory_range.cc",
|
|
|
|
"process/process_memory_range.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"stdlib/aligned_allocator.cc",
|
|
|
|
"stdlib/aligned_allocator.h",
|
|
|
|
"stdlib/map_insert.h",
|
|
|
|
"stdlib/objc.h",
|
|
|
|
"stdlib/string_number_conversion.cc",
|
|
|
|
"stdlib/string_number_conversion.h",
|
|
|
|
"stdlib/strlcpy.cc",
|
|
|
|
"stdlib/strlcpy.h",
|
|
|
|
"stdlib/strnlen.cc",
|
|
|
|
"stdlib/strnlen.h",
|
|
|
|
"stdlib/thread_safe_vector.h",
|
2019-12-06 10:54:44 -08:00
|
|
|
"stream/base94_output_stream.cc",
|
|
|
|
"stream/base94_output_stream.h",
|
2019-12-18 11:33:39 -08:00
|
|
|
"stream/file_encoder.cc",
|
|
|
|
"stream/file_encoder.h",
|
|
|
|
"stream/file_output_stream.cc",
|
|
|
|
"stream/file_output_stream.h",
|
2019-12-12 13:15:05 -08:00
|
|
|
"stream/log_output_stream.cc",
|
|
|
|
"stream/log_output_stream.h",
|
2019-09-05 17:53:01 -07:00
|
|
|
"stream/output_stream_interface.h",
|
|
|
|
"stream/zlib_output_stream.cc",
|
|
|
|
"stream/zlib_output_stream.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"string/split_string.cc",
|
|
|
|
"string/split_string.h",
|
|
|
|
"synchronization/semaphore.h",
|
2018-02-20 10:55:17 -08:00
|
|
|
"thread/stoppable.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"thread/thread.cc",
|
|
|
|
"thread/thread.h",
|
|
|
|
"thread/thread_log_messages.cc",
|
|
|
|
"thread/thread_log_messages.h",
|
|
|
|
"thread/worker_thread.cc",
|
|
|
|
"thread/worker_thread.h",
|
|
|
|
]
|
|
|
|
|
2019-09-05 17:53:01 -07:00
|
|
|
defines = [ "ZLIB_CONST" ]
|
|
|
|
|
2018-04-04 15:12:50 -07:00
|
|
|
if (crashpad_is_posix || crashpad_is_fuchsia) {
|
2017-11-30 09:59:59 -08:00
|
|
|
sources += [
|
|
|
|
"file/directory_reader_posix.cc",
|
|
|
|
"file/file_io_posix.cc",
|
|
|
|
"file/filesystem_posix.cc",
|
|
|
|
"misc/clock_posix.cc",
|
|
|
|
"posix/close_stdio.cc",
|
|
|
|
"posix/close_stdio.h",
|
|
|
|
"posix/scoped_dir.cc",
|
|
|
|
"posix/scoped_dir.h",
|
|
|
|
"posix/scoped_mmap.cc",
|
|
|
|
"posix/scoped_mmap.h",
|
|
|
|
"posix/signals.cc",
|
|
|
|
"posix/signals.h",
|
|
|
|
"synchronization/semaphore_posix.cc",
|
|
|
|
"thread/thread_posix.cc",
|
|
|
|
]
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (!crashpad_is_fuchsia) {
|
2017-11-30 09:59:59 -08:00
|
|
|
sources += [
|
|
|
|
"posix/close_multiple.cc",
|
|
|
|
"posix/close_multiple.h",
|
|
|
|
"posix/double_fork_and_exec.cc",
|
|
|
|
"posix/double_fork_and_exec.h",
|
|
|
|
"posix/drop_privileges.cc",
|
|
|
|
"posix/drop_privileges.h",
|
2017-12-05 15:16:08 -08:00
|
|
|
"posix/process_info.h",
|
2017-11-30 09:59:59 -08:00
|
|
|
|
|
|
|
# These map signals to and from strings. While Fuchsia defines some of
|
|
|
|
# the common SIGx defines, signals are never raised on Fuchsia, so
|
|
|
|
# there's need to include this mapping code.
|
|
|
|
"posix/symbolic_constants_posix.cc",
|
|
|
|
"posix/symbolic_constants_posix.h",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_mac) {
|
2017-11-17 17:48:22 -08:00
|
|
|
sources += [
|
2017-11-28 10:31:13 -08:00
|
|
|
"mac/checked_mach_address_range.h",
|
|
|
|
"mac/launchd.h",
|
|
|
|
"mac/launchd.mm",
|
|
|
|
"mac/mac_util.cc",
|
|
|
|
"mac/mac_util.h",
|
|
|
|
"mac/service_management.cc",
|
|
|
|
"mac/service_management.h",
|
|
|
|
"mac/xattr.cc",
|
|
|
|
"mac/xattr.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"mach/child_port_handshake.cc",
|
|
|
|
"mach/child_port_handshake.h",
|
|
|
|
"mach/child_port_server.cc",
|
|
|
|
"mach/child_port_server.h",
|
|
|
|
"mach/child_port_types.h",
|
|
|
|
"mach/composite_mach_message_server.cc",
|
|
|
|
"mach/composite_mach_message_server.h",
|
|
|
|
"mach/exc_client_variants.cc",
|
|
|
|
"mach/exc_client_variants.h",
|
|
|
|
"mach/exc_server_variants.cc",
|
|
|
|
"mach/exc_server_variants.h",
|
|
|
|
"mach/exception_behaviors.cc",
|
|
|
|
"mach/exception_behaviors.h",
|
|
|
|
"mach/exception_ports.cc",
|
|
|
|
"mach/exception_ports.h",
|
|
|
|
"mach/exception_types.cc",
|
|
|
|
"mach/exception_types.h",
|
|
|
|
"mach/mach_extensions.cc",
|
|
|
|
"mach/mach_extensions.h",
|
|
|
|
"mach/mach_message.cc",
|
|
|
|
"mach/mach_message.h",
|
|
|
|
"mach/mach_message_server.cc",
|
|
|
|
"mach/mach_message_server.h",
|
|
|
|
"mach/notify_server.cc",
|
|
|
|
"mach/notify_server.h",
|
|
|
|
"mach/scoped_task_suspend.cc",
|
|
|
|
"mach/scoped_task_suspend.h",
|
|
|
|
"mach/symbolic_constants_mach.cc",
|
|
|
|
"mach/symbolic_constants_mach.h",
|
|
|
|
"mach/task_for_pid.cc",
|
|
|
|
"mach/task_for_pid.h",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_mac.S",
|
2017-11-28 10:31:13 -08:00
|
|
|
"misc/clock_mac.cc",
|
|
|
|
"misc/paths_mac.cc",
|
|
|
|
"net/http_transport_mac.mm",
|
|
|
|
"posix/process_info_mac.cc",
|
2018-12-20 13:12:55 -08:00
|
|
|
"process/process_memory_mac.cc",
|
|
|
|
"process/process_memory_mac.h",
|
2017-11-28 10:31:13 -08:00
|
|
|
"synchronization/semaphore_mac.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2018-05-30 15:08:18 -07:00
|
|
|
deps = []
|
|
|
|
|
2019-06-18 09:48:52 -07:00
|
|
|
if (crashpad_is_linux || crashpad_is_fuchsia || crashpad_is_android) {
|
2018-04-26 17:21:45 -07:00
|
|
|
sources += [ "net/http_transport_socket.cc" ]
|
2018-08-13 19:24:49 -04:00
|
|
|
if (crashpad_use_boringssl_for_http_transport_socket) {
|
2019-09-10 14:43:56 -07:00
|
|
|
defines += [ "CRASHPAD_USE_BORINGSSL" ]
|
2018-05-30 15:08:18 -07:00
|
|
|
|
2019-10-18 07:28:43 -07:00
|
|
|
if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
|
2018-06-11 09:38:24 -07:00
|
|
|
deps += [ "//third_party/boringssl" ]
|
2018-05-30 15:08:18 -07:00
|
|
|
} else {
|
|
|
|
libs = [
|
|
|
|
"crypto",
|
|
|
|
"ssl",
|
|
|
|
]
|
|
|
|
}
|
2018-05-29 12:51:41 -07:00
|
|
|
}
|
2017-12-21 17:54:12 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
if (crashpad_is_linux || crashpad_is_android) {
|
2018-03-26 17:26:08 -07:00
|
|
|
set_sources_assignment_filter([])
|
2017-12-19 14:21:14 -05:00
|
|
|
sources += [
|
|
|
|
"linux/address_types.h",
|
|
|
|
"linux/auxiliary_vector.cc",
|
|
|
|
"linux/auxiliary_vector.h",
|
|
|
|
"linux/checked_linux_address_range.h",
|
|
|
|
"linux/direct_ptrace_connection.cc",
|
|
|
|
"linux/direct_ptrace_connection.h",
|
2017-12-19 17:13:13 -05:00
|
|
|
"linux/exception_handler_client.cc",
|
|
|
|
"linux/exception_handler_client.h",
|
2018-06-12 08:30:36 -07:00
|
|
|
"linux/exception_handler_protocol.cc",
|
2017-12-19 17:13:13 -05:00
|
|
|
"linux/exception_handler_protocol.h",
|
2017-12-19 14:21:14 -05:00
|
|
|
"linux/exception_information.h",
|
|
|
|
"linux/memory_map.cc",
|
|
|
|
"linux/memory_map.h",
|
|
|
|
"linux/proc_stat_reader.cc",
|
|
|
|
"linux/proc_stat_reader.h",
|
2019-04-29 14:28:53 -07:00
|
|
|
"linux/proc_task_reader.cc",
|
|
|
|
"linux/proc_task_reader.h",
|
2017-12-19 14:21:14 -05:00
|
|
|
"linux/ptrace_broker.cc",
|
|
|
|
"linux/ptrace_broker.h",
|
|
|
|
"linux/ptrace_client.cc",
|
|
|
|
"linux/ptrace_client.h",
|
|
|
|
"linux/ptrace_connection.h",
|
|
|
|
"linux/ptracer.cc",
|
|
|
|
"linux/ptracer.h",
|
2018-12-18 09:17:52 -08:00
|
|
|
"linux/scoped_pr_set_dumpable.cc",
|
|
|
|
"linux/scoped_pr_set_dumpable.h",
|
2018-02-20 13:07:16 -08:00
|
|
|
"linux/scoped_pr_set_ptracer.cc",
|
|
|
|
"linux/scoped_pr_set_ptracer.h",
|
2017-12-19 14:21:14 -05:00
|
|
|
"linux/scoped_ptrace_attach.cc",
|
|
|
|
"linux/scoped_ptrace_attach.h",
|
2019-05-02 13:55:08 -07:00
|
|
|
"linux/socket.cc",
|
|
|
|
"linux/socket.h",
|
2017-12-19 14:21:14 -05:00
|
|
|
"linux/thread_info.cc",
|
|
|
|
"linux/thread_info.h",
|
|
|
|
"linux/traits.h",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_linux.S",
|
2017-12-19 14:21:14 -05:00
|
|
|
"misc/paths_linux.cc",
|
2019-11-06 10:00:13 -08:00
|
|
|
"misc/time_linux.cc",
|
2017-12-19 14:21:14 -05:00
|
|
|
"posix/process_info_linux.cc",
|
|
|
|
"process/process_memory_linux.cc",
|
|
|
|
"process/process_memory_linux.h",
|
2019-08-14 16:13:35 -07:00
|
|
|
"process/process_memory_sanitized.cc",
|
|
|
|
"process/process_memory_sanitized.h",
|
2018-01-16 14:46:29 -08:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_win) {
|
2017-11-28 10:31:13 -08:00
|
|
|
sources += [
|
|
|
|
"file/directory_reader_win.cc",
|
|
|
|
"file/file_io_win.cc",
|
|
|
|
"file/filesystem_win.cc",
|
|
|
|
"misc/clock_win.cc",
|
|
|
|
"misc/paths_win.cc",
|
|
|
|
"misc/time_win.cc",
|
|
|
|
"net/http_transport_win.cc",
|
2018-11-05 13:14:20 -08:00
|
|
|
"process/process_memory_win.cc",
|
|
|
|
"process/process_memory_win.h",
|
2017-11-28 10:31:13 -08:00
|
|
|
"synchronization/semaphore_win.cc",
|
|
|
|
"thread/thread_win.cc",
|
|
|
|
"win/address_types.h",
|
|
|
|
"win/checked_win_address_range.h",
|
|
|
|
"win/command_line.cc",
|
|
|
|
"win/command_line.h",
|
2018-12-12 12:58:24 -08:00
|
|
|
"win/context_wrappers.h",
|
2017-11-28 10:31:13 -08:00
|
|
|
"win/critical_section_with_debug_info.cc",
|
|
|
|
"win/critical_section_with_debug_info.h",
|
|
|
|
"win/exception_handler_server.cc",
|
|
|
|
"win/exception_handler_server.h",
|
|
|
|
"win/get_function.cc",
|
|
|
|
"win/get_function.h",
|
|
|
|
"win/get_module_information.cc",
|
|
|
|
"win/get_module_information.h",
|
|
|
|
"win/handle.cc",
|
|
|
|
"win/handle.h",
|
|
|
|
"win/initial_client_data.cc",
|
|
|
|
"win/initial_client_data.h",
|
2019-12-03 10:20:34 -08:00
|
|
|
"win/loader_lock.cc",
|
|
|
|
"win/loader_lock.h",
|
2017-11-28 10:31:13 -08:00
|
|
|
"win/module_version.cc",
|
|
|
|
"win/module_version.h",
|
|
|
|
"win/nt_internals.cc",
|
|
|
|
"win/nt_internals.h",
|
|
|
|
"win/ntstatus_logging.cc",
|
|
|
|
"win/ntstatus_logging.h",
|
|
|
|
"win/process_info.cc",
|
|
|
|
"win/process_info.h",
|
|
|
|
"win/process_structs.h",
|
|
|
|
"win/registration_protocol_win.cc",
|
|
|
|
"win/registration_protocol_win.h",
|
|
|
|
"win/safe_terminate_process.h",
|
|
|
|
"win/scoped_handle.cc",
|
|
|
|
"win/scoped_handle.h",
|
|
|
|
"win/scoped_local_alloc.cc",
|
|
|
|
"win/scoped_local_alloc.h",
|
|
|
|
"win/scoped_process_suspend.cc",
|
|
|
|
"win/scoped_process_suspend.h",
|
|
|
|
"win/scoped_set_event.cc",
|
|
|
|
"win/scoped_set_event.h",
|
|
|
|
"win/session_end_watcher.cc",
|
|
|
|
"win/session_end_watcher.h",
|
|
|
|
"win/termination_codes.h",
|
|
|
|
"win/xp_compat.h",
|
|
|
|
]
|
|
|
|
|
2017-11-17 17:48:22 -08:00
|
|
|
# There's no ml.exe yet in cross builds, so provide broken-but-not-asm
|
|
|
|
# versions of the functions defined in .asm files.
|
2017-11-20 16:57:43 -05:00
|
|
|
#
|
2017-11-17 17:48:22 -08:00
|
|
|
# CaptureContext() in capture_context_broken.cc just calls CHECK(false).
|
|
|
|
# SafeTerminateProcess() in safe_terminate_process.cc just calls regular
|
|
|
|
# TerminateProcess() without the protection against broken third-party
|
|
|
|
# patching of TerminateProcess().
|
2017-11-20 16:57:43 -05:00
|
|
|
#
|
|
|
|
# TODO(thakis): Use the .asm file in cross builds somehow,
|
|
|
|
# https://crbug.com/762167.
|
2017-11-17 17:48:22 -08:00
|
|
|
if (host_os == "win") {
|
2018-12-12 12:58:24 -08:00
|
|
|
if (current_cpu != "arm64") {
|
|
|
|
sources += [
|
|
|
|
"misc/capture_context_win.asm",
|
|
|
|
"win/safe_terminate_process.asm",
|
|
|
|
]
|
|
|
|
} else {
|
2019-07-17 16:07:23 +02:00
|
|
|
# Most Crashpad builds use Microsoft's armasm64.exe macro assembler for
|
|
|
|
# .asm source files. When building in Chromium, clang-cl is used as the
|
|
|
|
# assembler instead. Since the two assemblers recognize different
|
|
|
|
# assembly dialects, the same .asm file can't be used for each. As a
|
|
|
|
# workaround, use a prebuilt .obj file when the Microsoft-dialect
|
|
|
|
# assembler isn't available.
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
|
|
sources += [ "misc/capture_context_win_arm64.obj" ]
|
|
|
|
} else {
|
|
|
|
sources += [ "misc/capture_context_win_arm64.asm" ]
|
|
|
|
}
|
2018-12-12 12:58:24 -08:00
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
} else {
|
|
|
|
sources += [
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_broken.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
"win/safe_terminate_process_broken.cc",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_fuchsia) {
|
2017-12-06 10:08:11 -08:00
|
|
|
sources += [
|
2018-04-10 14:25:06 -07:00
|
|
|
"fuchsia/koid_utilities.cc",
|
|
|
|
"fuchsia/koid_utilities.h",
|
2018-04-13 09:42:19 -07:00
|
|
|
"fuchsia/scoped_task_suspend.cc",
|
|
|
|
"fuchsia/scoped_task_suspend.h",
|
2018-04-06 15:13:03 -07:00
|
|
|
"misc/capture_context_fuchsia.S",
|
2017-12-06 10:08:11 -08:00
|
|
|
"misc/paths_fuchsia.cc",
|
2018-01-16 14:46:29 -08:00
|
|
|
"process/process_memory_fuchsia.cc",
|
|
|
|
"process/process_memory_fuchsia.h",
|
2017-12-06 10:08:11 -08:00
|
|
|
]
|
2017-12-05 10:52:44 -08:00
|
|
|
}
|
|
|
|
|
2017-11-28 10:31:13 -08:00
|
|
|
public_configs = [ "..:crashpad_config" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
|
2017-11-29 18:04:25 -05:00
|
|
|
# Include generated files starting with "util".
|
2018-10-11 15:56:22 -07:00
|
|
|
if (crashpad_is_in_fuchsia) {
|
|
|
|
include_dirs = [ "$root_gen_dir/third_party/crashpad" ]
|
|
|
|
} else {
|
|
|
|
include_dirs = [ "$root_gen_dir/third_party/crashpad/crashpad" ]
|
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
|
2020-01-28 12:02:55 -08:00
|
|
|
public_deps = [
|
|
|
|
"../compat",
|
2017-11-28 10:31:13 -08:00
|
|
|
"../third_party/zlib",
|
2017-11-17 17:48:22 -08:00
|
|
|
]
|
|
|
|
|
2020-01-28 12:02:55 -08:00
|
|
|
deps += [ "../third_party/mini_chromium:base" ]
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_mac) {
|
2017-11-17 17:48:22 -08:00
|
|
|
libs = [
|
|
|
|
"bsm",
|
|
|
|
"CoreFoundation.framework",
|
|
|
|
"Foundation.framework",
|
|
|
|
"IOKit.framework",
|
|
|
|
]
|
2019-02-26 11:13:20 -05:00
|
|
|
deps += [
|
2020-03-23 14:59:21 -04:00
|
|
|
":mig_output",
|
2019-02-26 11:13:20 -05:00
|
|
|
"../third_party/apple_cf:apple_cf",
|
|
|
|
]
|
2017-12-06 15:36:31 -08:00
|
|
|
include_dirs += [ "$root_build_dir/gen" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_win) {
|
2018-02-06 10:57:23 -08:00
|
|
|
libs = [
|
|
|
|
"user32.lib",
|
2018-03-09 13:20:09 -08:00
|
|
|
|
|
|
|
# TODO(jperaza): version.lib is needed for Windows 7 compatibility.
|
|
|
|
# mincore.lib may be linked against instead when targeting Windows 8+.
|
|
|
|
"version.lib",
|
|
|
|
|
2018-02-06 10:57:23 -08:00
|
|
|
"winhttp.lib",
|
2017-11-17 17:48:22 -08:00
|
|
|
]
|
|
|
|
|
2018-02-27 15:29:38 -08:00
|
|
|
cflags = [ "/wd4201" ] # nonstandard extension used: nameless struct/union.
|
|
|
|
|
2017-11-17 17:48:22 -08:00
|
|
|
if (current_cpu == "x86") {
|
|
|
|
asmflags = [ "/safeseh" ]
|
|
|
|
}
|
|
|
|
}
|
2018-07-30 15:50:17 -07:00
|
|
|
|
|
|
|
if (crashpad_is_fuchsia) {
|
2019-04-05 15:45:15 -07:00
|
|
|
public_deps += [ "../third_party/fuchsia" ]
|
2018-07-30 15:50:17 -07:00
|
|
|
}
|
2019-05-02 13:55:08 -07:00
|
|
|
|
|
|
|
if (crashpad_is_android || crashpad_is_linux) {
|
|
|
|
deps += [ "../third_party/lss" ]
|
|
|
|
}
|
2020-02-21 20:40:08 -08:00
|
|
|
|
|
|
|
configs += [ "..:disable_ubsan" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
|
|
|
|
2018-05-10 22:58:14 -07:00
|
|
|
if (!crashpad_is_android) {
|
|
|
|
crashpad_executable("http_transport_test_server") {
|
|
|
|
testonly = true
|
2020-01-23 08:00:33 -05:00
|
|
|
sources = [ "net/http_transport_test_server.cc" ]
|
2018-04-18 12:49:04 -07:00
|
|
|
|
2018-05-10 22:58:14 -07:00
|
|
|
deps = [
|
|
|
|
":util",
|
|
|
|
"../third_party/cpp-httplib",
|
|
|
|
"../third_party/mini_chromium:base",
|
|
|
|
"../third_party/zlib",
|
|
|
|
"../tools:tool_support",
|
2018-04-24 13:02:29 -07:00
|
|
|
]
|
2018-04-18 12:49:04 -07:00
|
|
|
|
2018-05-10 22:58:14 -07:00
|
|
|
if (crashpad_is_standalone) {
|
2018-05-29 12:51:41 -07:00
|
|
|
remove_configs = [ "//third_party/mini_chromium/mini_chromium/build:Wexit_time_destructors" ]
|
2018-05-10 22:58:14 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
if (crashpad_is_win) {
|
|
|
|
libs = [ "ws2_32.lib" ]
|
|
|
|
}
|
2018-05-29 12:51:41 -07:00
|
|
|
|
2018-08-13 19:24:49 -04:00
|
|
|
if (crashpad_use_boringssl_for_http_transport_socket) {
|
2018-05-29 12:51:41 -07:00
|
|
|
defines = [ "CRASHPAD_USE_BORINGSSL" ]
|
2018-05-30 15:08:18 -07:00
|
|
|
|
2019-10-18 07:28:43 -07:00
|
|
|
if (crashpad_is_in_chromium || crashpad_is_in_fuchsia) {
|
2018-06-11 09:38:24 -07:00
|
|
|
deps += [ "//third_party/boringssl" ]
|
2018-05-30 15:08:18 -07:00
|
|
|
} else {
|
|
|
|
libs = [
|
|
|
|
"crypto",
|
|
|
|
"ssl",
|
|
|
|
]
|
|
|
|
}
|
2018-05-29 12:51:41 -07:00
|
|
|
}
|
2018-04-18 12:49:04 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-11-17 17:48:22 -08:00
|
|
|
source_set("util_test") {
|
|
|
|
testonly = true
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"file/delimited_file_reader_test.cc",
|
|
|
|
"file/directory_reader_test.cc",
|
|
|
|
"file/file_io_test.cc",
|
|
|
|
"file/file_reader_test.cc",
|
|
|
|
"file/filesystem_test.cc",
|
|
|
|
"file/string_file_test.cc",
|
2019-01-03 13:36:02 -05:00
|
|
|
"misc/arraysize_test.cc",
|
2018-04-06 15:13:03 -07:00
|
|
|
"misc/capture_context_test.cc",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_test_util.h",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/clock_test.cc",
|
|
|
|
"misc/from_pointer_cast_test.cc",
|
|
|
|
"misc/initialization_state_dcheck_test.cc",
|
|
|
|
"misc/initialization_state_test.cc",
|
|
|
|
"misc/paths_test.cc",
|
|
|
|
"misc/random_string_test.cc",
|
2018-06-11 09:38:24 -07:00
|
|
|
"misc/range_set_test.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
"misc/reinterpret_bytes_test.cc",
|
|
|
|
"misc/scoped_forbid_return_test.cc",
|
|
|
|
"misc/time_test.cc",
|
|
|
|
"misc/uuid_test.cc",
|
|
|
|
"net/http_body_gzip_test.cc",
|
|
|
|
"net/http_body_test.cc",
|
|
|
|
"net/http_body_test_util.cc",
|
|
|
|
"net/http_body_test_util.h",
|
|
|
|
"net/http_multipart_builder_test.cc",
|
|
|
|
"net/url_test.cc",
|
|
|
|
"numeric/checked_address_range_test.cc",
|
|
|
|
"numeric/checked_range_test.cc",
|
|
|
|
"numeric/in_range_cast_test.cc",
|
|
|
|
"numeric/int128_test.cc",
|
2018-12-20 11:12:51 -08:00
|
|
|
"process/process_memory_range_test.cc",
|
|
|
|
"process/process_memory_test.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
"stdlib/aligned_allocator_test.cc",
|
|
|
|
"stdlib/map_insert_test.cc",
|
|
|
|
"stdlib/string_number_conversion_test.cc",
|
|
|
|
"stdlib/strlcpy_test.cc",
|
|
|
|
"stdlib/strnlen_test.cc",
|
|
|
|
"stdlib/thread_safe_vector_test.cc",
|
2019-12-06 10:54:44 -08:00
|
|
|
"stream/base94_output_stream_test.cc",
|
2019-12-18 11:33:39 -08:00
|
|
|
"stream/file_encoder_test.cc",
|
2019-12-12 13:15:05 -08:00
|
|
|
"stream/log_output_stream_test.cc",
|
2019-09-05 17:53:01 -07:00
|
|
|
"stream/test_output_stream.cc",
|
|
|
|
"stream/test_output_stream.h",
|
|
|
|
"stream/zlib_output_stream_test.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
"string/split_string_test.cc",
|
|
|
|
"synchronization/semaphore_test.cc",
|
|
|
|
"thread/thread_log_messages_test.cc",
|
|
|
|
"thread/thread_test.cc",
|
|
|
|
"thread/worker_thread_test.cc",
|
|
|
|
]
|
|
|
|
|
2018-04-26 17:21:45 -07:00
|
|
|
if (!crashpad_is_android) {
|
|
|
|
# Android requires an HTTPTransport implementation.
|
2017-12-05 15:16:08 -08:00
|
|
|
sources += [ "net/http_transport_test.cc" ]
|
|
|
|
}
|
|
|
|
|
2018-04-04 15:12:50 -07:00
|
|
|
if (crashpad_is_posix || crashpad_is_fuchsia) {
|
2017-12-19 15:31:04 -08:00
|
|
|
if (!crashpad_is_fuchsia) {
|
2017-12-05 15:16:08 -08:00
|
|
|
sources += [
|
|
|
|
"posix/process_info_test.cc",
|
|
|
|
"posix/signals_test.cc",
|
|
|
|
"posix/symbolic_constants_posix_test.cc",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
sources += [ "posix/scoped_mmap_test.cc" ]
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_mac) {
|
2017-11-17 17:48:22 -08:00
|
|
|
sources += [
|
2017-11-28 10:31:13 -08:00
|
|
|
"mac/launchd_test.mm",
|
|
|
|
"mac/mac_util_test.mm",
|
|
|
|
"mac/service_management_test.mm",
|
|
|
|
"mac/xattr_test.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
"mach/child_port_handshake_test.cc",
|
|
|
|
"mach/child_port_server_test.cc",
|
|
|
|
"mach/composite_mach_message_server_test.cc",
|
|
|
|
"mach/exc_client_variants_test.cc",
|
|
|
|
"mach/exc_server_variants_test.cc",
|
|
|
|
"mach/exception_behaviors_test.cc",
|
|
|
|
"mach/exception_ports_test.cc",
|
|
|
|
"mach/exception_types_test.cc",
|
|
|
|
"mach/mach_extensions_test.cc",
|
|
|
|
"mach/mach_message_server_test.cc",
|
|
|
|
"mach/mach_message_test.cc",
|
|
|
|
"mach/notify_server_test.cc",
|
|
|
|
"mach/scoped_task_suspend_test.cc",
|
|
|
|
"mach/symbolic_constants_mach_test.cc",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_test_util_mac.cc",
|
2018-12-20 13:12:55 -08:00
|
|
|
"process/process_memory_mac_test.cc",
|
2017-11-17 17:48:22 -08:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-12-21 17:54:12 -05:00
|
|
|
if (crashpad_is_linux || crashpad_is_android) {
|
2018-03-26 17:26:08 -07:00
|
|
|
set_sources_assignment_filter([])
|
2017-12-19 14:21:14 -05:00
|
|
|
sources += [
|
|
|
|
"linux/auxiliary_vector_test.cc",
|
|
|
|
"linux/memory_map_test.cc",
|
|
|
|
"linux/proc_stat_reader_test.cc",
|
2019-04-29 14:28:53 -07:00
|
|
|
"linux/proc_task_reader_test.cc",
|
2017-12-19 14:21:14 -05:00
|
|
|
"linux/ptrace_broker_test.cc",
|
|
|
|
"linux/ptracer_test.cc",
|
|
|
|
"linux/scoped_ptrace_attach_test.cc",
|
2019-05-02 13:55:08 -07:00
|
|
|
"linux/socket_test.cc",
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_test_util_linux.cc",
|
2019-08-14 16:13:35 -07:00
|
|
|
"process/process_memory_sanitized_test.cc",
|
2018-01-16 14:46:29 -08:00
|
|
|
]
|
|
|
|
}
|
2017-12-19 14:21:14 -05:00
|
|
|
|
2018-04-06 15:13:03 -07:00
|
|
|
if (crashpad_is_fuchsia) {
|
|
|
|
sources += [ "misc/capture_context_test_util_fuchsia.cc" ]
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_win) {
|
2017-11-28 10:31:13 -08:00
|
|
|
sources += [
|
2018-02-08 16:25:22 -08:00
|
|
|
"misc/capture_context_test_util_win.cc",
|
2017-11-28 10:31:13 -08:00
|
|
|
"win/command_line_test.cc",
|
|
|
|
"win/critical_section_with_debug_info_test.cc",
|
|
|
|
"win/exception_handler_server_test.cc",
|
|
|
|
"win/get_function_test.cc",
|
|
|
|
"win/handle_test.cc",
|
|
|
|
"win/initial_client_data_test.cc",
|
2019-12-03 10:20:34 -08:00
|
|
|
"win/loader_lock_test.cc",
|
2017-11-28 10:31:13 -08:00
|
|
|
"win/process_info_test.cc",
|
|
|
|
"win/registration_protocol_win_test.cc",
|
|
|
|
"win/safe_terminate_process_test.cc",
|
|
|
|
"win/scoped_process_suspend_test.cc",
|
|
|
|
"win/session_end_watcher_test.cc",
|
|
|
|
]
|
2018-08-29 09:33:25 -07:00
|
|
|
|
2018-09-26 17:54:38 +02:00
|
|
|
if (crashpad_is_in_chromium && is_asan && is_component_build) {
|
2018-08-29 09:33:25 -07:00
|
|
|
# TODO(crbug.com/856174): Re-enable these once Windows ASan is fixed.
|
|
|
|
sources -= [ "stdlib/string_number_conversion_test.cc" ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-01-23 08:00:33 -05:00
|
|
|
data = [ "net/testdata/" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
|
|
|
|
deps = [
|
|
|
|
":util",
|
2017-11-28 10:31:13 -08:00
|
|
|
"../client",
|
|
|
|
"../compat",
|
|
|
|
"../test",
|
2017-12-18 14:35:55 -08:00
|
|
|
"../third_party/gtest:gmock",
|
|
|
|
"../third_party/gtest:gtest",
|
|
|
|
"../third_party/mini_chromium:base",
|
2017-11-28 10:31:13 -08:00
|
|
|
"../third_party/zlib",
|
2017-11-17 17:48:22 -08:00
|
|
|
]
|
|
|
|
|
2019-04-29 14:28:53 -07:00
|
|
|
if (crashpad_is_android || crashpad_is_linux) {
|
|
|
|
deps += [ "../third_party/lss" ]
|
|
|
|
}
|
|
|
|
|
2018-05-10 22:58:14 -07:00
|
|
|
if (!crashpad_is_android) {
|
2020-01-23 08:00:33 -05:00
|
|
|
data_deps = [ ":http_transport_test_server" ]
|
2018-05-29 12:51:41 -07:00
|
|
|
|
2018-08-13 19:24:49 -04:00
|
|
|
if (crashpad_use_boringssl_for_http_transport_socket) {
|
2018-05-29 12:51:41 -07:00
|
|
|
defines = [ "CRASHPAD_USE_BORINGSSL" ]
|
|
|
|
}
|
2018-05-10 22:58:14 -07:00
|
|
|
}
|
2018-04-18 12:49:04 -07:00
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_mac) {
|
2017-11-17 17:48:22 -08:00
|
|
|
libs = [ "Foundation.framework" ]
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_win) {
|
2018-02-06 10:57:23 -08:00
|
|
|
libs = [
|
|
|
|
"rpcrt4.lib",
|
|
|
|
"dbghelp.lib",
|
|
|
|
]
|
2018-04-18 12:49:04 -07:00
|
|
|
data_deps += [
|
2019-12-03 10:20:34 -08:00
|
|
|
":crashpad_util_test_loader_lock_test",
|
2017-11-17 17:48:22 -08:00
|
|
|
":crashpad_util_test_process_info_test_child",
|
|
|
|
":crashpad_util_test_safe_terminate_process_test_child",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-12-19 15:31:04 -08:00
|
|
|
if (crashpad_is_win) {
|
2018-03-21 19:18:07 -07:00
|
|
|
crashpad_executable("crashpad_util_test_process_info_test_child") {
|
2017-11-17 17:48:22 -08:00
|
|
|
testonly = true
|
2020-01-23 08:00:33 -05:00
|
|
|
sources = [ "win/process_info_test_child.cc" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
|
|
|
|
2018-03-21 19:18:07 -07:00
|
|
|
crashpad_executable("crashpad_util_test_safe_terminate_process_test_child") {
|
2017-11-17 17:48:22 -08:00
|
|
|
testonly = true
|
2020-01-23 08:00:33 -05:00
|
|
|
sources = [ "win/safe_terminate_process_test_child.cc" ]
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|
2019-12-03 10:20:34 -08:00
|
|
|
|
|
|
|
crashpad_loadable_module("crashpad_util_test_loader_lock_test") {
|
|
|
|
testonly = true
|
2020-01-23 08:00:33 -05:00
|
|
|
sources = [ "win/loader_lock_test_dll.cc" ]
|
|
|
|
deps = [ ":util" ]
|
2019-12-03 10:20:34 -08:00
|
|
|
}
|
2017-11-17 17:48:22 -08:00
|
|
|
}
|