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 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 | ||
| 54 | CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) | 54 | CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Compile LDN room server" ON "NOT ANDROID" OFF) |
| 55 | 55 | ||
| 56 | CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF) | 56 | CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) |
| 57 | 57 | ||
| 58 | option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") | 58 | option(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}) |
| 588 | endif() | 585 | endif() |
| 589 | 586 | ||
| 587 | if (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}") | ||
| 597 | endif() | ||
| 598 | |||
| 590 | # Prefer the -pthread flag on Linux. | 599 | # Prefer the -pthread flag on Linux. |
| 591 | set(THREADS_PREFER_PTHREAD_FLAG ON) | 600 | set(THREADS_PREFER_PTHREAD_FLAG ON) |
| 592 | find_package(Threads REQUIRED) | 601 | find_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() | ||
| 616 | elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") | 618 | elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$") |
| 617 | set(PLATFORM_LIBRARIES rt) | 619 | set(PLATFORM_LIBRARIES rt) |
| 618 | endif() | 620 | endif() |