Generate version header when configuring project

The basic idea is we create a version header template at
"src/base/version.h.in" and the build systems are expected to replace
strings that are enclosed with @ symbols and generate
"src/base/version.h" for other source files to consume/include.
This commit is contained in:
Chocobo1
2021-01-04 15:02:13 +08:00
committed by sledgehammer999
parent 4563b11a2e
commit 77f4e6c2cf
19 changed files with 77 additions and 32 deletions

View File

@@ -61,7 +61,6 @@ target_sources(qbt_app PRIVATE
target_link_libraries(qbt_app PRIVATE
qbt_base
qbt_version_definitions
)
set_target_properties(qbt_app PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")

View File

@@ -81,6 +81,7 @@
#include "base/utils/fs.h"
#include "base/utils/misc.h"
#include "base/utils/string.h"
#include "base/version.h"
#include "applicationinstancemanager.h"
#include "filelogger.h"

View File

@@ -78,6 +78,7 @@ Q_IMPORT_PLUGIN(QICOPlugin)
#include "base/preferences.h"
#include "base/profile.h"
#include "base/version.h"
#include "application.h"
#include "cmdoptions.h"
#include "upgrade.h"

View File

@@ -32,6 +32,7 @@
#include <QString>
#include "base/utils/misc.h"
#include "base/version.h"
#include "ui_stacktracedialog.h"
StacktraceDialog::StacktraceDialog(QWidget *parent)

View File

@@ -86,6 +86,7 @@ add_library(qbt_base STATIC
utils/random.h
utils/string.h
utils/version.h
version.h
# sources
asyncfilestorage.cpp
@@ -165,7 +166,6 @@ target_link_libraries(qbt_base
PRIVATE
OpenSSL::Crypto OpenSSL::SSL
ZLIB::ZLIB
qbt_version_definitions
PUBLIC
LibtorrentRasterbar::torrent-rasterbar
Qt5::Core Qt5::Network Qt5::Xml

View File

@@ -85,7 +85,8 @@ HEADERS += \
$$PWD/utils/password.h \
$$PWD/utils/random.h \
$$PWD/utils/string.h \
$$PWD/utils/version.h
$$PWD/utils/version.h \
$$PWD/version.h
SOURCES += \
$$PWD/asyncfilestorage.cpp \

View File

@@ -84,6 +84,7 @@
#include "base/utils/misc.h"
#include "base/utils/net.h"
#include "base/utils/random.h"
#include "base/version.h"
#include "bandwidthscheduler.h"
#include "common.h"
#include "customstorage.h"

View File

@@ -45,6 +45,7 @@
#include "base/utils/fs.h"
#include "base/utils/io.h"
#include "base/utils/string.h"
#include "base/version.h"
#include "ltunderlyingtype.h"
namespace

View File

@@ -34,6 +34,7 @@
#include "base/logger.h"
#include "base/net/downloadmanager.h"
#include "base/version.h"
using namespace Net;

37
src/base/version.h.in Normal file
View File

@@ -0,0 +1,37 @@
/*
* Bittorrent Client using Qt and libtorrent.
* Copyright (C) 2021 Mike Tzou (Chocobo1)
*
* 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 the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* In addition, as a special exception, the copyright holders give permission to
* link this program with the OpenSSL project's "OpenSSL" library (or with
* modified versions of it that use the same license as the "OpenSSL" library),
* and distribute the linked executables. You must obey the GNU General Public
* License in all respects for all of the code used other than "OpenSSL". If you
* modify file(s), you may extend this exception to your version of the file(s),
* but you are not obligated to do so. If you do not wish to do so, delete this
* exception statement from your version.
*/
#pragma once
#define QBT_VERSION_MAJOR @VER_MAJOR@
#define QBT_VERSION_MINOR @VER_MINOR@
#define QBT_VERSION_BUGFIX @VER_BUGFIX@
#define QBT_VERSION_BUILD @VER_BUILD@
#define QBT_VERSION "v@PROJECT_VERSION@"
#define QBT_VERSION_2 "@PROJECT_VERSION@"

View File

@@ -32,6 +32,7 @@
#include "base/unicodestrings.h"
#include "base/utils/misc.h"
#include "base/version.h"
#include "ui_aboutdialog.h"
#include "uithememanager.h"
#include "utils.h"

View File

@@ -70,6 +70,7 @@
#include "base/utils/fs.h"
#include "base/utils/misc.h"
#include "base/utils/password.h"
#include "base/version.h"
#include "aboutdialog.h"
#include "addnewtorrentdialog.h"
#include "autoexpandabledialog.h"

View File

@@ -44,6 +44,7 @@
#endif
#include "base/net/downloadmanager.h"
#include "base/version.h"
namespace
{

View File

@@ -4,6 +4,7 @@ IDI_ICON1 ICON "icons\qbittorrent.ico"
IDI_ICON2 ICON "icons\qbittorrent_file.ico"
#include <windows.h>
#include "base/version.h"
#define VER_FILEVERSION QBT_VERSION_MAJOR,QBT_VERSION_MINOR,QBT_VERSION_BUGFIX,QBT_VERSION_BUILD
#define VER_FILEVERSION_STR QBT_VERSION

View File

@@ -57,6 +57,7 @@
#include "base/utils/net.h"
#include "base/utils/password.h"
#include "base/utils/string.h"
#include "base/version.h"
#include "../webapplication.h"
void AppController::webapiVersionAction()