diff options
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" | |||
| 52 | 52 | ||
| 53 | CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) | 53 | CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) |
| 54 | 54 | ||
| 55 | CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) | 55 | CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) |
| 56 | 56 | ||
| 57 | option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") | 57 | option(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}) |
| 552 | endif() | 549 | endif() |
| 553 | 550 | ||
| 551 | if (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}") | ||
| 561 | endif() | ||
| 562 | |||
| 554 | # Prefer the -pthread flag on Linux. | 563 | # Prefer the -pthread flag on Linux. |
| 555 | set(THREADS_PREFER_PTHREAD_FLAG ON) | 564 | set(THREADS_PREFER_PTHREAD_FLAG ON) |
| 556 | find_package(Threads REQUIRED) | 565 | find_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() | ||
| 580 | elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") | 582 | elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") |
| 581 | set(PLATFORM_LIBRARIES rt) | 583 | set(PLATFORM_LIBRARIES rt) |
| 582 | endif() | 584 | endif() |