diff options
author | Cameron Katri <me@cameronkatri.com> | 2021-07-16 10:16:01 -0400 |
---|---|---|
committer | Cameron Katri <me@cameronkatri.com> | 2021-07-16 10:16:01 -0400 |
commit | 8a1b679969245ed7944ca397b5a9df4370166b68 (patch) | |
tree | 355641dbc9d8e351929a54a31a17d605ff6b8d56 /games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp | |
parent | 1dbd8d488ab44da4daea2a36d251d04f0bb7db70 (diff) | |
download | freebsd-ports-8a1b679969245ed7944ca397b5a9df4370166b68.tar.gz freebsd-ports-8a1b679969245ed7944ca397b5a9df4370166b68.tar.zst freebsd-ports-8a1b679969245ed7944ca397b5a9df4370166b68.zip |
Add multimc with patch to autodetect minecraft-runtime
Diffstat (limited to 'games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp')
-rw-r--r-- | games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp b/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp new file mode 100644 index 0000000..be5c158 --- /dev/null +++ b/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp @@ -0,0 +1,74 @@ +--- api/logic/minecraft/launch/PrintInstanceInfo.cpp.orig 2019-03-07 21:42:07 UTC ++++ api/logic/minecraft/launch/PrintInstanceInfo.cpp +@@ -19,8 +19,9 @@ + #include "PrintInstanceInfo.h" + #include <launch/LaunchTask.h> + +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) + namespace { ++#if defined(Q_OS_LINUX) + void probeProcCpuinfo(QStringList &log) + { + std::ifstream cpuin("/proc/cpuinfo"); +@@ -66,7 +67,44 @@ void runLspci(QStringList &log) + } + pclose(lspci); + } ++#elif defined(Q_OS_FREEBSD) ++void runSysctlHwModel(QStringList &log) ++{ ++ char buff[512]; ++ FILE *hwmodel = popen("sysctl hw.model", "r"); ++ while (fgets(buff, 512, hwmodel) != NULL) ++ { ++ log << QString::fromUtf8(buff); ++ break; ++ } ++ pclose(hwmodel); ++} + ++void runPciconf(QStringList &log) ++{ ++ char buff[512]; ++ std::string strcard; ++ FILE *pciconf = popen("pciconf -lv -a vgapci0", "r"); ++ while (fgets(buff, 512, pciconf) != NULL) ++ { ++ if (strncmp(buff, " vendor", 10) == 0) ++ { ++ std::string str(buff); ++ strcard.append(str.substr(str.find_first_of("'") + 1, str.find_last_not_of("'") - (str.find_first_of("'") + 2))); ++ strcard.append(" "); ++ } ++ else if (strncmp(buff, " device", 10) == 0) ++ { ++ std::string str2(buff); ++ strcard.append(str2.substr(str2.find_first_of("'") + 1, str2.find_last_not_of("'") - (str2.find_first_of("'") + 2))); ++ } ++ log << QString::fromStdString(strcard); ++ break; ++ } ++ pclose(pciconf); ++} ++#endif ++ + void runGlxinfo(QStringList & log) + { + // FIXME: fixed size buffers... +@@ -94,10 +132,14 @@ void PrintInstanceInfo::executeTask() + auto instance = m_parent->instance(); + QStringList log; + +-#ifdef Q_OS_LINUX ++#if defined(Q_OS_LINUX) + ::probeProcCpuinfo(log); + ::runLspci(log); + ::runGlxinfo(log); ++#elif defined(Q_OS_FREEBSD) ++ ::runSysctlHwModel(log); ++ ::runPciconf(log); ++ ::runGlxinfo(log); + #endif + + logLines(log, MessageLevel::MultiMC); |