From 8736e396431f4d32f41314a2fbcf900f0ae66e76 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 22 Feb 2015 00:20:42 +0000 Subject: [PATCH] Abandon getting changeset revision number from svn keyword expansion Subversion keyword expansion of $Rev:$ in a file is hopeless as it is impossible to coordinate with a release. Revert to an empty string when it can't be discovered with svn info etc.. Further changes to the way verion and revision numbers are generated Local builds from source tar balls or the two phase wsjtx-superbuild no longer specify any revision, just the version number. Since these sort of builds are expected to be release candidates or release versions the revision (svn changeset number) is implicit from the svn tag of the version. Merged from wsjtx-1.4 branch. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4986 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- CMake/getsvn.cmake | 2 +- main.cpp | 8 +------- mainwindow.cpp | 4 ++-- revision_utils.cpp | 31 ++++++++++++++++++------------- revision_utils.hpp | 1 + 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/CMake/getsvn.cmake b/CMake/getsvn.cmake index bf7e73f73..754963639 100644 --- a/CMake/getsvn.cmake +++ b/CMake/getsvn.cmake @@ -45,7 +45,7 @@ else (Subversion_FOUND AND EXISTS "${SOURCE_DIR}/.svn") # write a file with the SVNVERSION define file (WRITE "${OUTPUT_DIR}/svnversion.h.txt" "#define SVNVERSION r${MY_WC_LAST_CHANGED_REV}\n") else (Subversion_FOUND AND EXISTS "${SOURCE_DIR}/.svn") - file (WRITE "${OUTPUT_DIR}/svnversion.h.txt" "#define SVNVERSION local\n") + file (WRITE "${OUTPUT_DIR}/svnversion.h.txt" "#define SVNVERSION\n") endif (Subversion_FOUND AND EXISTS "${SOURCE_DIR}/.git") endif (Subversion_FOUND AND EXISTS "${SOURCE_DIR}/.svn") diff --git a/main.cpp b/main.cpp index 1bf6e6dba..310456c3d 100644 --- a/main.cpp +++ b/main.cpp @@ -44,13 +44,7 @@ int main(int argc, char *argv[]) // Override programs executable basename as application name. a.setApplicationName ("WSJT-X"); -#if CMAKE_BUILD - a.setApplicationVersion (WSJTX_STRINGIZE (WSJTX_VERSION_MAJOR) - "." WSJTX_STRINGIZE (WSJTX_VERSION_MINOR) - "." WSJTX_STRINGIZE (WSJTX_VERSION_PATCH) " " + revision ()); -#else - a.setApplicationVersion ("Not for Release"); -#endif + a.setApplicationVersion (version ()); bool multiple {false}; diff --git a/mainwindow.cpp b/mainwindow.cpp index 1582f05c3..7cb51d533 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -77,7 +77,7 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme unsigned downSampleFactor, QWidget *parent) : QMainWindow(parent), m_dataDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}, - m_revision {revision ("$Rev$")}, + m_revision {revision ()}, m_multiple {multiple}, m_settings (settings), ui(new Ui::MainWindow), @@ -3134,7 +3134,7 @@ void MainWindow::pskSetLocal () psk_Reporter->setLocalStation( m_config.my_callsign () , m_config.my_grid () - , antenna_description, "WSJT-X " + m_revision); + , antenna_description, program_title (m_revision)); } void MainWindow::transmitDisplay (bool transmitting) diff --git a/revision_utils.cpp b/revision_utils.cpp index aed2ba2e8..b3413fbec 100644 --- a/revision_utils.cpp +++ b/revision_utils.cpp @@ -40,12 +40,7 @@ QString revision (QString const& svn_rev_string) } else if (!revision_from_svn.isEmpty ()) { - // fall back to revision in ths file, this is potentially - // wrong because svn only updates the id when this file is - // touched - // - // this case gets us a revision when someone builds from a - // source snapshot or copy + // fall back to revision passed in if any result = revision_from_svn; } else @@ -61,23 +56,33 @@ QString revision (QString const& svn_rev_string) #else if (!revision_from_svn.isEmpty ()) { - // not CMake build so all we have is svn revision in this file + // not CMake build so all we have is revision passed result = revision_from_svn; } #endif - if (result.isEmpty ()) - { - result = "local"; // last resort fall back - } return result.trimmed (); } +QString version () +{ +#if defined (CMAKE_BUILD) + QString v {WSJTX_STRINGIZE (WSJTX_VERSION_MAJOR) "." WSJTX_STRINGIZE (WSJTX_VERSION_MINOR) "." WSJTX_STRINGIZE (WSJTX_VERSION_PATCH)}; +# if defined (WSJTX_RC) + v += "-rc" WSJTX_STRINGIZE (WSJTX_RC); +# endif +#else + QString v {"Not for Release"}; +#endif + return v; +} + QString program_title (QString const& revision) { + QString id {QCoreApplication::applicationName ()}; #if defined (CMAKE_BUILD) - QString id {QCoreApplication::applicationName () + " v" WSJTX_STRINGIZE (WSJTX_VERSION_MAJOR) "." WSJTX_STRINGIZE (WSJTX_VERSION_MINOR) "." WSJTX_STRINGIZE (WSJTX_VERSION_PATCH)}; + id += " v" + version (); #else - QString id {"WSJT-X Not for Release"}; + id += " Not for Release"; #endif return id + " " + revision + " by K1JT"; } diff --git a/revision_utils.hpp b/revision_utils.hpp index 8da0c9586..838c36e25 100644 --- a/revision_utils.hpp +++ b/revision_utils.hpp @@ -4,6 +4,7 @@ #include QString revision (QString const& svn_rev_string = QString {}); +QString version (); QString program_title (QString const& revision = QString {}); #endif