aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/version.h.in12
-rw-r--r--lib/about/aboutdialog.cpp3
-rw-r--r--lib/about/meson.build3
-rw-r--r--lib/configuration/meson.build3
-rw-r--r--meson.build28
-rw-r--r--src/browser.cpp3
-rw-r--r--src/main.cpp6
-rw-r--r--src/meson.build4
8 files changed, 30 insertions, 32 deletions
diff --git a/include/version.h.in b/include/version.h.in
index c52ce77..44f10d9 100644
--- a/include/version.h.in
+++ b/include/version.h.in
@@ -1,14 +1,8 @@
#ifndef SMOLBOTE_VERSION_H
#define SMOLBOTE_VERSION_H
-// Version: 1.2.3
-#mesondefine poi_Version
-
-// Describe: 1.2.3-r123-0123456789ab
-#mesondefine poi_Describe
-
-// Build
-#mesondefine poi_Build
+// output of 'git describe --long --abbrev=40':
+// x.y.z-0-g0123456789012345678901234567890123456789
+#define poi_Version "@VCS_TAG@"
#endif // SMOLBOTE_VERSION_H
-
diff --git a/lib/about/aboutdialog.cpp b/lib/about/aboutdialog.cpp
index 555a69f..02ae2cf 100644
--- a/lib/about/aboutdialog.cpp
+++ b/lib/about/aboutdialog.cpp
@@ -48,8 +48,7 @@ AboutDialog::AboutDialog(QWidget *parent)
"</ul>"
"<p>This program is distributed in the hope that it will be useful, but without any warranty.</p>"));
- ui->detailsLabel->setText(tr("<p>Version " poi_Describe "</p>"
- "<p>Build " poi_Build "</p>"
+ ui->detailsLabel->setText(tr("<p>Version " poi_Version "</p>"
"<p>Compiled with " compiler "</p>"));
}
diff --git a/lib/about/meson.build b/lib/about/meson.build
index 38769a8..35598b3 100644
--- a/lib/about/meson.build
+++ b/lib/about/meson.build
@@ -6,8 +6,7 @@ about_moc = qt5.preprocess(
about_inc = include_directories('.')
about_lib = static_library('about', ['aboutdialog.cpp', about_moc],
- dependencies: dep_qt5,
- include_directories: genheader_inc
+ dependencies: [dep_qt5, dep_genheaders]
)
dep_about = declare_dependency(
diff --git a/lib/configuration/meson.build b/lib/configuration/meson.build
index b166d5e..79daa78 100644
--- a/lib/configuration/meson.build
+++ b/lib/configuration/meson.build
@@ -5,8 +5,7 @@ configuration_moc = qt5.preprocess(
)
configuration_lib = static_library('configuration', ['configuration.cpp', configuration_moc],
- dependencies: [dep_boost, dep_qt5],
- include_directories: genheader_inc
+ dependencies: [dep_boost, dep_qt5, dep_genheaders]
)
dep_configuration = declare_dependency(
diff --git a/meson.build b/meson.build
index 0993749..b177e24 100644
--- a/meson.build
+++ b/meson.build
@@ -26,22 +26,26 @@ dep_plasma = declare_dependency(
# Generate config header
include = include_directories('include')
-conf = configuration_data()
-conf.set_quoted('poi_Version', '1.0.0')
-conf.set_quoted('poi_Describe', '1.0.0-stable')
-conf.set_quoted('poi_Build', 'custom-1.0.0')
-
-configure_file(configuration: conf, input: 'include/version.h.in', output: 'version.h')
-genheader_inc = include_directories('.')
+git = find_program('git').path()
pymod = import('python')
python3 = pymod.find_installation('python3')
-kconfiggen = custom_target('configheader',
- input: ['tools/config.py', 'src/Kconfig', 'linux/.config'],
- output: 'config.h',
- command: [python3, '@INPUT0@', '--kconfig=@INPUT1@', '--dotconfig=@INPUT2@', '--generate=@OUTPUT@'],
- build_by_default: true
+dep_genheaders = declare_dependency(
+ include_directories: include_directories('.'),
+ sources: [
+ vcs_tag(
+ command: [git, 'describe', '--long', '--abbrev=40'],
+ #fallback: defaults to meson.project_version(),
+ input: 'include/version.h.in',
+ output: 'version.h'
+ ),
+ custom_target('configheader',
+ input: ['tools/config.py', 'src/Kconfig', 'linux/.config'],
+ output: 'config.h',
+ command: [python3, '@INPUT0@', '--kconfig=@INPUT1@', '--dotconfig=@INPUT2@', '--generate=@OUTPUT@'],
+ build_by_default: true
+ )]
)
interfaces_moc = qt5.preprocess(
diff --git a/src/browser.cpp b/src/browser.cpp
index 22302ae..8ff8616 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -31,13 +31,14 @@
#include <QPluginLoader>
#include <plugininterface.h>
#include "config.h"
+#include <QVersionNumber>
Browser::Browser(int &argc, char *argv[], bool allowSecondary)
: SingleApplication(argc, argv, allowSecondary, SingleApplication::User | SingleApplication::SecondaryNotification | SingleApplication::ExcludeAppVersion)
{
setApplicationName(CONFIG_POI_NAME);
setWindowIcon(QIcon(CONFIG_POI_ICON));
- setApplicationVersion(poi_Version);
+ setApplicationVersion(QVersionNumber::fromString(QLatin1String(poi_Version)).toString());
}
Browser::~Browser()
diff --git a/src/main.cpp b/src/main.cpp
index 6ceacab..1a8dd11 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -18,6 +18,7 @@
#include <memory>
#include <QPluginLoader>
#include <plugininterface.h>
+#include <QVersionNumber>
#ifdef _WIN32
#include <cstdio>
#include <windows.h>
@@ -93,13 +94,14 @@ int main(int argc, char **argv)
// --version
if(config->exists("version")) {
- std::cout << "smolbote " << poi_Version << std::endl;
+ auto ver = QVersionNumber::fromString(QLatin1String(poi_Version));
+ std::cout << "smolbote " << ver.toString().toStdString() << std::endl;
return 0;
}
// --build
if(config->exists("build")) {
- std::cout << poi_Build;
+ std::cout << poi_Version << std::endl;
return 0;
}
diff --git a/src/meson.build b/src/meson.build
index 715e154..a977e8b 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -21,9 +21,9 @@ endif
poi = executable(get_option('poiName'), install: true,
cpp_args: ['-DQAPPLICATION_CLASS=QApplication'],
- dependencies: [dep_qt5, dep_boost, dep_SingleApplication, optdepends,
+ dependencies: [dep_qt5, dep_boost, dep_SingleApplication, dep_genheaders, optdepends,
dep_about, dep_addressbar, dep_bookmarks, dep_configuration, dep_downloads, dep_urlfilter, dep_web],
- include_directories: [include, genheader_inc],
+ include_directories: [include],
sources: ['main.cpp', poi_moc,
'browser.cpp',
'session.cpp',