diff options
author | liamwhite <[email protected]> | 2023-10-29 23:41:13 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2023-10-29 23:41:13 -0400 |
commit | eec3d356b69711b34145d16e669e25403880774e (patch) | |
tree | 55ea35e1fe80f8539ec7fd7ec2aaa3164a5679d1 /CMakeLists.txt | |
parent | adb090090605d3b1f4368fb0c7bc836206aa4bdf (diff) | |
parent | d3997bad9b84579938d8cdb44b1d17cfab7bbcce (diff) | |
download | yuzu-mainline-eec3d356b69711b34145d16e669e25403880774e.tar.gz yuzu-mainline-eec3d356b69711b34145d16e669e25403880774e.zip |
Merge pull request #11689 from liamwhite/breakpad
qt: implement automatic crash dump support
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 150c78d64..9c35e0946 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) -CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) +CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") @@ -139,9 +139,6 @@ if (YUZU_USE_BUNDLED_VCPKG) if (YUZU_TESTS) list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") endif() - if (YUZU_CRASH_DUMPS) - list(APPEND VCPKG_MANIFEST_FEATURES "dbghelp") - endif() if (ENABLE_WEB_SERVICE) list(APPEND VCPKG_MANIFEST_FEATURES "web-service") endif() @@ -551,6 +548,18 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG) find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS}) endif() +if (WIN32 AND YUZU_CRASH_DUMPS) + set(BREAKPAD_VER "breakpad-c89f9dd") + download_bundled_external("breakpad/" ${BREAKPAD_VER} BREAKPAD_PREFIX) + + set(BREAKPAD_CLIENT_INCLUDE_DIR "${BREAKPAD_PREFIX}/include") + set(BREAKPAD_CLIENT_LIBRARY "${BREAKPAD_PREFIX}/lib/libbreakpad_client.lib") + + add_library(libbreakpad_client INTERFACE IMPORTED) + target_link_libraries(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_LIBRARY}") + target_include_directories(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_INCLUDE_DIR}") +endif() + # Prefer the -pthread flag on Linux. set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -570,13 +579,6 @@ elseif (WIN32) # PSAPI is the Process Status API set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version) endif() - - if (YUZU_CRASH_DUMPS) - find_library(DBGHELP_LIBRARY dbghelp) - if ("${DBGHELP_LIBRARY}" STREQUAL "DBGHELP_LIBRARY-NOTFOUND") - message(FATAL_ERROR "YUZU_CRASH_DUMPS enabled but dbghelp library not found") - endif() - endif() elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") set(PLATFORM_LIBRARIES rt) endif() |