Update genversion and Global to use version.dist
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 1 Jul 2008 21:26:02 +0000 (23:26 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 1 Jul 2008 21:44:31 +0000 (23:44 +0200)
src/common/genversion.cpp
src/common/global.cpp
src/common/global.h

index e48d494..02a7a5e 100644 (file)
@@ -37,7 +37,7 @@ int main(int argc, char **argv) {
   }
   QString gitroot = argv[1];
   QString target = argv[2];
-  QString version;
+  QString version, commit, archivetime;
 
   if(QFile::exists(gitroot + "/.git")) {
     // try to execute git-describe to get a version string
@@ -68,7 +68,10 @@ int main(int argc, char **argv) {
     // hmm, Git failed... let's check for version.dist instead
     QFile dist(gitroot + "/version.dist");
     if(dist.open(QIODevice::ReadOnly | QIODevice::Text)) {
-      version = dist.readAll();
+      QRegExp rxCommit("(^[0-9a-f]+)");
+      QRegExp rxTimestamp("(^[0-9]+)");
+      if(rxCommit.indexIn(dist.readLine()) > -1) commit = rxCommit.cap(1);
+      if(rxTimestamp.indexIn(dist.readLine()) > -1) archivetime = rxTimestamp.cap(1);
       dist.close();
     }
   }
@@ -80,7 +83,10 @@ int main(int argc, char **argv) {
   }
   gen.write(QString("quasselGeneratedVersion = \"%1\";\n"
                     "quasselBuildDate = \"%2\";\n"
-                    "quasselBuildTime = \"%3\";\n").arg(version).arg(__DATE__).arg(__TIME__).toAscii());
+                    "quasselBuildTime = \"%3\";\n"
+                    "quasselCommit = \"%4\";\n"
+                    "quasselArchiveDate = %5;\n")
+                    .arg(version).arg(__DATE__).arg(__TIME__).arg(commit).arg(archivetime.toUInt()).toAscii());
   gen.close();
   return EXIT_SUCCESS;
 }
index 8941d5b..bd5ee20 100644 (file)
@@ -17,6 +17,7 @@
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+#include <QDateTime>
 #include <QObject>
 #include <QMetaType>
 
@@ -102,12 +103,14 @@ void Global::registerMetaTypes() {
 void Global::setupVersion() {
 
 #  include "version.inc"
-#  ifdef HAVE_VERSION_GEN
-#    include "version.gen"
-#  endif
+#  include "version.gen"
 
   if(quasselGeneratedVersion.isEmpty()) {
-    quasselVersion = QString("v%1 (unknown rev)").arg(quasselBaseVersion);
+    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]);
@@ -124,6 +127,8 @@ QString Global::quasselBaseVersion;
 QString Global::quasselGeneratedVersion;
 QString Global::quasselBuildDate;
 QString Global::quasselBuildTime;
+QString Global::quasselCommit;
+uint Global::quasselArchiveDate;
 uint Global::protocolVersion;
 uint Global::clientNeedsProtocol;
 uint Global::coreNeedsProtocol;
index 777be21..ac13646 100644 (file)
@@ -36,6 +36,8 @@ namespace Global {
   extern QString quasselBaseVersion;
   extern QString quasselBuildDate;
   extern QString quasselBuildTime;
+  extern QString quasselCommit;
+  extern uint quasselArchiveDate;
   extern uint protocolVersion;
 
   extern uint clientNeedsProtocol;  //< Minimum protocol version the client needs