kicad/thirdparty/sentry-native/external/crashpad/snapshot/CMakeLists.txt

260 lines
8.7 KiB
CMake

add_library(crashpad_snapshot STATIC
annotation_snapshot.cc
annotation_snapshot.h
capture_memory.cc
capture_memory.h
cpu_architecture.h
cpu_context.cc
cpu_context.h
crashpad_info_client_options.cc
crashpad_info_client_options.h
exception_snapshot.h
handle_snapshot.cc
handle_snapshot.h
memory_snapshot.cc
memory_snapshot.h
memory_snapshot_generic.h
minidump/exception_snapshot_minidump.cc
minidump/exception_snapshot_minidump.h
minidump/memory_snapshot_minidump.cc
minidump/memory_snapshot_minidump.h
minidump/minidump_annotation_reader.cc
minidump/minidump_annotation_reader.h
minidump/minidump_context_converter.cc
minidump/minidump_context_converter.h
minidump/minidump_simple_string_dictionary_reader.cc
minidump/minidump_simple_string_dictionary_reader.h
minidump/minidump_stream.h
minidump/minidump_string_list_reader.cc
minidump/minidump_string_list_reader.h
minidump/minidump_string_reader.cc
minidump/minidump_string_reader.h
minidump/module_snapshot_minidump.cc
minidump/module_snapshot_minidump.h
minidump/process_snapshot_minidump.cc
minidump/process_snapshot_minidump.h
minidump/system_snapshot_minidump.cc
minidump/system_snapshot_minidump.h
minidump/thread_snapshot_minidump.cc
minidump/thread_snapshot_minidump.h
module_snapshot.h
process_snapshot.h
snapshot_constants.h
system_snapshot.h
thread_snapshot.h
unloaded_module_snapshot.cc
unloaded_module_snapshot.h
)
if(APPLE AND NOT IOS)
target_sources(crashpad_snapshot PRIVATE
posix/timezone.cc
posix/timezone.h
mac/cpu_context_mac.cc
mac/cpu_context_mac.h
mac/exception_snapshot_mac.cc
mac/exception_snapshot_mac.h
mac/mach_o_image_annotations_reader.cc
mac/mach_o_image_annotations_reader.h
mac/mach_o_image_reader.cc
mac/mach_o_image_reader.h
mac/mach_o_image_segment_reader.cc
mac/mach_o_image_segment_reader.h
mac/mach_o_image_symbol_table_reader.cc
mac/mach_o_image_symbol_table_reader.h
mac/module_snapshot_mac.cc
mac/module_snapshot_mac.h
mac/process_reader_mac.cc
mac/process_reader_mac.h
mac/process_snapshot_mac.cc
mac/process_snapshot_mac.h
mac/process_types.cc
mac/process_types.h
mac/process_types/custom.cc
mac/process_types/flavors.h
mac/process_types/internal.h
mac/process_types/traits.h
mac/system_snapshot_mac.cc
mac/system_snapshot_mac.h
mac/thread_snapshot_mac.cc
mac/thread_snapshot_mac.h
)
elseif(IOS)
target_sources(crashpad_snapshot PRIVATE
posix/timezone.cc
posix/timezone.h
ios/exception_snapshot_ios_intermediate_dump.cc
ios/exception_snapshot_ios_intermediate_dump.h
ios/intermediate_dump_reader_util.cc
ios/intermediate_dump_reader_util.h
ios/memory_snapshot_ios_intermediate_dump.cc
ios/memory_snapshot_ios_intermediate_dump.h
ios/module_snapshot_ios_intermediate_dump.cc
ios/module_snapshot_ios_intermediate_dump.h
ios/process_snapshot_ios_intermediate_dump.cc
ios/process_snapshot_ios_intermediate_dump.h
ios/system_snapshot_ios_intermediate_dump.cc
ios/system_snapshot_ios_intermediate_dump.h
ios/thread_snapshot_ios_intermediate_dump.cc
ios/thread_snapshot_ios_intermediate_dump.h
mac/cpu_context_mac.cc
mac/cpu_context_mac.h
)
else()
target_sources(crashpad_snapshot PRIVATE
crashpad_types/crashpad_info_reader.cc
crashpad_types/crashpad_info_reader.h
)
endif()
if(LINUX OR ANDROID)
target_sources(crashpad_snapshot PRIVATE
posix/timezone.cc
posix/timezone.h
linux/capture_memory_delegate_linux.cc
linux/capture_memory_delegate_linux.h
linux/cpu_context_linux.cc
linux/cpu_context_linux.h
linux/debug_rendezvous.cc
linux/debug_rendezvous.h
linux/exception_snapshot_linux.cc
linux/exception_snapshot_linux.h
linux/process_reader_linux.cc
linux/process_reader_linux.h
linux/process_snapshot_linux.cc
linux/process_snapshot_linux.h
linux/signal_context.h
linux/system_snapshot_linux.cc
linux/system_snapshot_linux.h
linux/thread_snapshot_linux.cc
linux/thread_snapshot_linux.h
sanitized/memory_snapshot_sanitized.cc
sanitized/memory_snapshot_sanitized.h
sanitized/module_snapshot_sanitized.cc
sanitized/module_snapshot_sanitized.h
sanitized/process_snapshot_sanitized.cc
sanitized/process_snapshot_sanitized.h
sanitized/sanitization_information.cc
sanitized/sanitization_information.h
sanitized/thread_snapshot_sanitized.cc
sanitized/thread_snapshot_sanitized.h
crashpad_types/image_annotation_reader.cc
crashpad_types/image_annotation_reader.h
elf/elf_dynamic_array_reader.cc
elf/elf_dynamic_array_reader.h
elf/elf_image_reader.cc
elf/elf_image_reader.h
elf/elf_symbol_table_reader.cc
elf/elf_symbol_table_reader.h
elf/module_snapshot_elf.cc
elf/module_snapshot_elf.h
)
endif()
if(WIN32)
target_sources(crashpad_snapshot PRIVATE
win/capture_memory_delegate_win.cc
win/capture_memory_delegate_win.h
win/cpu_context_win.cc
win/cpu_context_win.h
win/exception_snapshot_win.cc
win/exception_snapshot_win.h
win/memory_map_region_snapshot_win.cc
win/memory_map_region_snapshot_win.h
win/module_snapshot_win.cc
win/module_snapshot_win.h
win/pe_image_annotations_reader.cc
win/pe_image_annotations_reader.h
win/pe_image_reader.cc
win/pe_image_reader.h
win/pe_image_resource_reader.cc
win/pe_image_resource_reader.h
win/process_reader_win.cc
win/process_reader_win.h
win/process_snapshot_win.cc
win/process_snapshot_win.h
win/process_subrange_reader.cc
win/process_subrange_reader.h
win/system_snapshot_win.cc
win/system_snapshot_win.h
win/thread_snapshot_win.cc
win/thread_snapshot_win.h
)
endif()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(x86)|(i[3-7]86)")
target_sources(crashpad_snapshot PRIVATE
x86/cpuid_reader.cc
x86/cpuid_reader.h
)
endif()
target_include_directories(crashpad_snapshot INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
)
target_link_libraries(crashpad_snapshot
PRIVATE
$<BUILD_INTERFACE:crashpad_interface>
PUBLIC
crashpad_client
crashpad_compat
crashpad_util
mini_chromium
)
if(CRASHPAD_ENABLE_STACKTRACE)
target_compile_definitions(crashpad_snapshot PRIVATE CLIENT_STACKTRACES_ENABLED)
endif()
if(WIN32)
target_link_libraries(crashpad_snapshot PRIVATE powrprof)
if(CRASHPAD_ENABLE_STACKTRACE)
target_link_libraries(crashpad_snapshot PRIVATE dbghelp)
endif()
if(MSVC)
target_compile_options(crashpad_snapshot PRIVATE "/wd4201")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(crashpad_snapshot PRIVATE
"-Wno-attributes"
)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(crashpad_snapshot PRIVATE
"-Wno-unknown-attributes"
)
endif()
if (MINGW OR ("${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}" STREQUAL "") OR (CMAKE_SYSTEM_VERSION LESS 10))
# Define NTDDI_VERSION >= NTDDI_WIN10_RS5 - so InitializeContext2 definition is always available in process_reader_win.cc
# NTDDI_WIN10_RS5 = 0x0A000006 /* ABRACADABRA_WIN10_RS5 */
set_property(
SOURCE "win/process_reader_win.cc"
APPEND
PROPERTY COMPILE_DEFINITIONS
WINVER=0x0A00 _WIN32_WINNT=0x0A00 NTDDI_VERSION=0x0A000006
)
endif()
endif()
if(APPLE AND NOT IOS AND CRASHPAD_ENABLE_STACKTRACE)
target_include_directories(crashpad_snapshot PRIVATE ../libunwind/include)
target_link_libraries(crashpad_snapshot PRIVATE unwind_static)
endif()
if(LINUX AND CRASHPAD_ENABLE_STACKTRACE)
find_package(PkgConfig REQUIRED)
pkg_check_modules(UNWIND REQUIRED IMPORTED_TARGET libunwind-ptrace)
target_link_libraries(crashpad_snapshot PRIVATE PkgConfig::UNWIND)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(crashpad_snapshot PRIVATE
"-Wno-multichar"
)
endif()
set_property(TARGET crashpad_snapshot PROPERTY EXPORT_NAME snapshot)
add_library(crashpad::snapshot ALIAS crashpad_snapshot)
crashpad_install_target(crashpad_snapshot)