crashpad/compat/BUILD.gn
Scott Graham 1c77abe909 fuchsia: Centralize disabling of Wconversion
Because of the multiple-worlds building of the Crashpad code in the
Fuchsia tree (with the Fuchsia BUILDCONFIG.gn in particular) there's no
good location to globally disable Wconversion for all of crashpad.

This can be somewhat-improved by using a GN template
crashpad_static_library() similar to the existing crashpad_executable()
template.

Includes mini_chromium DEPS roll:
68da43e Fix a couple trucation warnings
88ce866 build: set include dirs

Bug: fuchsia:58162
Change-Id: I638fcf858c35b9a858ca2c410636f8c99603aed2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2411131
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-09-16 22:25:10 +00:00

181 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.
import("../build/crashpad_buildconfig.gni")
if (crashpad_is_in_chromium) {
# Prevent Chromium source assignment filters from being inherited.
set_sources_assignment_filter([])
}
config("compat_config") {
include_dirs = []
if (crashpad_is_mac || crashpad_is_ios) {
include_dirs += [ "mac" ]
} else {
include_dirs += [ "non_mac" ]
}
if (crashpad_is_ios) {
include_dirs += [ "ios" ]
}
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 {
include_dirs += [ "non_win" ]
}
if (!crashpad_is_linux && !crashpad_is_android && !crashpad_is_fuchsia) {
include_dirs += [ "non_elf" ]
}
}
template("compat_target") {
if (crashpad_is_mac || crashpad_is_ios) {
# There are no sources to compile, which doesnt mix will with a
# static_library.
group(target_name) {
forward_variables_from(invoker, "*")
not_needed([ "configs" ])
}
} else {
crashpad_static_library(target_name) {
forward_variables_from(invoker, "*", [ "configs" ])
if (!defined(configs)) {
configs = []
}
if (defined(invoker.configs)) {
configs += invoker.configs
}
}
}
}
compat_target("compat") {
sources = []
if (crashpad_is_mac || crashpad_is_ios) {
sources += [
"mac/Availability.h",
"mac/AvailabilityVersions.h",
"mac/kern/exc_resource.h",
"mac/mach-o/loader.h",
"mac/mach/i386/thread_state.h",
"mac/mach/mach.h",
"mac/sys/resource.h",
]
} else {
sources += [
"non_mac/mach-o/loader.h",
"non_mac/mach/mach.h",
"non_mac/mach/machine.h",
"non_mac/mach/vm_prot.h",
]
}
if (crashpad_is_ios) {
sources += [
"ios/mach/exc.defs",
"ios/mach/mach_exc.defs",
"ios/mach/mach_types.defs",
"ios/mach/machine/machine_types.defs",
"ios/mach/std_types.defs",
]
}
if (crashpad_is_linux || crashpad_is_android) {
sources += [
"linux/signal.h",
"linux/sys/mman.h",
"linux/sys/mman_memfd_create.cc",
"linux/sys/ptrace.h",
"linux/sys/user.h",
]
}
if (crashpad_is_android) {
sources += [
"android/dlfcn_internal.cc",
"android/dlfcn_internal.h",
"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.h",
"android/sys/mman_mmap.cc",
"android/sys/syscall.h",
"android/sys/user.h",
]
}
if (crashpad_is_win) {
sources += [
"win/getopt.h",
"win/strings.cc",
"win/strings.h",
"win/sys/types.h",
"win/time.cc",
"win/time.h",
"win/winbase.h",
"win/winnt.h",
"win/winternl.h",
]
} else {
sources += [
"non_win/dbghelp.h",
"non_win/minwinbase.h",
"non_win/timezoneapi.h",
"non_win/verrsrc.h",
"non_win/windows.h",
"non_win/winnt.h",
]
}
if (!crashpad_is_linux && !crashpad_is_android && !crashpad_is_fuchsia) {
sources += [ "non_elf/elf.h" ]
}
public_configs = [
":compat_config",
"..:crashpad_config",
]
deps = [ "../util:no_cfi_icall" ]
if (!crashpad_is_mac) {
deps += [ "../third_party/xnu" ]
}
if (crashpad_is_win) {
deps += [ "../third_party/getopt" ]
}
if (!crashpad_is_linux && !crashpad_is_android && !crashpad_is_fuchsia) {
deps += [ "../third_party/glibc" ]
}
}