mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 14:06:33 +00:00
ios: Use compat to provide items missing from the iOS SDK
This updates the way that the .defs files added in 1bfd7d06ed60 are treated, by putting them in compat/ios, using compat as intended. The .defs files in compat forward, via #include, to the ones in third_party/xnu. Additionally, compat/mac is enabled for iOS, as everything in compat/mac is sensible on iOS, and will have no effect when rendered unnecessary by the iOS SDK. This also changes util:mig_output to a static_library instead of a source_set. I don’t think there was any reason for it to have been a source_set to begin with. static_library is preferred for nearly everything. Bug: crashpad:31 Change-Id: I7c468d6d6785bf2bc825d45831ebb81e1c9ddfbc Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2160310 Reviewed-by: Justin Cohen <justincohen@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org>
This commit is contained in:
parent
64b8791f45
commit
adfd94a357
@ -17,12 +17,16 @@ import("../build/crashpad_buildconfig.gni")
|
||||
config("compat_config") {
|
||||
include_dirs = []
|
||||
|
||||
if (crashpad_is_mac) {
|
||||
if (crashpad_is_mac || crashpad_is_ios) {
|
||||
include_dirs += [ "mac" ]
|
||||
} else if (!crashpad_is_ios) {
|
||||
} else {
|
||||
include_dirs += [ "non_mac" ]
|
||||
}
|
||||
|
||||
if (crashpad_is_ios) {
|
||||
include_dirs += [ "ios" ]
|
||||
}
|
||||
|
||||
if (crashpad_is_linux || crashpad_is_android) {
|
||||
include_dirs += [ "linux" ]
|
||||
}
|
||||
@ -59,15 +63,16 @@ template("compat_target") {
|
||||
compat_target("compat") {
|
||||
sources = []
|
||||
|
||||
if (crashpad_is_mac) {
|
||||
if (crashpad_is_mac || crashpad_is_ios) {
|
||||
sources += [
|
||||
"mac/AvailabilityMacros.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 if (!crashpad_is_ios) {
|
||||
} else {
|
||||
sources += [
|
||||
"non_mac/mach-o/loader.h",
|
||||
"non_mac/mach/mach.h",
|
||||
@ -76,6 +81,16 @@ compat_target("compat") {
|
||||
]
|
||||
}
|
||||
|
||||
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",
|
||||
|
20
compat/ios/mach/exc.defs
Normal file
20
compat/ios/mach/exc.defs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2020 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.
|
||||
|
||||
#ifndef CRASHPAD_COMPAT_IOS_MACH_EXC_DEFS_
|
||||
#define CRASHPAD_COMPAT_IOS_MACH_EXC_DEFS_
|
||||
|
||||
#include "third_party/xnu/osfmk/mach/exc.defs"
|
||||
|
||||
#endif // CRASHPAD_COMPAT_IOS_MACH_EXC_DEFS_
|
20
compat/ios/mach/mach_exc.defs
Normal file
20
compat/ios/mach/mach_exc.defs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2020 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.
|
||||
|
||||
#ifndef CRASHPAD_COMPAT_IOS_MACH_MACH_EXC_DEFS_
|
||||
#define CRASHPAD_COMPAT_IOS_MACH_MACH_EXC_DEFS_
|
||||
|
||||
#include "third_party/xnu/osfmk/mach/mach_exc.defs"
|
||||
|
||||
#endif // CRASHPAD_COMPAT_IOS_MACH_MACH_EXC_DEFS_
|
20
compat/ios/mach/mach_types.defs
Normal file
20
compat/ios/mach/mach_types.defs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2020 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.
|
||||
|
||||
#ifndef CRASHPAD_COMPAT_IOS_MACH_MACH_TYPES_DEFS_
|
||||
#define CRASHPAD_COMPAT_IOS_MACH_MACH_TYPES_DEFS_
|
||||
|
||||
#include "third_party/xnu/osfmk/mach/mach_types.defs"
|
||||
|
||||
#endif // CRASHPAD_COMPAT_IOS_MACH_MACH_TYPES_DEFS_
|
20
compat/ios/mach/machine/machine_types.defs
Normal file
20
compat/ios/mach/machine/machine_types.defs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2020 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.
|
||||
|
||||
#ifndef CRASHPAD_COMPAT_IOS_MACH_MACHINE_MACHINE_TYPES_DEFS_
|
||||
#define CRASHPAD_COMPAT_IOS_MACH_MACHINE_MACHINE_TYPES_DEFS_
|
||||
|
||||
#include "third_party/xnu/osfmk/mach/machine/machine_types.defs"
|
||||
|
||||
#endif // CRASHPAD_COMPAT_IOS_MACH_MACHINE_MACHINE_TYPES_DEFS_
|
20
compat/ios/mach/std_types.defs
Normal file
20
compat/ios/mach/std_types.defs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2020 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.
|
||||
|
||||
#ifndef CRASHPAD_COMPAT_IOS_MACH_STD_TYPES_DEFS_
|
||||
#define CRASHPAD_COMPAT_IOS_MACH_STD_TYPES_DEFS_
|
||||
|
||||
#include "third_party/xnu/osfmk/mach/std_types.defs"
|
||||
|
||||
#endif // CRASHPAD_COMPAT_IOS_MACH_STD_TYPES_DEFS_
|
@ -86,14 +86,15 @@ if (crashpad_is_mac || crashpad_is_ios) {
|
||||
]
|
||||
}
|
||||
args += [
|
||||
"--include",
|
||||
rebase_path("..", root_build_dir),
|
||||
"--include",
|
||||
rebase_path("../compat/mac", root_build_dir),
|
||||
]
|
||||
if (crashpad_is_ios) {
|
||||
args += [
|
||||
# The iOS SDK doesn’t have any .defs files. Get them directly from xnu.
|
||||
"--include",
|
||||
rebase_path("../third_party/xnu/osfmk", root_build_dir),
|
||||
rebase_path("../compat/ios", root_build_dir),
|
||||
]
|
||||
}
|
||||
if (current_cpu == "x86") {
|
||||
@ -119,7 +120,7 @@ if (crashpad_is_mac || crashpad_is_ios) {
|
||||
}
|
||||
}
|
||||
|
||||
source_set("mig_output") {
|
||||
static_library("mig_output") {
|
||||
deps = [ ":mig" ]
|
||||
sources = get_target_outputs(":mig")
|
||||
if (crashpad_is_in_chromium) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user