-void Quassel::setupBuildInfo() {
- _buildInfo.applicationName = "Quassel IRC";
- _buildInfo.coreApplicationName = "Quassel Core";
- _buildInfo.clientApplicationName = "Quassel Client";
- _buildInfo.organizationName = "Quassel Project";
- _buildInfo.organizationDomain = "quassel-irc.org";
-/*
-# include "version.inc"
-# include "version.gen"
-
- if(quasselGeneratedVersion.isEmpty()) {
- if(quasselCommit.isEmpty())
- quasselVersion = QString("v%1 (unknown rev)").arg(quasselBaseVersion);
- else
- quasselVersion = QString("v%1 (dist-%2, %3)").arg(quasselBaseVersion).arg(quasselCommit.left(7))
- .arg(QDateTime::fromTime_t(quasselArchiveDate).toLocalTime().toString("yyyy-MM-dd"));
- } else {
- QStringList parts = quasselGeneratedVersion.split(':');
- quasselVersion = QString("v%1").arg(parts[0]);
- if(parts.count() >= 2) quasselVersion.append(QString(" (%1)").arg(parts[1]));
- }
- quasselBuildDate = __DATE__;
- quasselBuildTime = __TIME__;
- */
+
+void Quassel::setupBuildInfo()
+{
+ _buildInfo.applicationName = "quassel";
+ _buildInfo.coreApplicationName = "quasselcore";
+ _buildInfo.clientApplicationName = "quasselclient";
+ _buildInfo.organizationName = "Quassel Project";
+ _buildInfo.organizationDomain = "quassel-irc.org";
+
+ _buildInfo.protocolVersion = 10; // FIXME: deprecated, will be removed
+
+ _buildInfo.baseVersion = QUASSEL_VERSION_STRING;
+ _buildInfo.generatedVersion = GIT_DESCRIBE;
+
+ // Check if we got a commit hash
+ if (!QString(GIT_HEAD).isEmpty()) {
+ _buildInfo.commitHash = GIT_HEAD;
+ QDateTime date;
+ date.setTime_t(GIT_COMMIT_DATE);
+ _buildInfo.commitDate = date.toString();
+ }
+ else if (!QString(DIST_HASH).contains("Format")) {
+ _buildInfo.commitHash = DIST_HASH;
+ _buildInfo.commitDate = QString(DIST_DATE);
+ }
+
+ // create a nice version string
+ if (_buildInfo.generatedVersion.isEmpty()) {
+ if (!_buildInfo.commitHash.isEmpty()) {
+ // dist version
+ _buildInfo.plainVersionString = QString("v%1 (dist-%2)")
+ .arg(_buildInfo.baseVersion)
+ .arg(_buildInfo.commitHash.left(7));
+ _buildInfo.fancyVersionString = QString("v%1 (dist-<a href=\"https://github.com/quassel/quassel/commit/%3\">%2</a>)")
+ .arg(_buildInfo.baseVersion)
+ .arg(_buildInfo.commitHash.left(7))
+ .arg(_buildInfo.commitHash);
+ }
+ else {
+ // we only have a base version :(
+ _buildInfo.plainVersionString = QString("v%1 (unknown revision)").arg(_buildInfo.baseVersion);
+ }
+ }
+ else {
+ // analyze what we got from git-describe
+ QRegExp rx("(.*)-(\\d+)-g([0-9a-f]+)(-dirty)?$");
+ if (rx.exactMatch(_buildInfo.generatedVersion)) {
+ QString distance = rx.cap(2) == "0" ? QString() : QString("%1+%2 ").arg(rx.cap(1), rx.cap(2));
+ _buildInfo.plainVersionString = QString("v%1 (%2git-%3%4)")
+ .arg(_buildInfo.baseVersion, distance, rx.cap(3), rx.cap(4));
+ if (!_buildInfo.commitHash.isEmpty()) {
+ _buildInfo.fancyVersionString = QString("v%1 (%2git-<a href=\"https://github.com/quassel/quassel/commit/%5\">%3</a>%4)")
+ .arg(_buildInfo.baseVersion, distance, rx.cap(3), rx.cap(4), _buildInfo.commitHash);
+ }
+ }
+ else {
+ _buildInfo.plainVersionString = QString("v%1 (invalid revision)").arg(_buildInfo.baseVersion);
+ }
+ }
+ if (_buildInfo.fancyVersionString.isEmpty())
+ _buildInfo.fancyVersionString = _buildInfo.plainVersionString;