diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4490df21cb..2c5e33cbcf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,10 +73,10 @@ option(ENABLE_UPDATE_CHECKER "Enable update checker (for Qt and Android)" OFF)
cmake_dependent_option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF "NOT YUZU_USE_BUNDLED_QT" OFF)
cmake_dependent_option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF "NOT YUZU_USE_BUNDLED_QT" OFF)
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
-cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
+cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT AND NOT (CMAKE_BUILD_TYPE MATCHES "Debug|RelWithDebInfo")" OFF)
# non-linux bundled qt are static
-if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
+if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX) AND NOT (CMAKE_BUILD_TYPE MATCHES "Debug|RelWithDebInfo"))
set(YUZU_STATIC_BUILD ON)
endif()
@@ -570,6 +570,7 @@ if (ENABLE_QT)
else()
message(STATUS "Using system Qt")
if (NOT Qt6_DIR)
+ # You can use this as reference:
set(Qt6_DIR "" CACHE PATH "Additional path to search for Qt6 libraries like C:/Qt/6.8.3/msvc2022_64/lib/cmake/Qt6")
endif()
list(APPEND CMAKE_PREFIX_PATH "${Qt6_DIR}")
@@ -672,6 +673,9 @@ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
/wd4711 # function 'function' selected for automatic inline expansion
/wd4820 # 'bytes' bytes padding added after construct 'member_name'
)
+ # For CMake 3.25+ apply ProgramDatabase as default debug information format
+ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$:ProgramDatabase>")
+ cmake_policy(SET CMP0141 NEW)
endif()
# Adjustments for clang-cl
diff --git a/externals/cmake-modules/UseCcache.cmake b/externals/cmake-modules/UseCcache.cmake
index 34a9de3cf2..68e7c27b0b 100644
--- a/externals/cmake-modules/UseCcache.cmake
+++ b/externals/cmake-modules/UseCcache.cmake
@@ -19,9 +19,9 @@ if(USE_CCACHE)
message(FATAL_ERROR "[UseCcache] USE_CCACHE enabled, but no "
"executable found at: ${CCACHE_PATH}")
endif()
- # Follow SCCache recommendations:
+ # Follow SCCache recommendations only for MINGW:
#
- if(WIN32)
+ if(MINGW)
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG