Handle Release Channels better as we host more packages now (#3922)
This commit is contained in:
parent
e8d5715f7a
commit
a135ad064a
1 changed files with 26 additions and 20 deletions
|
@ -7,6 +7,8 @@
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
|
#include <QSysInfo>
|
||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
#define STABLERELEASE_URL "https://api.github.com/repos/Cockatrice/Cockatrice/releases/latest"
|
#define STABLERELEASE_URL "https://api.github.com/repos/Cockatrice/Cockatrice/releases/latest"
|
||||||
#define STABLEMANUALDOWNLOAD_URL "https://github.com/Cockatrice/Cockatrice/releases/latest"
|
#define STABLEMANUALDOWNLOAD_URL "https://github.com/Cockatrice/Cockatrice/releases/latest"
|
||||||
|
@ -39,41 +41,45 @@ void ReleaseChannel::checkForUpdates()
|
||||||
connect(response, SIGNAL(finished()), this, SLOT(releaseListFinished()));
|
connect(response, SIGNAL(finished()), this, SLOT(releaseListFinished()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Different release channel checking functions for different operating systems
|
||||||
#if defined(Q_OS_OSX)
|
#if defined(Q_OS_OSX)
|
||||||
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &fileName)
|
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &fileName)
|
||||||
{
|
{
|
||||||
return fileName.endsWith(".dmg");
|
const int mac_os_version = QSysInfo::productVersion().split(".")[1].toInt();
|
||||||
|
|
||||||
|
// TODO: If we change macOS builds, this must be updated
|
||||||
|
if (mac_os_version <= 12) {
|
||||||
|
// We no longer compile files for macOS 10.12 Sierra or older
|
||||||
|
return false;
|
||||||
|
} else if (mac_os_version == 13) {
|
||||||
|
// We support 10.13 High Sierra
|
||||||
|
return fileName.contains("macos10.13");
|
||||||
|
} else if (14 <= mac_os_version && mac_os_version <= 15) {
|
||||||
|
// We support 10.14 Mojave, and 10.15 Catalina
|
||||||
|
return fileName.contains("macos10.14");
|
||||||
|
} else {
|
||||||
|
// Future Mac releases we haven't heard of or accounted for yet
|
||||||
|
return (!fileName.contains("macos10.13") && !fileName.contains("macos10.14") && fileName.contains("macos"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(Q_OS_WIN)
|
#elif defined(Q_OS_WIN)
|
||||||
|
|
||||||
#include <QSysInfo>
|
|
||||||
|
|
||||||
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &fileName)
|
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &fileName)
|
||||||
{
|
{
|
||||||
QString wordSize = QSysInfo::buildAbi().split('-')[2];
|
#if Q_PROCESSOR_WORDSIZE == 4
|
||||||
QString arch;
|
return fileName.contains("win32");
|
||||||
|
#elif Q_PROCESSOR_WORDSIZE == 8
|
||||||
if (wordSize == "llp64") {
|
return fileName.contains("win64");
|
||||||
arch = "win64";
|
#else
|
||||||
} else if (wordSize == "ilp32") {
|
return false;
|
||||||
arch = "win32";
|
#endif
|
||||||
} else {
|
|
||||||
qWarning() << "Error checking for upgrade version: wordSize is" << wordSize;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto exeName = arch + ".exe";
|
|
||||||
return (fileName.endsWith(exeName));
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
||||||
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &)
|
bool ReleaseChannel::downloadMatchesCurrentOS(const QString &)
|
||||||
{
|
{
|
||||||
// If the OS doesn't fit one of the above #defines, then it will never match
|
// If the OS doesn't fit one of the above #defines, then it will never match
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString StableReleaseChannel::getManualDownloadUrl() const
|
QString StableReleaseChannel::getManualDownloadUrl() const
|
||||||
|
|
Loading…
Reference in a new issue