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