Merge pull request #26 from Scrumplex/armhf

This commit is contained in:
DioEgizio 2022-10-18 15:24:33 +02:00 committed by GitHub
commit 804ef36b20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28,31 +28,38 @@ struct RuntimeContext {
QString javaPath; QString javaPath;
QString system; QString system;
QString mappedJavaRealArchitecture() const { QString mappedJavaRealArchitecture() const
if (javaRealArchitecture == "aarch64") { {
if (javaRealArchitecture == "amd64")
return "x86_64";
if (javaRealArchitecture == "i386" || javaRealArchitecture == "i686")
return "x86";
if (javaRealArchitecture == "aarch64")
return "arm64"; return "arm64";
} if (javaRealArchitecture == "arm" || javaRealArchitecture == "armhf")
return "arm32";
return javaRealArchitecture; return javaRealArchitecture;
} }
void updateFromInstanceSettings(SettingsObjectPtr instanceSettings) { void updateFromInstanceSettings(SettingsObjectPtr instanceSettings)
{
javaArchitecture = instanceSettings->get("JavaArchitecture").toString(); javaArchitecture = instanceSettings->get("JavaArchitecture").toString();
javaRealArchitecture = instanceSettings->get("JavaRealArchitecture").toString(); javaRealArchitecture = instanceSettings->get("JavaRealArchitecture").toString();
javaPath = instanceSettings->get("JavaPath").toString(); javaPath = instanceSettings->get("JavaPath").toString();
system = currentSystem(); system = currentSystem();
} }
QString getClassifier() const { QString getClassifier() const { return system + "-" + mappedJavaRealArchitecture(); }
return system + "-" + mappedJavaRealArchitecture();
}
// "Legacy" refers to the fact that Mojang assumed that these are the only two architectures // "Legacy" refers to the fact that Mojang assumed that these are the only two architectures
bool isLegacyArch() const { bool isLegacyArch() const
QSet<QString> legacyArchitectures{"amd64", "x86_64", "i386", "i686", "x86"}; {
return legacyArchitectures.contains(mappedJavaRealArchitecture()); const QString mapped = mappedJavaRealArchitecture();
return mapped == "x86_64" || mapped == "x86";
} }
bool classifierMatches(QString target) const { bool classifierMatches(QString target) const
{
// try to match precise classifier "[os]-[arch]" // try to match precise classifier "[os]-[arch]"
bool x = target == getClassifier(); bool x = target == getClassifier();
// try to match imprecise classifier on legacy architectures "[os]" // try to match imprecise classifier on legacy architectures "[os]"
@ -62,7 +69,8 @@ struct RuntimeContext {
return x; return x;
} }
static QString currentSystem() { static QString currentSystem()
{
#if defined(Q_OS_LINUX) #if defined(Q_OS_LINUX)
return "linux"; return "linux";
#elif defined(Q_OS_MACOS) #elif defined(Q_OS_MACOS)