diff options
-rw-r--r-- | BUILDING.md | 27 | ||||
-rw-r--r-- | CONTRIBUTING.md | 16 | ||||
-rw-r--r-- | src/GitRepo.js | 18 | ||||
-rw-r--r-- | src/forms/blockerdialog.cpp | 2 | ||||
-rw-r--r-- | src/forms/blockerdialog.h | 2 | ||||
-rw-r--r-- | src/forms/downloaddialog.cpp | 2 | ||||
-rw-r--r-- | src/main.cpp | 4 | ||||
-rw-r--r-- | src/mainwindow.cpp | 5 | ||||
-rw-r--r-- | src/smolbote.pro | 48 | ||||
-rw-r--r-- | src/smolbote.qbs | 21 |
10 files changed, 75 insertions, 70 deletions
diff --git a/BUILDING.md b/BUILDING.md index dabd1e8..6afad9f 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -1,28 +1,34 @@ ## Building -* (Recommended) Create a build folder and change into it +### Tools +* Qt +* gcc on linux, msvc on windows +* qbs + +### Steps + +* Create a build folder ``` -mkdir build && cd build +[smolbote repo]$ mkdir build ``` -* Generate the Makefile +* Run qbs ``` -qmake-qt5 ../src/smolbote.pro - -* [TODO] Prepare translations +[smolbote repo]$ qbs build --build-directory build --file src/smolbote.qbs profile:qt5 release +``` +This installs the files to build/release/install-root. -* Run make +* Test run using the specified Qt profile (optional) ``` -make +[smolbote repo]$ qbs run --build-directory build --file src/smolbote.qbs --products poi profile:qt5 release ``` ### Notes -* Don't do any steps marked [TODO] * Windows: MSVC compiler is required because of QtWebEngine dependency * Windows: Passing the -v or -h parameters creates a dialog box instead of writing the output to stdout. This is Qt behaviour. -## Deploying +## Packaging ### Tarball @@ -53,6 +59,7 @@ sha512sum --check checksum.sha512 ``` ### Windows +Collect the required libraries using ``` QT_DIR\QT_VER\msvc2015_64\windeployqt.exe build-PROFILE\release\qtbrowser.exe diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 58ba086..8ccc0e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,18 @@ +### Versioning + +#### Major version +Changed infrequently and almost entirely out of foppery and whim. + +#### Minor version +Milestone of multiple features. + +#### Revision +Major bugfixes and each new feature should get a revision. + +### Branching +* master - main branch, should be kept up-to-date, and have only working code +* development - development branch, anything goes there + ### Folder structure folder | description @@ -8,7 +23,6 @@ /src/webengine | QWebEngine* subclasses /test | test run location, mainly for QtCreator - ### QtCreator * In the project Run Settings set the working directory to _$repo/test_, and the command line arguments to _-c ./config.ini_. diff --git a/src/GitRepo.js b/src/GitRepo.js index 57858aa..d7e19a7 100644 --- a/src/GitRepo.js +++ b/src/GitRepo.js @@ -1,5 +1,15 @@ -function repoVersion() { - console.log("testing"); - return "0.0.0"; +var Process = loadExtension("qbs.Process") + +function read(workingDirectory) { + var git = new Process(); + git.setWorkingDirectory(workingDirectory); + + var meta = Object.create(null); + git.exec("git", ["describe", "--abbrev=0", "--tag"], true); + meta.version = git.readLine(); + + git.exec("git", ["describe", "--tag"], true); + meta.describe = git.readLine(); + + return meta; } - diff --git a/src/forms/blockerdialog.cpp b/src/forms/blockerdialog.cpp index ed2bbae..ee6bdfc 100644 --- a/src/forms/blockerdialog.cpp +++ b/src/forms/blockerdialog.cpp @@ -1,7 +1,7 @@ #include "blockerdialog.h" #include "ui_blockerdialog.h" -#include "../settings.h" +#include "settings.h" #include <QLabel> BlockerDialog::BlockerDialog(QWidget *parent) : diff --git a/src/forms/blockerdialog.h b/src/forms/blockerdialog.h index 98e1a6e..59dce0a 100644 --- a/src/forms/blockerdialog.h +++ b/src/forms/blockerdialog.h @@ -2,7 +2,7 @@ #define URLINTERCEPTORDIALOG_H #include <QDialog> -#include "../webengine/blockersubscription.h" +#include "webengine/blockersubscription.h" namespace Ui { class UrlInterceptorDialog; diff --git a/src/forms/downloaddialog.cpp b/src/forms/downloaddialog.cpp index baf6202..bb92a0f 100644 --- a/src/forms/downloaddialog.cpp +++ b/src/forms/downloaddialog.cpp @@ -26,7 +26,7 @@ #include <QFileDialog> #include <QListWidget> #include <QLabel> -#include "../webengine/downloaditemform.h" +#include "webengine/downloaditemform.h" DownloadDialog::DownloadDialog(QWidget *parent) : QDialog(parent), diff --git a/src/main.cpp b/src/main.cpp index 2a28439..d6a6fd0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,7 +27,9 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setApplicationName("smolbote"); - app.setApplicationVersion("0.0.0"); +#ifdef VERSION + app.setApplicationVersion(VERSION); +#endif app.setWindowIcon(QIcon(QLatin1String(":/icon.svg"))); QCommandLineParser parser; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8f54b0b..8413b18 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -114,11 +114,12 @@ void MainWindow::closeEvent(QCloseEvent *event) void MainWindow::about() { - QMessageBox::about(this, tr("About"), tr("<h3>smolbote</h3>" + QMessageBox::about(this, tr("About"), tr("<h3>smolbote %1</h3>" "<p><i>yet another Qute browser</i></p>" "<p>Copyright (C) 2017 Xian Nox</p>" "<p>This program comes with ABSOLUTELY NO WARRANTY. " - "This is free software, and you are welcome to redistribute it under the conditions set by the GNU GPLv3.</p>")); + "This is free software, and you are welcome to redistribute it under the conditions set by the GNU GPLv3.</p>") + .arg(qApp->applicationVersion())); } void MainWindow::loadProfile(const QString &name) diff --git a/src/smolbote.pro b/src/smolbote.pro deleted file mode 100644 index c8be516..0000000 --- a/src/smolbote.pro +++ /dev/null @@ -1,48 +0,0 @@ -#------------------------------------------------- -# -# -# -#------------------------------------------------- - -QT += core gui widgets \ - webengine webenginewidgets - -TARGET = poi -TEMPLATE = app - - -SOURCES += main.cpp \ - mainwindow.cpp \ - browser.cpp \ - widgets/webviewtabbar.cpp \ - settings.cpp \ - forms/profiledialog.cpp \ - webengine/webengineprofile.cpp \ - forms/downloaddialog.cpp \ - webengine/downloaditemform.cpp \ - webengine/urlinterceptor.cpp \ - forms/blockerdialog.cpp \ - webengine/blockersubscription.cpp \ - webengine/blockerrule.cpp - -HEADERS += mainwindow.h \ - browser.h \ - widgets/webviewtabbar.h \ - settings.h \ - forms/profiledialog.h \ - webengine/webengineprofile.h \ - forms/downloaddialog.h \ - webengine/downloaditemform.h \ - webengine/urlinterceptor.h \ - forms/blockerdialog.h \ - webengine/blockersubscription.h \ - webengine/blockerrule.h - -FORMS += mainwindow.ui \ - forms/profiledialog.ui \ - forms/downloaddialog.ui \ - webengine/downloaditemform.ui \ - forms/blockerdialog.ui - -RESOURCES += \ - data/resources.qrc diff --git a/src/smolbote.qbs b/src/smolbote.qbs index 136ea21..1dd603a 100644 --- a/src/smolbote.qbs +++ b/src/smolbote.qbs @@ -6,7 +6,26 @@ Project { CppApplication { name: "poi" - property string version: GitRepo.repoVersion() + property string sourceDirectory: parent.sourceDirectory + + Probe { + id: git + property string version: "1.0.0" + property string describe: "1.0.0-0-00000000" + configure: { + var meta = GitRepo.read(git.parent.sourceDirectory); + version = meta.version; + describe = meta.describe; + found = true; + } + } + + cpp.includePaths: ['.'] + Properties { + condition: git.found + cpp.defines: ['VERSION="'+git.version+'"'] + } + files: [ "browser.cpp", "browser.h", |