summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGravatar Liam2023-10-04 13:11:05 -0400
committerGravatar Liam2023-10-08 11:35:53 -0400
commitd3997bad9b84579938d8cdb44b1d17cfab7bbcce (patch)
tree4a9128e8ba93d3963ce37b65efd2a940776cae3c /CMakeLists.txt
parentMerge pull request #11657 from liamwhite/new-codespell (diff)
downloadyuzu-d3997bad9b84579938d8cdb44b1d17cfab7bbcce.tar.gz
yuzu-d3997bad9b84579938d8cdb44b1d17cfab7bbcce.tar.xz
yuzu-d3997bad9b84579938d8cdb44b1d17cfab7bbcce.zip
qt: implement automatic crash dump support
Diffstat (limited to '')
-rw-r--r--CMakeLists.txt24
1 files changed, 13 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2bef9d6ed..ed757eb0a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,7 +53,7 @@ option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android"
53 53
54CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) 54CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
55 55
56CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) 56CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
57 57
58option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") 58option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
59 59
@@ -179,9 +179,6 @@ if (YUZU_USE_BUNDLED_VCPKG)
179 if (YUZU_TESTS) 179 if (YUZU_TESTS)
180 list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") 180 list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
181 endif() 181 endif()
182 if (YUZU_CRASH_DUMPS)
183 list(APPEND VCPKG_MANIFEST_FEATURES "dbghelp")
184 endif()
185 if (ENABLE_WEB_SERVICE) 182 if (ENABLE_WEB_SERVICE)
186 list(APPEND VCPKG_MANIFEST_FEATURES "web-service") 183 list(APPEND VCPKG_MANIFEST_FEATURES "web-service")
187 endif() 184 endif()
@@ -587,6 +584,18 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG)
587 find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS}) 584 find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS})
588endif() 585endif()
589 586
587if (WIN32 AND YUZU_CRASH_DUMPS)
588 set(BREAKPAD_VER "breakpad-c89f9dd")
589 download_bundled_external("breakpad/" ${BREAKPAD_VER} BREAKPAD_PREFIX)
590
591 set(BREAKPAD_CLIENT_INCLUDE_DIR "${BREAKPAD_PREFIX}/include")
592 set(BREAKPAD_CLIENT_LIBRARY "${BREAKPAD_PREFIX}/lib/libbreakpad_client.lib")
593
594 add_library(libbreakpad_client INTERFACE IMPORTED)
595 target_link_libraries(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_LIBRARY}")
596 target_include_directories(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_INCLUDE_DIR}")
597endif()
598
590# Prefer the -pthread flag on Linux. 599# Prefer the -pthread flag on Linux.
591set(THREADS_PREFER_PTHREAD_FLAG ON) 600set(THREADS_PREFER_PTHREAD_FLAG ON)
592find_package(Threads REQUIRED) 601find_package(Threads REQUIRED)
@@ -606,13 +615,6 @@ elseif (WIN32)
606 # PSAPI is the Process Status API 615 # PSAPI is the Process Status API
607 set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version) 616 set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
608 endif() 617 endif()
609
610 if (YUZU_CRASH_DUMPS)
611 find_library(DBGHELP_LIBRARY dbghelp)
612 if ("${DBGHELP_LIBRARY}" STREQUAL "DBGHELP_LIBRARY-NOTFOUND")
613 message(FATAL_ERROR "YUZU_CRASH_DUMPS enabled but dbghelp library not found")
614 endif()
615 endif()
616elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") 618elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
617 set(PLATFORM_LIBRARIES rt) 619 set(PLATFORM_LIBRARIES rt)
618endif() 620endif()