diff options
Diffstat (limited to 'launcher/RuntimeContext.h')
-rw-r--r-- | launcher/RuntimeContext.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/launcher/RuntimeContext.h b/launcher/RuntimeContext.h new file mode 100644 index 00000000..76785728 --- /dev/null +++ b/launcher/RuntimeContext.h @@ -0,0 +1,39 @@ +#pragma once + +#include <QString> +#include "settings/SettingsObject.h" + +struct RuntimeContext { + QString javaArchitecture; + QString javaRealArchitecture; + QString javaPath; + + QString mappedJavaRealArchitecture() const { + if (javaRealArchitecture == "aarch64") { + return "arm64"; + } + return javaRealArchitecture; + } + + void updateFromInstanceSettings(SettingsObjectPtr instanceSettings) { + javaArchitecture = instanceSettings->get("JavaArchitecture").toString(); + javaRealArchitecture = instanceSettings->get("JavaRealArchitecture").toString(); + javaPath = instanceSettings->get("JavaPath").toString(); + } + + static QString currentSystem() { +#if defined(Q_OS_LINUX) + return "linux"; +#elif defined(Q_OS_MACOS) + return "osx"; +#elif defined(Q_OS_WINDOWS) + return "windows"; +#elif defined(Q_OS_FREEBSD) + return "freebsd"; +#elif defined(Q_OS_OPENBSD) + return "openbsd"; +#else + return "unknown"; +#endif + } +}; |