From 7e142bb57d18f997d8d8c8d30b464785e88a7f20 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Tue, 4 Dec 2018 22:56:51 -0500 Subject: [PATCH] Automatically generate a more informative version string. --- CMakeLists.txt | 44 ++++++++++++++++++++++++++++++++++------- glabels/AboutDialog.cpp | 2 +- model/Version.h.in | 4 ++-- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 14b5bee..538af6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,18 +12,48 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/" #======================================= -# Packaging and Version Information +# Version Information #======================================= -set (Website "glabels.org") -set (CPACK_PACKAGE_VENDOR ${Website}) +set (WEBSITE "glabels.org") + +execute_process( + COMMAND git log -1 --format=%h + RESULT_VARIABLE COMMIT_HASH_VALID + OUTPUT_VARIABLE COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE +) +if (NOT ${COMMIT_HASH_VALID} STREQUAL "0") + set (COMMIT_HASH "exported") +endif () + +execute_process( + COMMAND git log -1 --format=%cd --date=short + RESULT_VARIABLE COMMIT_DATE_VALID + OUTPUT_VARIABLE COMMIT_DATE + OUTPUT_STRIP_TRAILING_WHITESPACE +) +if (NOT ${COMMIT_DATE_VALID} STREQUAL "0") + string (TIMESTAMP COMMIT_DATE %Y-%m-%d) +endif () + +# Uncomment for snapshots, comment for releases +set(VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}-snapshot (${COMMIT_HASH} ${COMMIT_DATE})") + +# Uncomment for releases, comment for snapshots +#set(VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") + + +#======================================= +# Packaging Information +#======================================= +set (CPACK_PACKAGE_VENDOR ${WEBSITE}) set (CPACK_PACKAGE_NAME glabels) -string (TIMESTAMP _date "%Y%m%d") set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) -set (CPACK_PACKAGE_VERSION_TWEAK ${_date}) +set (CPACK_PACKAGE_VERSION_TWEAK ${COMMIT_HASH}) set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "gLabels Label Designer") set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") @@ -32,7 +62,7 @@ set (CPACK_PACKAGE_EXECUTABLES "glabels-qt;gLabels") set (CPACK_CREATE_DESKTOP_LINKS "glabels-qt") set (CPACK_NSIS_DISPLAY_NAME "gLabels") -set (CPACK_NSIS_URL_INFO_ABOUT "http://${Website}") +set (CPACK_NSIS_URL_INFO_ABOUT "http://${WEBSITE}") set (CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/glabels/windows-icon/glabels.ico") set (CPACK_NSIS_MODIFY_PATH "ON") @@ -111,7 +141,7 @@ add_subdirectory (data) #======================================= message (STATUS "") message (STATUS "Project name ............ " ${CMAKE_PROJECT_NAME}) -message (STATUS "Project version ......... " ${Full_Version}) +message (STATUS "Project version ......... " ${VERSION_STRING}) message (STATUS "Installation prefix ..... " ${CMAKE_INSTALL_PREFIX}) message (STATUS "Source code location .... " ${glabels_SOURCE_DIR}) message (STATUS "C++ Compiler ............ " ${CMAKE_CXX_COMPILER_ID} " " ${CMAKE_CXX_COMPILER} " " ${CMAKE_CXX_COMPILER_VERSION}) diff --git a/glabels/AboutDialog.cpp b/glabels/AboutDialog.cpp index d72db39..ef9ff99 100644 --- a/glabels/AboutDialog.cpp +++ b/glabels/AboutDialog.cpp @@ -42,7 +42,7 @@ namespace glabels QString description = tr("A program to create labels and business cards."); - QString copyright = "Copyright © 2017 Jim Evins "; + QString copyright = "Copyright © 2018 Jim Evins "; QString licenseParagraph1 = tr( "gLabels is free software: you can redistribute it and/or modify " diff --git a/model/Version.h.in b/model/Version.h.in index 619658d..b7edc86 100644 --- a/model/Version.h.in +++ b/model/Version.h.in @@ -29,13 +29,13 @@ namespace glabels namespace Version { - const QString WEBSITE = "http://@Website@"; + const QString WEBSITE = "http://@WEBSITE@"; const int MAJOR = @glabels-qt_VERSION_MAJOR@; const int MINOR = @glabels-qt_VERSION_MINOR@; const int MICRO = @glabels-qt_VERSION_PATCH@; - const QString STRING = "@glabels-qt_VERSION@"; + const QString STRING = "@VERSION_STRING@"; } }