From cbc6775756dff50286c97d95839822d94d016ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Sun, 24 Apr 2022 13:30:51 +0200 Subject: [PATCH] Add version to About dialog --- CMakeLists.txt | 12 +++++++++++- about.cpp | 5 ++++- about/tenmon | 2 +- gitversion.cmake | 19 +++++++++++++++++++ gitversion.h.in | 6 ++++++ 5 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 gitversion.cmake create mode 100644 gitversion.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 868613f..2c95b7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,7 @@ endif() add_executable(tenmon WIN32 ${TENMON_SRC}) find_path(FITS_INCLUDE fitsio2.h PATH_SUFFIXES cfitsio REQUIRED) -target_include_directories(tenmon PRIVATE ${OpenCV_INCLUDE_DIRS} ${FITS_INCLUDE} 3rdparty/include) +target_include_directories(tenmon PRIVATE ${OpenCV_INCLUDE_DIRS} ${FITS_INCLUDE} 3rdparty/include ${CMAKE_BINARY_DIR}) if(WIN32) target_link_directories(tenmon PRIVATE 3rdparty/lib/Windows) @@ -81,3 +81,13 @@ if(UNIX) endif() endif() endif(UNIX) + +option(RELEASE_BUILD "Release build" OFF) +if(RELEASE_BUILD) + add_custom_target(tenmon_version COMMAND ${CMAKE_COMMAND} -Dlocal_dir="${CMAKE_CURRENT_SOURCE_DIR}" -Doutput_dir="${CMAKE_CURRENT_BINARY_DIR}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/gitversion.cmake") + add_dependencies(tenmon tenmon_version) +else() + execute_process(COMMAND ${CMAKE_COMMAND} -Dlocal_dir=${CMAKE_CURRENT_SOURCE_DIR} -Doutput_dir=${CMAKE_CURRENT_BINARY_DIR} + -P "${CMAKE_CURRENT_SOURCE_DIR}/gitversion.cmake") +endif() diff --git a/about.cpp b/about.cpp index 99a7298..2d54068 100644 --- a/about.cpp +++ b/about.cpp @@ -4,6 +4,7 @@ #include #include #include +#include "gitversion.h" About::About(QWidget *parent) : QDialog(parent) { @@ -14,7 +15,9 @@ About::About(QWidget *parent) : QDialog(parent) QFile tenmonText(":/about/tenmon"); tenmonText.open(QIODevice::ReadOnly); - label->setText(tenmonText.readAll()); + QByteArray text = tenmonText.readAll(); + text.replace("@GITVERSION@", GITVERSION); + label->setText(text); label->setOpenExternalLinks(true); QTextEdit *pcl = new QTextEdit(this); diff --git a/about/tenmon b/about/tenmon index e768d5f..c3e1d7f 100644 --- a/about/tenmon +++ b/about/tenmon @@ -2,7 +2,7 @@

Tenmon

Tenmon is FITS/XISF image viewer and converter. It also index FITS keywords.
-Copyright © 2022 Dušan Poizl

+v@GITVERSION@ Copyright © 2022 Dušan Poizl

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gitversion.cmake b/gitversion.cmake new file mode 100644 index 0000000..1b27b56 --- /dev/null +++ b/gitversion.cmake @@ -0,0 +1,19 @@ +set(_build_version "unknown") + +find_package(Git) +if(GIT_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags HEAD + WORKING_DIRECTORY "${local_dir}" + OUTPUT_VARIABLE _build_version + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + message(STATUS "GIT hash: ${_build_version}") +else() + message(STATUS "GIT not found") +endif() + +message(STATUS "local:${local_dir} output:${output_dir}") + +configure_file("${local_dir}/gitversion.h.in" "${output_dir}/gitversion.h" @ONLY) diff --git a/gitversion.h.in b/gitversion.h.in new file mode 100644 index 0000000..85f3b36 --- /dev/null +++ b/gitversion.h.in @@ -0,0 +1,6 @@ +#ifndef GITVERSION_H +#define GITVERSION_H + +#define GITVERSION "@_build_version@" + +#endif