diff options
author | Kyle Kienapfel <Docteh@users.noreply.github.com> | 2022-06-11 05:37:47 +0200 |
---|---|---|
committer | Kyle Kienapfel <Docteh@users.noreply.github.com> | 2022-06-11 05:37:47 +0200 |
commit | 3370546a7a6d2206139106cc48c2400bfafb67f4 (patch) | |
tree | c4e7b8200ed8df7dfffb2aabd8868708d829ce5f | |
parent | Merge pull request #8405 from Docteh/dock_undock (diff) | |
download | yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar.gz yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar.bz2 yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar.lz yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar.xz yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.tar.zst yuzu-3370546a7a6d2206139106cc48c2400bfafb67f4.zip |
-rw-r--r-- | src/yuzu/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/yuzu/main.cpp | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 1c50295c1..69b46ddd9 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -242,6 +242,7 @@ elseif(WIN32) target_link_libraries(yuzu PRIVATE Qt5::WinMain) endif() if(MSVC) + target_link_libraries(yuzu PRIVATE version.lib) set_target_properties(yuzu PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS") elseif(MINGW) set_target_properties(yuzu PROPERTIES LINK_FLAGS_RELEASE "-Wl,--subsystem,windows") diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index cbfcba9ef..c57bac2a7 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -198,6 +198,34 @@ static void RemoveCachedContents() { Common::FS::RemoveDirRecursively(offline_system_data); } +static void LogRuntimes() { +#ifdef _MSC_VER + // It is possible that the name of the dll will change. + // vcruntime140.dll is for 2015 and onwards + constexpr char runtime_dll_name[] = "vcruntime140.dll"; + UINT sz = GetFileVersionInfoSizeA(runtime_dll_name, nullptr); + bool runtime_version_inspection_worked = false; + if (sz > 0) { + std::vector<u8> buf(sz); + if (GetFileVersionInfoA(runtime_dll_name, 0, sz, buf.data())) { + VS_FIXEDFILEINFO* pvi; + sz = sizeof(VS_FIXEDFILEINFO); + if (VerQueryValueA(buf.data(), "\\", reinterpret_cast<LPVOID*>(&pvi), &sz)) { + if (pvi->dwSignature == VS_FFI_SIGNATURE) { + runtime_version_inspection_worked = true; + LOG_INFO(Frontend, "MSVC Compiler: {} Runtime: {}.{}.{}.{}", _MSC_VER, + pvi->dwProductVersionMS >> 16, pvi->dwProductVersionMS & 0xFFFF, + pvi->dwProductVersionLS >> 16, pvi->dwProductVersionLS & 0xFFFF); + } + } + } + } + if (!runtime_version_inspection_worked) { + LOG_INFO(Frontend, "Unable to inspect {}", runtime_dll_name); + } +#endif +} + static QString PrettyProductName() { #ifdef _WIN32 // After Windows 10 Version 2004, Microsoft decided to switch to a different notation: 20H2 @@ -268,6 +296,7 @@ GMainWindow::GMainWindow() const auto yuzu_build_version = override_build.empty() ? yuzu_build : override_build; LOG_INFO(Frontend, "yuzu Version: {}", yuzu_build_version); + LogRuntimes(); #ifdef ARCHITECTURE_x86_64 const auto& caps = Common::GetCPUCaps(); std::string cpu_string = caps.cpu_string; |