Quellcode durchsuchen

vcpkg,cmake: Use vcpkg for dbghelp

lat9nq vor 4 Jahren
Ursprung
Commit
c976613ab2
3 geänderte Dateien mit 17 neuen und 1 gelöschten Zeilen
  1. 12 0
      CMakeLists.txt
  2. 1 1
      src/yuzu/CMakeLists.txt
  3. 4 0
      vcpkg.json

+ 12 - 0
CMakeLists.txt

@@ -38,6 +38,8 @@ option(YUZU_USE_BUNDLED_OPUS "Compile bundled opus" ON)
 
 option(YUZU_TESTS "Compile tests" ON)
 
+CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile Windows crash dump (Minidump) support" OFF "WIN32" OFF)
+
 option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
 
 option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON)
@@ -46,6 +48,9 @@ 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()
 
     include(${CMAKE_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake)
 elseif(NOT "$ENV{VCPKG_TOOLCHAIN_FILE}" STREQUAL "")
@@ -447,6 +452,13 @@ 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()

+ 1 - 1
src/yuzu/CMakeLists.txt

@@ -208,7 +208,7 @@ add_executable(yuzu
     yuzu.rc
 )
 
-if (WIN32 AND NOT ("${DBGHELP_LIBRARY}" STREQUAL "DBGHELP_LIBRARY-NOTFOUND"))
+if (WIN32 AND YUZU_CRASH_DUMPS)
     target_sources(yuzu PRIVATE
         mini_dump.cpp
         mini_dump.h

+ 4 - 0
vcpkg.json

@@ -31,6 +31,10 @@
         "yuzu-tests": {
             "description": "Compile tests",
             "dependencies": [ "catch2" ]
+        },
+        "dbghelp": {
+            "description": "Compile Windows crash dump (Minidump) support",
+            "dependencies": [ "dbghelp" ]
         }
     },
     "overrides": [