aboutsummaryrefslogtreecommitdiff
path: root/launcher/RuntimeContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/RuntimeContext.h')
-rw-r--r--launcher/RuntimeContext.h39
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
+ }
+};