Skip to content

Commit d7fb2e6

Browse files
authored
Merge pull request qbittorrent#14176 from Chocobo1/pack_src_2
Add script for generating project tarball
2 parents e3119b4 + 302cb27 commit d7fb2e6

5 files changed

Lines changed: 39 additions & 61 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default t
33
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
44

55
project(qBittorrent
6-
VERSION 4.4.0.0
76
DESCRIPTION "The qBittorrent BitTorrent client"
87
HOMEPAGE_URL "https://www.qbittorrent.org/"
98
LANGUAGES CXX
@@ -55,25 +54,12 @@ include(GNUInstallDirs)
5554
add_subdirectory(src)
5655
add_subdirectory(dist)
5756

58-
# Generate version header
59-
set(QBT_VER_STATUS "alpha1" CACHE STRING "Project status version. Should be empty for release builds.")
60-
61-
set(QBT_PROJECT_VERSION "${qBittorrent_VERSION_MAJOR}.${qBittorrent_VERSION_MINOR}.${qBittorrent_VERSION_PATCH}")
62-
if (NOT ${qBittorrent_VERSION_TWEAK} EQUAL 0)
63-
set(QBT_PROJECT_VERSION "${QBT_PROJECT_VERSION}.${qBittorrent_VERSION_TWEAK}")
64-
endif()
65-
set(QBT_PROJECT_VERSION "${QBT_PROJECT_VERSION}${QBT_VER_STATUS}")
66-
67-
file(READ "src/base/version.h.in" versionHeader)
68-
string(REPLACE "@VER_MAJOR@" ${qBittorrent_VERSION_MAJOR} versionHeader "${versionHeader}")
69-
string(REPLACE "@VER_MINOR@" ${qBittorrent_VERSION_MINOR} versionHeader "${versionHeader}")
70-
string(REPLACE "@VER_BUGFIX@" ${qBittorrent_VERSION_PATCH} versionHeader "${versionHeader}")
71-
string(REPLACE "@VER_BUILD@" ${qBittorrent_VERSION_TWEAK} versionHeader "${versionHeader}")
72-
string(REPLACE "@PROJECT_VERSION@" ${QBT_PROJECT_VERSION} versionHeader "${versionHeader}")
73-
file(WRITE "src/base/version.h" "${versionHeader}")
74-
7557
if (VERBOSE_CONFIGURE)
7658
feature_summary(WHAT ALL)
7759
else()
7860
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
7961
endif()
62+
63+
# Generate version header
64+
file(READ "src/base/version.h.in" versionHeader)
65+
file(WRITE "src/base/version.h" "${versionHeader}")

build_dist.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/sh
2+
3+
# get version numbers
4+
versionSrc="src/base/version.h.in"
5+
versionMajor="$(grep -Po '(?<=QBT_VERSION_MAJOR )\d+' "$versionSrc")"
6+
versionMinor="$(grep -Po '(?<=QBT_VERSION_MINOR )\d+' "$versionSrc")"
7+
versionBugfix="$(grep -Po '(?<=QBT_VERSION_BUGFIX )\d+' "$versionSrc")"
8+
versionBuild="$(grep -Po '(?<=QBT_VERSION_BUILD )\d+' "$versionSrc")"
9+
versionStatus="$(grep -Po '(?<=QBT_VERSION_STATUS ")\w+' "$versionSrc")"
10+
11+
if [ "$versionBuild" != "0" ]; then
12+
projectVersion="$versionMajor.$versionMinor.$versionBugfix.$versionBuild$versionStatus"
13+
else
14+
projectVersion="$versionMajor.$versionMinor.$versionBugfix$versionStatus"
15+
fi
16+
17+
# pack archives
18+
git archive --format=tar --prefix="qbittorrent-$projectVersion/" HEAD | gzip -9 > "qbittorrent-$projectVersion.tar.gz"
19+
git archive --format=tar --prefix="qbittorrent-$projectVersion/" HEAD | xz -9 > "qbittorrent-$projectVersion.tar.xz"

qbittorrent.pro

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,6 @@ SUBDIRS += src
44

55
include(version.pri)
66

7-
# Make target to create release tarball. Use 'make tarball'
8-
tarball.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ &&
9-
tarball.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} &&
10-
tarball.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git &&
11-
tarball.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore &&
12-
tarball.commands += cd .. &&
13-
tarball.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} &&
14-
tarball.commands += tar cf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar $${PROJECT_NAME}-$${PROJECT_VERSION} &&
15-
tarball.commands += xz -f $${PROJECT_NAME}-$${PROJECT_VERSION}.tar &&
16-
tarball.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION}
17-
18-
QMAKE_EXTRA_TARGETS += tarball
19-
207
# For Qt Creator beautifier
218
DISTFILES += \
229
uncrustify.cfg

src/base/version.h.in

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,20 @@
2828

2929
#pragma once
3030

31-
#define QBT_VERSION_MAJOR @VER_MAJOR@
32-
#define QBT_VERSION_MINOR @VER_MINOR@
33-
#define QBT_VERSION_BUGFIX @VER_BUGFIX@
34-
#define QBT_VERSION_BUILD @VER_BUILD@
31+
#define QBT_VERSION_MAJOR 4
32+
#define QBT_VERSION_MINOR 4
33+
#define QBT_VERSION_BUGFIX 0
34+
#define QBT_VERSION_BUILD 0
35+
#define QBT_VERSION_STATUS "alpha1" // Should be empty for stable releases!
3536

36-
#define QBT_VERSION "v@PROJECT_VERSION@"
37-
#define QBT_VERSION_2 "@PROJECT_VERSION@"
37+
#define QBT__STRINGIFY(x) #x
38+
#define QBT_STRINGIFY(x) QBT__STRINGIFY(x)
39+
40+
#if (QBT_VERSION_BUILD != 0)
41+
#define PROJECT_VERSION QBT_STRINGIFY(QBT_VERSION_MAJOR.QBT_VERSION_MINOR.QBT_VERSION_BUGFIX.QBT_VERSION_BUILD) QBT_VERSION_STATUS
42+
#else
43+
#define PROJECT_VERSION QBT_STRINGIFY(QBT_VERSION_MAJOR.QBT_VERSION_MINOR.QBT_VERSION_BUGFIX) QBT_VERSION_STATUS
44+
#endif
45+
46+
#define QBT_VERSION "v" PROJECT_VERSION
47+
#define QBT_VERSION_2 PROJECT_VERSION

version.pri

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,3 @@
1-
# keep it all lowercase to match program naming convention on *nix systems
2-
PROJECT_NAME = qbittorrent
3-
4-
# Define version numbers here
5-
VER_MAJOR = 4
6-
VER_MINOR = 4
7-
VER_BUGFIX = 0
8-
VER_BUILD = 0
9-
VER_STATUS = alpha1 # Should be empty for stable releases!
10-
11-
# Don't touch the rest part
12-
PROJECT_VERSION = $${VER_MAJOR}.$${VER_MINOR}.$${VER_BUGFIX}
13-
14-
!equals(VER_BUILD, 0) {
15-
PROJECT_VERSION = $${PROJECT_VERSION}.$${VER_BUILD}
16-
}
17-
18-
PROJECT_VERSION = $${PROJECT_VERSION}$${VER_STATUS}
19-
201
# Generate version header
212
versionHeader = $$cat(src/base/version.h.in, blob)
22-
versionHeader = $$replace(versionHeader, "@VER_MAJOR@", $$VER_MAJOR)
23-
versionHeader = $$replace(versionHeader, "@VER_MINOR@", $$VER_MINOR)
24-
versionHeader = $$replace(versionHeader, "@VER_BUGFIX@", $$VER_BUGFIX)
25-
versionHeader = $$replace(versionHeader, "@VER_BUILD@", $$VER_BUILD)
26-
versionHeader = $$replace(versionHeader, "@PROJECT_VERSION@", $$PROJECT_VERSION)
273
write_file(src/base/version.h, versionHeader)

0 commit comments

Comments
 (0)