summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
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"
52 52
53CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) 53CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF)
54 54
55CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) 55CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
56 56
57option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") 57option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
58 58
@@ -139,9 +139,6 @@ if (YUZU_USE_BUNDLED_VCPKG)
139 if (YUZU_TESTS) 139 if (YUZU_TESTS)
140 list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests") 140 list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
141 endif() 141 endif()
142 if (YUZU_CRASH_DUMPS)
143 list(APPEND VCPKG_MANIFEST_FEATURES "dbghelp")
144 endif()
145 if (ENABLE_WEB_SERVICE) 142 if (ENABLE_WEB_SERVICE)
146 list(APPEND VCPKG_MANIFEST_FEATURES "web-service") 143 list(APPEND VCPKG_MANIFEST_FEATURES "web-service")
147 endif() 144 endif()
@@ -551,6 +548,18 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG)
551 find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS}) 548 find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS})
552endif() 549endif()
553 550
551if (WIN32 AND YUZU_CRASH_DUMPS)
552 set(BREAKPAD_VER "breakpad-c89f9dd")
553 download_bundled_external("breakpad/" ${BREAKPAD_VER} BREAKPAD_PREFIX)
554
555 set(BREAKPAD_CLIENT_INCLUDE_DIR "${BREAKPAD_PREFIX}/include")
556 set(BREAKPAD_CLIENT_LIBRARY "${BREAKPAD_PREFIX}/lib/libbreakpad_client.lib")
557
558 add_library(libbreakpad_client INTERFACE IMPORTED)
559 target_link_libraries(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_LIBRARY}")
560 target_include_directories(libbreakpad_client INTERFACE "${BREAKPAD_CLIENT_INCLUDE_DIR}")
561endif()
562
554# Prefer the -pthread flag on Linux. 563# Prefer the -pthread flag on Linux.
555set(THREADS_PREFER_PTHREAD_FLAG ON) 564set(THREADS_PREFER_PTHREAD_FLAG ON)
556find_package(Threads REQUIRED) 565find_package(Threads REQUIRED)
@@ -570,13 +579,6 @@ elseif (WIN32)
570 # PSAPI is the Process Status API 579 # PSAPI is the Process Status API
571 set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version) 580 set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
572 endif() 581 endif()
573
574 if (YUZU_CRASH_DUMPS)
575 find_library(DBGHELP_LIBRARY dbghelp)
576 if ("${DBGHELP_LIBRARY}" STREQUAL "DBGHELP_LIBRARY-NOTFOUND")
577 message(FATAL_ERROR "YUZU_CRASH_DUMPS enabled but dbghelp library not found")
578 endif()
579 endif()
580elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") 582elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
581 set(PLATFORM_LIBRARIES rt) 583 set(PLATFORM_LIBRARIES rt)
582endif() 584endif()