- File attachments support for MacOS and Windows. Based on changes made in https://github.com/Youw/crashpad/, distributed with Apache 2.0 License.
- Add
throws
declaration tomemfd_create
for compatibility with different libc versions. - Build System Changes Listed Below.
- MinGW build support.
In order to minimize external dependencies, and to better integrate with
sentry-native
, this fork replaced usage of depo_tools
with explicit
submodules, and added CMake files for building.
Both submodules and CMake files currently only support building on macOS and Windows, and do only export the necessary libraries and executables to integrate the crashpad client.
When updating this fork, make sure to keep the files in sync, as explained below.
For macOS and Windows support, only third_party/mini_chromium
and
third_party/zlib
are needed.
The specific submodule commit hashes can be found in the ./DEPS
file.
To allow building crashpad with CMake, the following CMake files were created
by manually translating the BUILD.gn
files in the same folders (and following
included files):
./CMakeLists.txt
./client/CMakeLists.txt
./compat/CMakeLists.txt
./handler/CMakeLists.txt
./minidump/CMakeLists.txt
./snapshot/CMakeLists.txt
./third_party/getopt/CMakeLists.txt
./third_party/mini_chromium/CMakeLists.txt
./third_party/zlib/CMakeLists.txt
./tools/CMakeLists.txt
./util/CMakeLists.txt
The important thing here is to keep the list of source files in sync when updating.
MinGW support adds the following files which need to be kept in sync.
compat/mingw/
third_party/mini_chromium/utf_string_conversion_utils.mingw.cc
Build support for iOS, or Xcode in general is still a work in progress. Once complete, creating a iOS compatible Xcode project should be as easy as:
cmake -B cmakebuild -GXcode -DCMAKE_SYSTEM_NAME=iOS
See the upstream CMake Docs on iOS for further info.
- Bump the submodules to the commit hashes specified in
./DEPS
- Go through the changes in
BUILD.gn
files, and apply them to the correspondingCMakeLists.txt
. See the list above.