X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fgenversion.cpp;h=cf64461eac11420a35b5fc634ff68211f899e582;hp=e8e75f9f9c340ebf029b096ffbf289567f4c0983;hb=6fe50f14efa32c2ed95e7b34a4ba1fd1604617ec;hpb=cb1918d94b5d8ec9f05a192c96fab938782dabf5 diff --git a/src/common/genversion.cpp b/src/common/genversion.cpp index e8e75f9f..cf64461e 100644 --- a/src/common/genversion.cpp +++ b/src/common/genversion.cpp @@ -37,21 +37,21 @@ 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 QProcess git; git.setWorkingDirectory(gitroot); - git.start("git-describe", QStringList("--long")); + git.start("git", QStringList() << "describe" << "--long"); if(git.waitForFinished(10000)) { QString gitversion = git.readAllStandardOutput(); if(!gitversion.isEmpty() && !gitversion.contains("fatal")) { // seems we have a valid version string, now prettify it... // check if the workdir is dirty first QString dirty; - QStringList params = QStringList() << "--name-only" << "HEAD"; - git.start("git-diff-index", params); + QStringList params = QStringList() << "diff-index" << "--name-only" << "HEAD"; + git.start("git", params); if(git.waitForFinished(10000)) { if(!git.readAllStandardOutput().isEmpty()) dirty = "*"; } @@ -68,19 +68,25 @@ 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(); } } // ok, create our version.gen now QFile gen(target); if(!gen.open(QIODevice::WriteOnly | QIODevice::Text)) { - qFatal(QString("Could not write %1!").arg(target).toAscii()); + qFatal("%s", qPrintable(QString("Could not write %1!").arg(target))); return 255; } 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; }