aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorliamwhite <[email protected]>2023-10-29 23:41:13 -0400
committerGitHub <[email protected]>2023-10-29 23:41:13 -0400
commiteec3d356b69711b34145d16e669e25403880774e (patch)
tree55ea35e1fe80f8539ec7fd7ec2aaa3164a5679d1 /CMakeLists.txt
parentadb090090605d3b1f4368fb0c7bc836206aa4bdf (diff)
parentd3997bad9b84579938d8cdb44b1d17cfab7bbcce (diff)
downloadyuzu-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.txt24
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()