Fix and improve xswiftbus version mismatch warning

This commit is contained in:
Roland Rossgotterer
2019-03-27 15:14:04 +01:00
committed by Mat Sutcliffe
parent 8223ddb710
commit 6b17f847e9
4 changed files with 30 additions and 3 deletions

View File

@@ -1216,9 +1216,9 @@ namespace BlackSimPlugin
QString swiftVersion = BlackConfig::CBuildConfig::getVersionString(); QString swiftVersion = BlackConfig::CBuildConfig::getVersionString();
QString xswiftbusVersion = service.getVersionNumber(); QString xswiftbusVersion = service.getVersionNumber();
if (! swiftVersion.contains(xswiftbusVersion)) if (swiftVersion != xswiftbusVersion)
{ {
CLogMessage(this).error(u"You are using an incorrect version of XSwiftBus. Make sure to install %1 into X-Plane plugins!") << xswiftbusVersion; CLogMessage(this).error(u"You are using an incorrect version of XSwiftBus. The version of XSwiftBus must match the version of swift being %1.") << swiftVersion;
return; return;
} }

View File

@@ -35,6 +35,21 @@ namespace XSwiftBus
emitAircraftModelChanged(path, filename, getAircraftLivery(), getAircraftIcaoCode(), acfProperties.modelString, acfProperties.modelName, getAircraftDescription()); emitAircraftModelChanged(path, filename, getAircraftLivery(), getAircraftIcaoCode(), acfProperties.modelString, acfProperties.modelName, getAircraftDescription());
} }
std::string CService::getVersionNumber() const
{
std::string version(XSWIFTBUS_VERSION);
const std::string lastCommitTs(GIT_COMMIT_TS);
const long long lctsll = std::stoll(lastCommitTs); // at least 64bit
// now we have to converto int
// max 2147483647 (2^31 - 1)
// 1MMddHHmm (years since 2010)
const long long yearOffset = 201000000000;
const int lctsInt = static_cast<int>(lctsll - yearOffset);
version = version + "." + std::to_string(lctsInt);
return version;
}
void CService::addTextMessage(const std::string &text, double red, double green, double blue) void CService::addTextMessage(const std::string &text, double red, double green, double blue)
{ {
if (text.empty()) { return; } if (text.empty()) { return; }

View File

@@ -61,7 +61,7 @@ namespace XSwiftBus
void onAircraftModelChanged(); void onAircraftModelChanged();
//! Returns the XSwiftBus version number //! Returns the XSwiftBus version number
std::string getVersionNumber() const { return XSWIFTBUS_VERSION; } std::string getVersionNumber() const;
//! Add a text message to the on-screen display, with RGB components in the range [0,1] //! Add a text message to the on-screen display, with RGB components in the range [0,1]
void addTextMessage(const std::string &text, double red, double green, double blue); void addTextMessage(const std::string &text, double red, double green, double blue);

View File

@@ -72,7 +72,19 @@ DEFINES += XPLM210=1
DEFINES += XPMP_CLIENT_NAME=\\\"xswiftbus\\\" DEFINES += XPMP_CLIENT_NAME=\\\"xswiftbus\\\"
DEFINES += XPMP_CLIENT_LONGNAME=\\\"xswiftbus\\\" DEFINES += XPMP_CLIENT_LONGNAME=\\\"xswiftbus\\\"
win32: GIT_BIN = $$system($$(SYSTEMROOT)\system32\where git 2> nul)
else: GIT_BIN = $$system(which git 2> /dev/null)
isEmpty(GIT_BIN) {
GIT_HEAD_SHA1="<unknown>"
GIT_COMMIT_TS="0"
} else {
GIT_HEAD_SHA1=$$system(git rev-parse --short HEAD)
GIT_COMMIT_TS=$$system(git log -1 --date=format:'%Y%m%d%H%M' --pretty=format:%cd)
}
DEFINES += XSWIFTBUS_VERSION=\\\"$$swiftConfig(version.full)\\\" DEFINES += XSWIFTBUS_VERSION=\\\"$$swiftConfig(version.full)\\\"
DEFINES += GIT_COMMIT_TS=\\\"$$GIT_COMMIT_TS\\\"
# X-Plane plugins must follow a prescribed filename and directory structure. # X-Plane plugins must follow a prescribed filename and directory structure.
TARGET_EXT = .xpl TARGET_EXT = .xpl