Compare commits
498 Commits
release-4.
...
release-4.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7825d8627f | ||
![]() |
b798c591e7 | ||
![]() |
9e7d21d7aa | ||
![]() |
38a15b27f0 | ||
![]() |
cb31684a66 | ||
![]() |
850cde19f7 | ||
![]() |
fc5b3b4f70 | ||
![]() |
73fd4d83af | ||
![]() |
811b525b1d | ||
![]() |
0f8def9a49 | ||
![]() |
359b464958 | ||
![]() |
b5b0d68dd9 | ||
![]() |
f48c49c248 | ||
![]() |
11ca744548 | ||
![]() |
82e6fc700e | ||
![]() |
59fd70c638 | ||
![]() |
617bf767df | ||
![]() |
55180e3598 | ||
![]() |
56b62e6573 | ||
![]() |
b37e7b0340 | ||
![]() |
21aebaf16f | ||
![]() |
5792465317 | ||
![]() |
e98f44af63 | ||
![]() |
40cf0203fb | ||
![]() |
05a82afeb6 | ||
![]() |
a456f1b0f9 | ||
![]() |
4acc44a5b0 | ||
![]() |
9c2a1146df | ||
![]() |
807abeae87 | ||
![]() |
dd2a0d0484 | ||
![]() |
3f3400f43b | ||
![]() |
334b57a89a | ||
![]() |
00d6c83ee5 | ||
![]() |
e8850c7a70 | ||
![]() |
2ef96eb218 | ||
![]() |
4682e31ab7 | ||
![]() |
988f7e2ef8 | ||
![]() |
6007913291 | ||
![]() |
cdcc7a210b | ||
![]() |
a466ff5057 | ||
![]() |
e954835579 | ||
![]() |
3e9be3a0e8 | ||
![]() |
4ab32a76f6 | ||
![]() |
bad60058df | ||
![]() |
31a6ad1eb6 | ||
![]() |
a8bfec081e | ||
![]() |
ae21d0f1e2 | ||
![]() |
c599976b6f | ||
![]() |
bcee784097 | ||
![]() |
697fc626cd | ||
![]() |
2f15ea9b54 | ||
![]() |
d03209a73d | ||
![]() |
ac9ba255d8 | ||
![]() |
9a7e79bd0e | ||
![]() |
e8be3bf939 | ||
![]() |
74e52746b1 | ||
![]() |
8d26a221e0 | ||
![]() |
3fdab88eb7 | ||
![]() |
d376d912b3 | ||
![]() |
e329c41ef2 | ||
![]() |
01e4179555 | ||
![]() |
06f503b5df | ||
![]() |
e2f3dad7b8 | ||
![]() |
377f31085c | ||
![]() |
ec13d195f8 | ||
![]() |
c01aed8d90 | ||
![]() |
ad7b8a9bfa | ||
![]() |
5bba1ed208 | ||
![]() |
fe94e14bcc | ||
![]() |
b0af479ab9 | ||
![]() |
24ff369f29 | ||
![]() |
979c9a7094 | ||
![]() |
7b90ac52c1 | ||
![]() |
ecfbda78bc | ||
![]() |
9ba7470815 | ||
![]() |
6394467cc7 | ||
![]() |
f6d72fa79f | ||
![]() |
32ed5f1c8e | ||
![]() |
5026da5773 | ||
![]() |
ef130e4438 | ||
![]() |
4fbd52c2d5 | ||
![]() |
8f29b70c1e | ||
![]() |
9a4dd3ea9d | ||
![]() |
fcd3bb6918 | ||
![]() |
9f69fd8750 | ||
![]() |
ea7e47d113 | ||
![]() |
294bb26996 | ||
![]() |
4b2e9dba51 | ||
![]() |
1d9dcde99b | ||
![]() |
32bf448725 | ||
![]() |
732d5d6db9 | ||
![]() |
3b325106da | ||
![]() |
3aeca37c5d | ||
![]() |
4253515736 | ||
![]() |
e365d57063 | ||
![]() |
df6df20969 | ||
![]() |
4e5a85dda5 | ||
![]() |
bad603454b | ||
![]() |
7b006a47ba | ||
![]() |
11da8b82e8 | ||
![]() |
383a5f11bc | ||
![]() |
76ab5f12c5 | ||
![]() |
be74987084 | ||
![]() |
8f6c305d14 | ||
![]() |
e29b9655eb | ||
![]() |
ae7fa9ea82 | ||
![]() |
fee9030337 | ||
![]() |
f48d057c47 | ||
![]() |
f14573307c | ||
![]() |
560ba8c0b8 | ||
![]() |
4b2376c4fd | ||
![]() |
76faed3818 | ||
![]() |
62657d9fda | ||
![]() |
5877308a49 | ||
![]() |
24dcbe7d43 | ||
![]() |
7649fe0a0e | ||
![]() |
b3b334da77 | ||
![]() |
03a55da260 | ||
![]() |
1a9eadf8e6 | ||
![]() |
7b3fb2a35a | ||
![]() |
a55ea29919 | ||
![]() |
264b689912 | ||
![]() |
684cf82f89 | ||
![]() |
3f0e0a319a | ||
![]() |
0b4d9c72a7 | ||
![]() |
ff71f6bcd9 | ||
![]() |
7a5c5baad1 | ||
![]() |
a18976d0b5 | ||
![]() |
6d836ea49c | ||
![]() |
2e97311147 | ||
![]() |
57bc564b2c | ||
![]() |
1295f1e31f | ||
![]() |
4916ed0efb | ||
![]() |
f15f99cb27 | ||
![]() |
93365d3b20 | ||
![]() |
c756ab021d | ||
![]() |
34528dd544 | ||
![]() |
9380209afb | ||
![]() |
be2895ac6f | ||
![]() |
e26d4642b8 | ||
![]() |
f470972bd4 | ||
![]() |
443378c041 | ||
![]() |
e20dbe34a4 | ||
![]() |
86bde47a06 | ||
![]() |
e273c777c7 | ||
![]() |
17845c6b25 | ||
![]() |
27827ce16a | ||
![]() |
b444ecc6af | ||
![]() |
34995350ee | ||
![]() |
73ceee52f8 | ||
![]() |
85a3ba0eed | ||
![]() |
86cce76e9d | ||
![]() |
3358fd8e91 | ||
![]() |
120965f823 | ||
![]() |
e70ee9a5b6 | ||
![]() |
a2d8e84e83 | ||
![]() |
4a3648a693 | ||
![]() |
baad45e638 | ||
![]() |
d9cb00aab2 | ||
![]() |
d703d98836 | ||
![]() |
2f0646e7f0 | ||
![]() |
1a8a6dcef7 | ||
![]() |
990f961126 | ||
![]() |
06f04dea19 | ||
![]() |
8eced2ef1f | ||
![]() |
1e486ea92e | ||
![]() |
b47f38675e | ||
![]() |
864f3393a0 | ||
![]() |
cebef74326 | ||
![]() |
e257b35cac | ||
![]() |
1f33991e4b | ||
![]() |
794053f212 | ||
![]() |
3a130e1f74 | ||
![]() |
3423f93230 | ||
![]() |
2219167253 | ||
![]() |
a0a32b89a6 | ||
![]() |
59162bf426 | ||
![]() |
dfd148f55f | ||
![]() |
3af720b3bc | ||
![]() |
11240d0837 | ||
![]() |
e64fd9c544 | ||
![]() |
50ef812427 | ||
![]() |
bd4d2fa424 | ||
![]() |
e2ee928017 | ||
![]() |
62e71a15a4 | ||
![]() |
c62127e9f1 | ||
![]() |
2171d579ee | ||
![]() |
6e5a969e2d | ||
![]() |
bfbc7ef28a | ||
![]() |
b1cefbf9b5 | ||
![]() |
201638854e | ||
![]() |
847ecdeedb | ||
![]() |
acc159fa60 | ||
![]() |
bb7e80a8a6 | ||
![]() |
39973f1bb1 | ||
![]() |
1e9151364a | ||
![]() |
fd50d6e9af | ||
![]() |
427acf0c46 | ||
![]() |
f0a50424be | ||
![]() |
aded9afc0e | ||
![]() |
060b7480db | ||
![]() |
7f2a01dcd6 | ||
![]() |
fef0e70c9f | ||
![]() |
9cc112aa4e | ||
![]() |
44d4d41365 | ||
![]() |
a21c386dbf | ||
![]() |
1c4139906a | ||
![]() |
1a21f45c75 | ||
![]() |
0061b75200 | ||
![]() |
420c93a99e | ||
![]() |
93f1183cd7 | ||
![]() |
b8fcc1fed2 | ||
![]() |
2b91be1905 | ||
![]() |
7c9ef96ef8 | ||
![]() |
37b4b69199 | ||
![]() |
fc18e6f8df | ||
![]() |
4793a35e0b | ||
![]() |
4599da3ce1 | ||
![]() |
dec4e41fdd | ||
![]() |
780ece0c25 | ||
![]() |
aac8bfc398 | ||
![]() |
1a06a18336 | ||
![]() |
2d4f963d65 | ||
![]() |
b54fe08201 | ||
![]() |
d1d0300491 | ||
![]() |
7fff06f07b | ||
![]() |
3f9351042d | ||
![]() |
9e01dbab0f | ||
![]() |
d4a4b02cf6 | ||
![]() |
1f2c7a6671 | ||
![]() |
5a7b88c16c | ||
![]() |
93351476e4 | ||
![]() |
e1bfa95a63 | ||
![]() |
7030cc08e7 | ||
![]() |
a1da9812a5 | ||
![]() |
8ebc0f529c | ||
![]() |
e0d47649bc | ||
![]() |
524d503860 | ||
![]() |
cffafa8e9f | ||
![]() |
0fda919268 | ||
![]() |
7d98c34e17 | ||
![]() |
93147e787b | ||
![]() |
80435bae7e | ||
![]() |
b367e5c197 | ||
![]() |
5336c71da5 | ||
![]() |
27f6db976d | ||
![]() |
8223d61fa7 | ||
![]() |
3eef12bd8f | ||
![]() |
9e70a6c499 | ||
![]() |
fec3a87421 | ||
![]() |
59aac32eb9 | ||
![]() |
5ef3917769 | ||
![]() |
2f767d96d9 | ||
![]() |
de24fdfdc2 | ||
![]() |
3bb6a68c9d | ||
![]() |
f2406eb2f3 | ||
![]() |
4923ed7da0 | ||
![]() |
82056355f6 | ||
![]() |
f3bd2a295f | ||
![]() |
cc96760839 | ||
![]() |
ae95943f69 | ||
![]() |
d3067f939e | ||
![]() |
b6addd304c | ||
![]() |
d1ae6e8d58 | ||
![]() |
4445c2dab2 | ||
![]() |
fcc1564a62 | ||
![]() |
615eeb7144 | ||
![]() |
855bb118b5 | ||
![]() |
9f1eb3600a | ||
![]() |
fb885d89c1 | ||
![]() |
a846916beb | ||
![]() |
a574c4a70a | ||
![]() |
1e367f818d | ||
![]() |
00599c8f02 | ||
![]() |
332a836746 | ||
![]() |
a1992acc16 | ||
![]() |
c3f002a544 | ||
![]() |
c28cbe0a74 | ||
![]() |
435daaceed | ||
![]() |
e29ab0087b | ||
![]() |
aadd5a3312 | ||
![]() |
7e354ffad3 | ||
![]() |
ee6a071fb6 | ||
![]() |
bc8b838953 | ||
![]() |
5251d93b3d | ||
![]() |
84f0dbecfe | ||
![]() |
bba0c8b2cc | ||
![]() |
2f90be8bd2 | ||
![]() |
cb6b6296aa | ||
![]() |
9d25fdce2a | ||
![]() |
12b2732f1a | ||
![]() |
8c9ece73ee | ||
![]() |
a7db786387 | ||
![]() |
e5bf65c9bd | ||
![]() |
900e7d3a14 | ||
![]() |
f1ff74a926 | ||
![]() |
30bc4b837e | ||
![]() |
050a4f8b23 | ||
![]() |
487103d58f | ||
![]() |
eeea69d4c1 | ||
![]() |
00360ad418 | ||
![]() |
a733253ae5 | ||
![]() |
9788ee042b | ||
![]() |
e9c9ea3bba | ||
![]() |
312dfb989d | ||
![]() |
75deafe5b1 | ||
![]() |
4ca257a389 | ||
![]() |
03375a78f2 | ||
![]() |
423c7066d7 | ||
![]() |
5cd5cc71a8 | ||
![]() |
45d4d22055 | ||
![]() |
916a92aa0d | ||
![]() |
d1ebbcb35d | ||
![]() |
2743d998a8 | ||
![]() |
dbbfbaff9f | ||
![]() |
0be8439cf6 | ||
![]() |
66982c5524 | ||
![]() |
85af8547f7 | ||
![]() |
e26977ab2c | ||
![]() |
ec1cc783a6 | ||
![]() |
03b00ec045 | ||
![]() |
5e90156e9e | ||
![]() |
052206efa1 | ||
![]() |
305d73180b | ||
![]() |
80000bf0fd | ||
![]() |
06ebe756e8 | ||
![]() |
5fa3d9f19c | ||
![]() |
5b4c6d3665 | ||
![]() |
77bd0f17d1 | ||
![]() |
03a702cfbd | ||
![]() |
a932cd2ec1 | ||
![]() |
8e5743380a | ||
![]() |
8001eb0368 | ||
![]() |
f214dc88fc | ||
![]() |
5cff5ab135 | ||
![]() |
82ba154b64 | ||
![]() |
4ea44bbd2b | ||
![]() |
a5e68a8725 | ||
![]() |
70291014d1 | ||
![]() |
1aabcfc30c | ||
![]() |
aba80e2b1c | ||
![]() |
be683fbcd3 | ||
![]() |
2bcf09cfa5 | ||
![]() |
697325af63 | ||
![]() |
c21bd77be5 | ||
![]() |
d5430adaaa | ||
![]() |
9e99a0d3f5 | ||
![]() |
d088ab6f43 | ||
![]() |
820d510c12 | ||
![]() |
676847fcd0 | ||
![]() |
0204630ee6 | ||
![]() |
b515c7eda4 | ||
![]() |
73fcecac76 | ||
![]() |
a7b82ebcb5 | ||
![]() |
f8598b010d | ||
![]() |
93779bcc4b | ||
![]() |
938f5b9dd9 | ||
![]() |
3b4d9f49d5 | ||
![]() |
171c93af50 | ||
![]() |
6f81e40106 | ||
![]() |
e19b5cb2ce | ||
![]() |
2c69faca58 | ||
![]() |
9272151d0a | ||
![]() |
d45ebf5a43 | ||
![]() |
8074be7644 | ||
![]() |
c99ac99a99 | ||
![]() |
976e2450ec | ||
![]() |
7e4db8fafd | ||
![]() |
115a409d92 | ||
![]() |
c203ab3d16 | ||
![]() |
5dff96496d | ||
![]() |
f813935011 | ||
![]() |
2be719449f | ||
![]() |
2094c870d5 | ||
![]() |
4fe93ae8b8 | ||
![]() |
fff1103cf4 | ||
![]() |
8cede43a45 | ||
![]() |
9b1fa3a5af | ||
![]() |
409e73c074 | ||
![]() |
c893729d62 | ||
![]() |
945466968c | ||
![]() |
54f080b755 | ||
![]() |
bfad14d552 | ||
![]() |
2972e1596d | ||
![]() |
987d2aae88 | ||
![]() |
4707d34fad | ||
![]() |
2ffc09d097 | ||
![]() |
afa8d6bb8f | ||
![]() |
a37ead98e8 | ||
![]() |
c73cd8d618 | ||
![]() |
800a3aa61e | ||
![]() |
ebd815be75 | ||
![]() |
ef669acf89 | ||
![]() |
ac6426eab1 | ||
![]() |
b107b745f2 | ||
![]() |
3d851a448f | ||
![]() |
ce133f01aa | ||
![]() |
492d378537 | ||
![]() |
7ece484423 | ||
![]() |
be5ad63e21 | ||
![]() |
bdac8f8db8 | ||
![]() |
bb893e70c5 | ||
![]() |
57ec9db532 | ||
![]() |
0287481001 | ||
![]() |
0167496ecb | ||
![]() |
d86cf193a0 | ||
![]() |
246cad1108 | ||
![]() |
23bf86a8a8 | ||
![]() |
6ce4c885b9 | ||
![]() |
faf84e483a | ||
![]() |
576004c840 | ||
![]() |
c93b05c293 | ||
![]() |
55c3813fac | ||
![]() |
725c6857be | ||
![]() |
86767c9ab4 | ||
![]() |
46aa631d2b | ||
![]() |
7c61a937c9 | ||
![]() |
b8d65dcc45 | ||
![]() |
b9ab83eaf2 | ||
![]() |
8b7b563992 | ||
![]() |
b813a878d7 | ||
![]() |
54e486c389 | ||
![]() |
12d0a3acc1 | ||
![]() |
6ad2a13386 | ||
![]() |
2a9c401db9 | ||
![]() |
ea5a29018f | ||
![]() |
c8d0a715e8 | ||
![]() |
2cfc6514ab | ||
![]() |
1d78bc7206 | ||
![]() |
e5577e43f8 | ||
![]() |
17c0463906 | ||
![]() |
4168772904 | ||
![]() |
44f2186749 | ||
![]() |
0c918bcc3a | ||
![]() |
0a8925dc75 | ||
![]() |
a446597597 | ||
![]() |
54354a2732 | ||
![]() |
d94b8f08ab | ||
![]() |
0d8189efeb | ||
![]() |
00c886e426 | ||
![]() |
551fc35439 | ||
![]() |
9ff17c8d9d | ||
![]() |
ec37732e99 | ||
![]() |
8a414f32a8 | ||
![]() |
bac06acb49 | ||
![]() |
ae1e3c2a81 | ||
![]() |
67940eb0f9 | ||
![]() |
007aa8480e | ||
![]() |
dedec10c58 | ||
![]() |
75219e21be | ||
![]() |
10f5964f8e | ||
![]() |
a4a64d51c0 | ||
![]() |
1014313d88 | ||
![]() |
e486bb4c29 | ||
![]() |
5c3d9ffb46 | ||
![]() |
2e474fd8db | ||
![]() |
b2b110ae1f | ||
![]() |
68a34e0738 | ||
![]() |
38fa575958 | ||
![]() |
6cfeefe054 | ||
![]() |
8007971a53 | ||
![]() |
d66bd30fae | ||
![]() |
3fa59b1b12 | ||
![]() |
20e7aff393 | ||
![]() |
4b7ce87f57 | ||
![]() |
2075533468 | ||
![]() |
a4ad5c8d11 | ||
![]() |
35f2f56757 | ||
![]() |
e6f4aa6a2f | ||
![]() |
92fc62bb0d | ||
![]() |
44b57a59f5 | ||
![]() |
97b8e02bf5 | ||
![]() |
5df42420cb | ||
![]() |
0ede11a1b7 | ||
![]() |
7d9c282db9 | ||
![]() |
bc0e0813a4 | ||
![]() |
f3aebb3001 | ||
![]() |
800f966df9 | ||
![]() |
e33df4dd8c | ||
![]() |
96d9d810fd | ||
![]() |
8707a1bc86 | ||
![]() |
0c988a5fd4 | ||
![]() |
b396ca771d | ||
![]() |
a37dfcf961 | ||
![]() |
31989740cd | ||
![]() |
501191289b | ||
![]() |
8971e92d78 | ||
![]() |
0c96e79d0d | ||
![]() |
0704c0f5e6 | ||
![]() |
9cb190ebe7 | ||
![]() |
667f84995c | ||
![]() |
7a93fae6e4 | ||
![]() |
0d6deca15c | ||
![]() |
f54d7d46f2 | ||
![]() |
8cf00ba5e1 | ||
![]() |
ecc9c6bbd9 | ||
![]() |
e11199f988 | ||
![]() |
e9ed621178 |
@@ -51,8 +51,6 @@ before_build:
|
||||
|
||||
build_script:
|
||||
- cd "%REPO_DIR%"
|
||||
# scan only as lupdate is prone to hang
|
||||
- lupdate -extensions c,cpp,h,hpp,ui .
|
||||
- qmake qbittorrent.pro && cd src && qmake src.pro
|
||||
- jom -j2 -f Makefile.Release
|
||||
|
||||
|
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -3,7 +3,7 @@
|
||||
### qBittorrent version and Operating System
|
||||
(type here)
|
||||
|
||||
### If on linux, libtorrent-rasterbar and Qt version
|
||||
### If on linux, libtorrent and Qt version
|
||||
(type here)
|
||||
|
||||
### What is the problem
|
||||
|
5
.gitignore
vendored
@@ -4,7 +4,6 @@ src/qbittorrent
|
||||
src/qbittorrent-nox
|
||||
src/release
|
||||
src/debug
|
||||
CMakeLists.txt.user*
|
||||
qbittorrent.pro.user*
|
||||
conf.pri
|
||||
Makefile*
|
||||
@@ -36,7 +35,3 @@ config.status
|
||||
src/icons/qbt-theme/build-icons/node_modules/
|
||||
src/icons/skin/build-icons/node_modules/
|
||||
src/icons/skin/build-icons/icons/*.png
|
||||
|
||||
# Web UI tools
|
||||
node_modules
|
||||
package-lock.json
|
||||
|
189
.travis.yml
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
|
||||
|
||||
message(AUTHOR_WARNING "If the build fails, please try the autotools/qmake method.")
|
||||
|
||||
if(POLICY CMP0074)
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
||||
include(FunctionReadVersion)
|
||||
|
||||
@@ -34,10 +30,8 @@ include(GNUInstallDirs)
|
||||
include(FeatureSummary)
|
||||
|
||||
# version requirements
|
||||
set(requiredBoostVersion 1.40)
|
||||
set(requiredQtVersion 5.9.0)
|
||||
set(requiredOpensslVersion 1.0)
|
||||
set(requiredLibtorrentVersion 1.1.10)
|
||||
set(requiredBoostVersion 1.35)
|
||||
set(requiredQtVersion 5.5.1)
|
||||
|
||||
if(WIN32)
|
||||
include(winconf)
|
||||
|
@@ -306,7 +306,7 @@ Example:
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
#ifdef Q_OS_MACOS // conditional
|
||||
#ifdef Q_OS_MAC // conditional
|
||||
#include <QFont>
|
||||
#endif
|
||||
|
||||
|
164
Changelog
@@ -1,160 +1,12 @@
|
||||
Wed Dec 18 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.1
|
||||
- FEATURE: Enable portable mode if "profile" directory exists (Tester798)
|
||||
- FEATURE: Enable "Apply rate limit to peers on LAN" option by default (Chocobo1)
|
||||
- BUGFIX: Sync translations from Transifex and run lupdate (sledgehammer999)
|
||||
- BUGFIX: Don't unnecessarily delete OS files in folders (sledgehammer999)
|
||||
- BUGFIX: Use the incomplete folder where appropriate (sledgehammer999)
|
||||
- BUGFIX: Align Properties tab bar correctly on window resize (Prince Gupta)
|
||||
- BUGFIX: Rework the listening IP/interface selection code (sledgehammer999)
|
||||
- BUGFIX: Fix inconsistent icon for deleting torrent (Chocobo1)
|
||||
- BUGFIX: Show torrent error message in transfer list (Chocobo1)
|
||||
- BUGFIX: Fix stuck in wrong torrent state (Chocobo1)
|
||||
- BUGFIX: Expand single-item folders in torrent content (warren)
|
||||
- WEBUI: Bump Web API version (sledgehammer999)
|
||||
- WEBUI: Add ability to rename torrent files from the WebUI (Thomas Piccirello)
|
||||
- WEBUI: Mention lack of HTTPS in WebUI magnet link warning (nl6720)
|
||||
- WEBUI: Fix HTML elements size in search tab (Chocobo1)
|
||||
- SEARCH: Fix incorrect translation displayed after language change (Chocobo1)
|
||||
- SEARCH: Fix missing translations in search plugins dialog (Chocobo1)
|
||||
- WINDOWS: Update russian translation of the installer (Andrei Stepanov)
|
||||
|
||||
Tue Dec 03 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.2.0
|
||||
- FEATURE: Libtorrent 1.2.x series are supported now (glassez)
|
||||
- FEATURE: Add OpenSSL version to GUI and stackdump (Chocobo1)
|
||||
- FEATURE: Add zlib version to GUI & stackdump (silverqx)
|
||||
- FEATURE: Use PBKDF2 for the GUI lock. You will need to set your password again. (Chocobo1)
|
||||
- FEATURE: Rename "#" column to "Tier" in the tracker list (thalieht)
|
||||
- FEATURE: Allow setting larger checking memory usage in GUI (airium)
|
||||
- FEATURE: Converted remaining icons to svg (Bert Verhelst)
|
||||
- FEATURE: Replace CheckBox with Arrow in the side panel (Prince Gupta)
|
||||
- FEATURE: Log performance alerts from libtorrent (Chocobo1)
|
||||
- FEATURE: Use native folder icon in content tree (Chocobo1)
|
||||
- FEATURE: Move copy actions under a submenu (Chocobo1)
|
||||
- FEATURE: Add "Socket backlog size" option (Chocobo1)
|
||||
- FEATURE: Add "File pool size" option (Chocobo1)
|
||||
- FEATURE: Allow styling with QSS stylesheets (Prince Gupta)
|
||||
- FEATURE: Add "Tracker entries" dialog (Chocobo1)
|
||||
- FEATURE: Add availability column (Chocobo1)
|
||||
- FEATURE: Use a randomized port number for the first run (Chocobo1)
|
||||
- FEATURE: Enable Super Seeding mode once ratio/time limit is reached (thalieht)
|
||||
- FEATURE: Improve embedded tracker. Now it conforms to BEPs more closely. (Chocobo1)
|
||||
- FEATURE: Add option to align file to piece boundary when creating new torrent (Chocobo1)
|
||||
- FEATURE: Ability to open file or trigger torrect action via keypad Enter (Chocobo1)
|
||||
- FEATURE: Add "Remove torrent and its files" option to share ratio limiting (thalieht)
|
||||
- FEATURE: Allow to select multiple entries in "banned IP" dialog (Chocobo1)
|
||||
- FEATURE: Reallow to pause checking torrents (thalieht)
|
||||
- FEATURE: Reallow to force recheck torrents that aren't fully started (thalieht)
|
||||
- FEATURE: Add "Preview file" double-click action (warren)
|
||||
- BUGFIX: Avoid performance penalty when logger is full (Chocobo1)
|
||||
- BUGFIX: Remove the max half-open connections option (thalieht)
|
||||
- BUGFIX: Center align the section labels in advanced settings (thalieht)
|
||||
- BUGFIX: Add documentation links to some advanced settings (thalieht)
|
||||
- BUGFIX: Impove DownloadManager code (glassez)
|
||||
- BUGFIX: Limit DownloadHandler max redirection to 20 (Chocobo1)
|
||||
- BUGFIX: Log DownloadManager SSL errors (Chocobo1)
|
||||
- BUGFIX: Force recheck multiple torrents one by one (glassez)
|
||||
- BUGFIX: Close context menu when content model is reset (glassez)
|
||||
- BUGFIX: Improve Properties widget (glassez)
|
||||
- BUGFIX: Prevent flickering preview dialog (silver)
|
||||
- BUGFIX: Rename "Prefer encryption" to "Allow encryption" (thalieht)
|
||||
- BUGFIX: Fix search icon placement when using RTL languages (Chocobo1)
|
||||
- BUGFIX: Avoid combo boxes extending to the right in Options dialog (Chocobo1)
|
||||
- BUGFIX: Fix speed limit not applying to IPv6 peers (Chocobo1)
|
||||
- BUGFIX: Log failed file rename errors (Chocobo1)
|
||||
- BUGFIX: Fix wrong "Time Active" value displayed (Chocobo1)
|
||||
- BUGFIX: Rename priority to queue in the context of torrents (thalieht)
|
||||
- BUGFIX: Update remaining size of ignored files to 0 (Thomas Piccirello)
|
||||
- BUGFIX: Move "Check for program updates" checkbox to the Behavior settings (Chocobo1)
|
||||
- BUGFIX: Improve error messages for URL seed (Chocobo1)
|
||||
- BUGFIX: Rename share ratio limiting options (thalieht)
|
||||
- BUGFIX: Fix country name misspelling (horgan)
|
||||
- PERFORMANCE: Faster/efficient way of handling updates in the Transfer list (Chocobo1)
|
||||
* Sun Oct 27 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.9
|
||||
- BUGFIX: Preserve relative order when moving to top/bottom in queue (Chocobo1)
|
||||
- WINDOWS: Use real physical screen DPI (Chocobo1)
|
||||
- WEBUI: Bump Web API version
|
||||
- WEBUI: Use PBKDF2 for the WebUI password. You will need to set your password again. (Chocobo1)
|
||||
- WEBUI: Use Javascript strict mode (Chocobo1)
|
||||
- WEBUI: Remove autocorrect/autocapitalise from filepaths on WebUI (AceLewis)
|
||||
- WEBUI: Display warning when Javascript is disabled (Chocobo1)
|
||||
- WEBUI: Remove mootools lib from login page (Chocobo1)
|
||||
- WEBUI: Prevent login credential appearing in URL (Chocobo1)
|
||||
- WEBUI: Load WebUI certificate & key from file path (Chocobo1)
|
||||
- WEBUI: Add migration code for WebUI https related change (Chocobo1)
|
||||
- WEBUI: Fix wrong element id being used (Thomas Piccirello)
|
||||
- WEBUI: Fix direction of Web UI sorted column icon (Thomas Piccirello)
|
||||
- WEBUI: Match WebUI About page to GUI (Thomas Piccirello)
|
||||
- WEBUI: Simplify tab logic (Thomas Piccirello)
|
||||
- WEBUI: Separate URL components before percent-decoding (glassez)
|
||||
- WEBUI: Capitalize event name (Thomas Piccirello)
|
||||
- WEBUI: Fix bug where input wouldn't always be focused (Thomas Piccirello)
|
||||
- WEBUI: Add Web UI support for escape key (Thomas Piccirello)
|
||||
- WEBUI: Fix broken image link (Tom Piccirello)
|
||||
- WEBUI: Include application version in css/js url for cache busting (Thomas Piccirello)
|
||||
- WEBUI: Update WebUI img to use svg images (Chocobo1)
|
||||
- WEBUI: Fix speed limit icon too large on WebUI (Chocobo1)
|
||||
- WEBUI: Fix misaligned icons in STATUS list in GUI (Chocobo1)
|
||||
- WEBUI: Drop legacy WebAPI support (glassez)
|
||||
- WEBUI: Allow WebUI Content tab to be sorted (Thomas Piccirello)
|
||||
- WEBUI: Encode torrent name before passing in URL (Thomas Piccirello)
|
||||
- WEBUI: Move WebUI Peers code to separate file (Thomas Piccirello)
|
||||
- WEBUI: Prevent WebUI tables from being highlighted (Thomas Piccirello)
|
||||
- WEBUI: Allow WebUI Trackers table to be manipulated (Thomas Piccirello)
|
||||
- WEBUI: Fix only the first newline char is replaced (Chocobo1)
|
||||
- WEBUI: Fix missing semicolon in WebUI (Chocobo1)
|
||||
- WEBUI: Add autocomplete attribute to WebUI (Chocobo1)
|
||||
- WEBUI: Always use index.html as default page (CzBiX)
|
||||
- WEBUI: Set title attribute for all WebUI table cells (Thomas Piccirello)
|
||||
- WEBUI: Align WebUI login button to the right (Chocobo1)
|
||||
- WEBUI: Use force refresh on WebUI logout (Chocobo1)
|
||||
- WEBUI: Use a random number for WebUI cache busting (Chocobo1)
|
||||
- WEBUI: Register protocol handler in WebUI for magnet links (Cory)
|
||||
- WEBUI: Add WebAPI session timeout settings (Chocobo1)
|
||||
- WEBUI: Fix encoding of special characters (Tom Piccirello)
|
||||
- WEBUI: Avoid word wrap in webui footer (airium)
|
||||
- WEBUI: Add advanced options in WebUI (Zhaoyu Gan)
|
||||
- WEBUI: Move WebUI copy actions under a submenu (Thomas Piccirello)
|
||||
- WEBUI: Add WebUI support for triggering context menus on mobile (Thomas Piccirello)
|
||||
- WEBUI: Implement tag management for WebUI (Vasiliy Halimonchuk)
|
||||
- WEBUI: Fix WebUI removing parameters from magnet links (Thomas Piccirello)
|
||||
- WEBUI: Enable by default the search tab (Thomas Piccirello)
|
||||
- WEBUI: Add context menu to Web UI search table (Thomas Piccirello)
|
||||
- WEBUI: Display files hierarchically in Web UI content tab (Thomas Piccirello)
|
||||
- WEBUI: Add ability to add and ban a peer from the Web UI (Thomas Piccirello)
|
||||
- WEBUI: Increase WebUI window heights (Thomas Piccirello)
|
||||
- WEBUI: Sort torrent names case-insensitively in webui (airium)
|
||||
- WEBUI: Support exclusions in WebUI table filters (Thomas Piccirello)
|
||||
- WEBUI: Don't save preferences until all options are processed (Tom Piccirello)
|
||||
- WEBUI: Disable port selection when "Use different port on each startup" is selected (Chocobo1)
|
||||
- WEBUI: Remove max character limit of location path (Clément Pera)
|
||||
- RSS: Better widget for choosing file path in automated downloader (thalieht)
|
||||
- RSS: Allow to cancel/retry the fetching of feeds (glassez)
|
||||
- RSS: Add create subfolder option to RSS auto-download rules (Xegor)
|
||||
- RSS: Log "RSS Feed successfully downloaded" event (glassez)
|
||||
- SEARCH: Add default tooltip "Searching..." on tab creation. (paolo-sz)
|
||||
- SEARCH: Avoid crashes on torrent search (paolo-sz)
|
||||
- SEARCH: Add right click menu to SearchJobWidget (Chocobo1)
|
||||
- SEARCH: Rename label in search widget (Chocobo1)
|
||||
- SEARCH: Add more copy field actions to search widget (Chocobo1)
|
||||
- SEARCH: Remove buttons from search widget (Chocobo1)
|
||||
- SEARCH: Update python installer URL (Chocobo1)
|
||||
- WINDOWS: Drop support for < Windows 7
|
||||
- WINDOWS: Allow headless builds on Windows (knackebrot)
|
||||
- WINDOWS: Add option to control qBittorrent process memory priority (Chocobo1)
|
||||
- LINUX: Add content_rating, release tags to appdata (Peter Eszlari)
|
||||
- LINUX: Update .appdata descriptions (Chocobo1)
|
||||
- LINUX: Use reverse DNS convention for metadata files naming (Chocobo1)
|
||||
- LINUX: Adjust open file descriptor limit on startup to max (Chocobo1)
|
||||
- MACOS: Drop support for < macOS 10.10 (Yosemite)
|
||||
- MACOS: Replace deprecated `qt_mac_set_dock_menu()` (Chocobo1)
|
||||
- MACOS: Add some padding to macOS app icon (Nick Korotysh)
|
||||
- OTHER: Raise minimum C++ version to C++14 (Chocobo1)
|
||||
- OTHER: Raise minimum Qt version to 5.9.0 (sledgehammer999)
|
||||
- OTHER: Drop support of libtorrent < 1.1.10 (glassez)
|
||||
- OTHER: Drop upgrade code from older saving systems (sledgehammer999)
|
||||
- OTHER: Update INSTALL dependencies (Chocobo1)
|
||||
- OTHER: Optimize PNG images losslessly with zopflipng (Peter Dave Hello)
|
||||
- OTHER: Optimize svg files using SVGO (sledgehammer999)
|
||||
- OTHER: QMake: Compile translations at build time (glassez)
|
||||
- OTHER: Drop support for "BC Link" format (Chocobo1)
|
||||
- OTHER: Lots of code refactorings, cleanups, improvements and optimizations (Chocobo1, glassez, thalieht)
|
||||
|
||||
* Mon Sep 23 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.8
|
||||
- BUGFIX: Fix filename validation on non-Windows OS (Chocobo1)
|
||||
- BUGFIX: ScanFolders/FileSystemWatcher now detect magnet files with case insensitivity in filename (Chocobo1)
|
||||
- BUGFIX: Fix failed seeding after creating a torrent and auto-adding it to the session (Chocobo1)
|
||||
|
||||
* Sun Aug 04 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.7
|
||||
- FEATURE: Add 12 hour and 24 hour speed graphs (dzmat)
|
||||
|
48
INSTALL
@@ -1,26 +1,7 @@
|
||||
qBittorrent - A BitTorrent client in C++ / Qt
|
||||
------------------------------------------
|
||||
|
||||
1) Install these dependencies:
|
||||
|
||||
- Boost >= 1.40
|
||||
|
||||
- libtorrent-rasterbar >= 1.1.10 (by Arvid Norberg)
|
||||
* https://www.libtorrent.org/
|
||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||
|
||||
- OpenSSL >= 1.0
|
||||
|
||||
- Qt >= 5.9.0
|
||||
|
||||
- zlib >= 1.2.5.2
|
||||
|
||||
- pkg-config (compile-time only)
|
||||
|
||||
- Python >= 2.7.9 / 3.3.0 (optional, runtime only)
|
||||
* Required by the internal search engine
|
||||
|
||||
2a) Compile and install qBittorrent with Qt graphical interface
|
||||
1) Compile and install qBittorrent with Qt graphical interface
|
||||
|
||||
$ ./configure
|
||||
$ make && make install
|
||||
@@ -28,7 +9,21 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
||||
|
||||
will install and execute qBittorrent.
|
||||
|
||||
2b) Compile and install qBittorrent without Qt graphical interface
|
||||
Dependencies:
|
||||
- Qt >= 5.5.1
|
||||
|
||||
- pkg-config
|
||||
|
||||
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
|
||||
* https://www.libtorrent.org/
|
||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||
|
||||
- Boost >= 1.35
|
||||
|
||||
- Python >= 2.7.9 / 3.3.0 (optional, runtime only)
|
||||
* Required by the internal search engine
|
||||
|
||||
2) Compile and install qBittorrent without Qt graphical interface
|
||||
|
||||
$ ./configure --disable-gui
|
||||
$ make && make install
|
||||
@@ -36,6 +31,17 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
||||
|
||||
will install and execute qBittorrent.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 5.5.1
|
||||
|
||||
- pkg-config
|
||||
|
||||
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
|
||||
* https://www.libtorrent.org/
|
||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||
|
||||
- Boost >= 1.35
|
||||
|
||||
DOCUMENTATION:
|
||||
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
|
||||
|
||||
|
@@ -38,9 +38,8 @@ else()
|
||||
# libtorrent is very picky about those. Let's take a set of defaults and
|
||||
# hope that they apply. If not, you the user are on your own.
|
||||
set(LibtorrentRasterbar_DEFINITIONS
|
||||
-DTORRENT_USE_LIBCRYPTO
|
||||
# TODO: remove the following define as it is not used since OpenSSL >= 1.1
|
||||
-DTORRENT_USE_OPENSSL
|
||||
-DTORRENT_DISABLE_GEO_IP
|
||||
-DBOOST_ASIO_ENABLE_CANCELIO
|
||||
-DUNICODE -D_UNICODE -D_FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
@@ -48,7 +47,7 @@ else()
|
||||
if(NOT LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||
list(APPEND LibtorrentRasterbar_DEFINITIONS
|
||||
-DTORRENT_LINKING_SHARED
|
||||
-DBOOST_SYSTEM_DYN_LINK)
|
||||
-DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
79
cmake/Modules/FindQtSingleApplication.cmake
Normal file
@@ -0,0 +1,79 @@
|
||||
# - Try to find the QtSingleApplication includes and library
|
||||
# which defines
|
||||
#
|
||||
# QtSingleApplication_FOUND - system has QtSingleApplication
|
||||
# QtSingleApplication_INCLUDE_DIR - where to find header QtSingleApplication
|
||||
# QtSingleApplication_LIBRARIES - the libraries to link against to use QtSingleApplication
|
||||
# QtSingleApplication_LIBRARY - where to find the QtSingleApplication library (not for general use)
|
||||
|
||||
# copyright (c) 2013 TI_Eugene ti.eugene@gmail.com
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the FreeBSD license.
|
||||
|
||||
SET(QtSingleApplication_FOUND FALSE)
|
||||
|
||||
if (Qt5Widgets_FOUND)
|
||||
set(_includeFileName qtsingleapplication.h)
|
||||
else()
|
||||
set(_includeFileName qtsinglecoreapplication.h)
|
||||
endif()
|
||||
|
||||
FOREACH(TOP_INCLUDE_PATH in ${Qt5Core_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR})
|
||||
FIND_PATH(QtSingleApplication_INCLUDE_DIR ${_includeFileName} ${TOP_INCLUDE_PATH}/QtSolutions)
|
||||
|
||||
IF(QtSingleApplication_INCLUDE_DIR)
|
||||
BREAK()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
SET(QtSingleApplication_NAMES ${QtSingleApplication_NAMES}
|
||||
Qt5Solutions_SingleApplication-2.6 libQt5Solutions_SingleApplication-2.6
|
||||
QtSolutions_SingleApplication-2.6 libQtSolutions_SingleApplication-2.6)
|
||||
GET_TARGET_PROPERTY(_QT5_CORELIBRARY Qt5::Core LOCATION)
|
||||
GET_FILENAME_COMPONENT(_QT5_CORELIBRARYPATH ${_QT5_CORELIBRARY} PATH)
|
||||
|
||||
FIND_LIBRARY(QtSingleApplication_LIBRARY
|
||||
NAMES ${QtSingleApplication_NAMES}
|
||||
PATHS ${_QT5_CORELIBRARYPATH}
|
||||
)
|
||||
|
||||
IF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
|
||||
|
||||
SET(QtSingleApplication_LIBRARIES ${QtSingleApplication_LIBRARY})
|
||||
SET(QtSingleApplication_FOUND TRUE)
|
||||
|
||||
IF (CYGWIN)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
# No need to define QtSingleApplication_USE_DLL here, because it's default for Cygwin.
|
||||
ELSE(BUILD_SHARED_LIBS)
|
||||
SET (QtSingleApplication_DEFINITIONS -DQTSINGLEAPPLICATION_STATIC)
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
ENDIF (CYGWIN)
|
||||
|
||||
ENDIF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
|
||||
|
||||
IF (QtSingleApplication_FOUND)
|
||||
IF (NOT QtSingleApplication_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found QtSingleApplication: ${QtSingleApplication_LIBRARY}")
|
||||
MESSAGE(STATUS " includes: ${QtSingleApplication_INCLUDE_DIR}")
|
||||
ENDIF (NOT QtSingleApplication_FIND_QUIETLY)
|
||||
if(NOT TARGET QtSingleApplication::QtSingleApplication)
|
||||
add_library(QtSingleApplication::QtSingleApplication UNKNOWN IMPORTED)
|
||||
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
|
||||
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
|
||||
)
|
||||
if(EXISTS "${QtSingleApplication_LIBRARY}")
|
||||
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${QtSingleApplication_LIBRARY}")
|
||||
endif()
|
||||
endif(NOT TARGET QtSingleApplication::QtSingleApplication)
|
||||
|
||||
ELSE (QtSingleApplication_FOUND)
|
||||
IF (QtSingleApplication_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find QtSingleApplication library")
|
||||
ENDIF (QtSingleApplication_FIND_REQUIRED)
|
||||
ENDIF (QtSingleApplication_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(QtSingleApplication_INCLUDE_DIR QtSingleApplication_LIBRARY)
|
@@ -10,14 +10,14 @@ macro(qbt_set_compiler_options)
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
#-Wshadow -Wconversion ?
|
||||
set(_GCC_COMMON_C_AND_CXX_FLAGS "-Wall -Wextra"
|
||||
"-Wcast-qual -Wcast-align"
|
||||
"-Winvalid-pch -Wno-long-long"
|
||||
"-Wfloat-equal -Wcast-qual -Wcast-align"
|
||||
"-Wsign-conversion -Winvalid-pch -Wno-long-long"
|
||||
#"-fstack-protector-all"
|
||||
#"-Werror -Wno-error=deprecated-declarations"
|
||||
)
|
||||
set(_GCC_COMMON_CXX_FLAGS "-fexceptions -frtti"
|
||||
"-Woverloaded-virtual -Wold-style-cast"
|
||||
"-Wnon-virtual-dtor"
|
||||
"-Wnon-virtual-dtor -Wfloat-equal -Wcast-qual -Wcast-align"
|
||||
#"-Weffc++"
|
||||
#"-Werror -Wno-error=cpp"
|
||||
# we should modify code to make these ones obsolete
|
||||
@@ -61,7 +61,7 @@ macro(qbt_set_compiler_options)
|
||||
endif (_STRICT_NULL_SENTINEL_IS_SUPPORTED)
|
||||
|
||||
# Code should be improved to render this not needed
|
||||
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=unused-function")
|
||||
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=unused-function -Wno-error=inconsistent-missing-override")
|
||||
else ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
# GCC supports it
|
||||
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wstrict-null-sentinel")
|
||||
@@ -73,29 +73,30 @@ macro(qbt_set_compiler_options)
|
||||
string(APPEND CMAKE_C_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}")
|
||||
string(APPEND CMAKE_CXX_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING} ${_GCC_COMMON_CXX_FLAGS_STRING}")
|
||||
|
||||
set(QBT_ADDITONAL_FLAGS "${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}" CACHE STRING
|
||||
"Additional qBittorent compile flags" FORCE)
|
||||
set(QBT_ADDITONAL_CXX_FLAGS "${_GCC_COMMON_CXX_FLAGS_STRING}" CACHE STRING
|
||||
"Additional qBittorent C++ compile flags" FORCE)
|
||||
|
||||
# check whether we can enable -Og optimization for debug build
|
||||
# also let's enable -march=native for debug builds
|
||||
check_cxx_compiler_flag(-Og _DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||
|
||||
if (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||
set(QBT_ADDITONAL_FLAGS "-Og -g3 -pipe" CACHE STRING
|
||||
"Additional qBittorent compile flags")
|
||||
set(QBT_ADDITONAL_CXX_FLAGS "-Og -g3 -pipe" CACHE STRING
|
||||
"Additional qBittorent C++ compile flags")
|
||||
string(APPEND CMAKE_C_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
|
||||
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
|
||||
else(_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||
set(QBT_ADDITONAL_FLAGS "-O0 -g3 -pipe" CACHE STRING
|
||||
"Additional qBittorent compile flags")
|
||||
set(QBT_ADDITONAL_CXX_FLAGS "-O0 -g3 -pipe" CACHE STRING
|
||||
"Additional qBittorent C++ compile flags")
|
||||
string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
|
||||
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
|
||||
endif (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
set(QBT_ADDITONAL_FLAGS "-wd4290 -wd4275 -wd4251 /W4" CACHE STRING "Additional qBittorent compile flags")
|
||||
string(APPEND CMAKE_C_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||
string(APPEND CMAKE_CXX_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||
endif ()
|
||||
|
||||
string(APPEND CMAKE_C_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||
string(APPEND CMAKE_CXX_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||
|
||||
# endif (NOT QBT_ADDITONAL_FLAGS)
|
||||
endmacro(qbt_set_compiler_options)
|
||||
|
||||
|
@@ -1,11 +1,14 @@
|
||||
if (STACKTRACE)
|
||||
if ("${WINXXBITS}" NOT STREQUAL "Win64")
|
||||
add_compile_options(-fno-omit-frame-pointer)
|
||||
endif ("${WINXXBITS}" NOT STREQUAL "Win64")
|
||||
link_libraries(libdbghelp -Wl,--export-all-symbols)
|
||||
endif (STACKTRACE)
|
||||
|
||||
if (("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo"))
|
||||
link_libraries(-Wl,--dynamicbase)
|
||||
endif ()
|
||||
|
||||
list(APPEND LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
-D_FILE_OFFSET_BITS=64
|
||||
-D__USE_W32_SOCKETS)
|
||||
|
||||
# libraries from winconf.pri
|
||||
link_libraries(advapi32 iphlpapi ole32 shell32 user32 wsock32 ws2_32)
|
||||
endif()
|
||||
|
||||
# LIBS += libadvapi32 libshell32 libuser32
|
||||
# LIBS += libcrypto.dll libssl.dll libwsock32 libws2_32 libz libiconv.dll
|
||||
# LIBS += libpowrprof
|
||||
|
@@ -1,7 +1,21 @@
|
||||
if (STACKTRACE)
|
||||
if ("${WINXXBITS}" STREQUAL "Win64")
|
||||
add_compile_options(-Zi)
|
||||
else ("${WINXXBITS}" STREQUAL "Win64")
|
||||
# i686 arch requires frame pointer preservation
|
||||
add_compile_options(-Oy-)
|
||||
endif ("${WINXXBITS}" STREQUAL "Win64")
|
||||
link_libraries(dbghelp.lib)
|
||||
endif (STACKTRACE)
|
||||
|
||||
# Enable Wide characters
|
||||
add_definitions(-DTORRENT_USE_WPATH)
|
||||
|
||||
if (NOT QT5)
|
||||
# Qt4 does not detect it itself
|
||||
add_definitions(-DQ_COMPILER_INITIALIZER_LISTS)
|
||||
endif (NOT QT5)
|
||||
|
||||
include(MacroConfigureMSVCRuntime)
|
||||
set(MSVC_RUNTIME "dynamic")
|
||||
configure_msvc_runtime()
|
||||
|
||||
# libraries from winconf.pri
|
||||
link_libraries(advapi32 crypt32 Iphlpapi ole32 shell32 User32)
|
||||
|
||||
|
@@ -2,51 +2,33 @@
|
||||
|
||||
list(APPEND CMAKE_LIBRARY_PATH "$ENV{LIB}")
|
||||
|
||||
# We want to link with static version of
|
||||
# libtorrent
|
||||
set(LibtorrentRasterbar_USE_STATIC_LIBS True)
|
||||
set(LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
-DBOOST_ASIO_DISABLE_CONNECTEX
|
||||
-DBOOST_ALL_NO_LIB -DBOOST_ASIO_HASH_MAP_BUCKETS=1021
|
||||
-DBOOST_ASIO_SEPARATE_COMPILATION
|
||||
-DBOOST_EXCEPTION_DISABLE
|
||||
-DTORRENT_USE_LIBCRYPTO
|
||||
# TODO: remove the following define as it is not used since OpenSSL >= 1.1
|
||||
-DBOOST_SYSTEM_STATIC_LINK=1
|
||||
-DTORRENT_USE_OPENSSL
|
||||
# TODO: remove the following define as it is not used since libtorrent >= 1.2
|
||||
-DTORRENT_DISABLE_RESOLVE_COUNTRIES
|
||||
)
|
||||
-D__USE_W32_SOCKETS
|
||||
-D_FILE_OFFSET_BITS=64)
|
||||
|
||||
set(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES system)
|
||||
|
||||
# If you want to link with static version of libtorrent
|
||||
#set(LibtorrentRasterbar_USE_STATIC_LIBS True)
|
||||
#list(APPEND LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
# -DBOOST_SYSTEM_STATIC_LINK=1)
|
||||
|
||||
# and boost
|
||||
#set(Boost_USE_STATIC_LIBS True)
|
||||
#set(Boost_USE_STATIC_RUNTIME True)
|
||||
|
||||
add_definitions(
|
||||
-DNTDDI_VERSION=0x06010000
|
||||
-D_WIN32_WINNT=0x0601
|
||||
-D_WIN32_IE=0x0601
|
||||
-DUNICODE
|
||||
add_definitions(-DUNICODE
|
||||
-D_UNICODE
|
||||
-DWIN32
|
||||
-D_WIN32
|
||||
-DWIN32_LEAN_AND_MEAN
|
||||
-DNTDDI_VERSION=0x05010000
|
||||
-D_WIN32_WINNT=0x0501
|
||||
-D_WIN32_IE=0x0501
|
||||
-D_CRT_SECURE_NO_DEPRECATE
|
||||
-D_SCL_SECURE_NO_DEPRECATE
|
||||
-DNOMINMAX
|
||||
-DBOOST_ALL_NO_LIB
|
||||
)
|
||||
|
||||
# Enable if libtorrent was built with this flag defined
|
||||
#list(APPEND LibtorrentRasterbar_CUSTOM_DEFINITIONS -DTORRENT_NO_DEPRECATE)
|
||||
|
||||
if (("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo"))
|
||||
list(APPEND LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
-DTORRENT_DEBUG)
|
||||
else ()
|
||||
add_definitions(-DNDEBUG)
|
||||
endif ()
|
||||
# and boost
|
||||
set(Boost_USE_STATIC_LIBS True)
|
||||
# set(Boost_USE_STATIC_RUNTIME True)
|
||||
|
||||
# Here we assume that all required libraries are installed into the same prefix
|
||||
# with usual unix subdirectories (bin, lib, include)
|
||||
@@ -56,9 +38,17 @@ set(COMMON_INSTALL_PREFIX "c:/usr" CACHE PATH "Prefix used to install all the re
|
||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${COMMON_INSTALL_PREFIX}")
|
||||
|
||||
# If two version of Qt are installed, separate prefixes are needed most likely
|
||||
set(QT4_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt4" CACHE PATH "Prefix where Qt4 is installed")
|
||||
set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5" CACHE PATH "Prefix where Qt5 is installed")
|
||||
|
||||
# it is safe to set Qt dirs even if their files are directly in the prefix
|
||||
# Qt4
|
||||
if(NOT QT5)
|
||||
# for qt 4 we need qmake, Qt5 provides cmake config files
|
||||
LIST(APPEND CMAKE_PROGRAM_PATH "${QT4_INSTALL_PREFIX}/bin/")
|
||||
endif(NOT QT5)
|
||||
|
||||
# Qt5
|
||||
set(Qt5_DIR "${QT5_INSTALL_PREFIX}/lib/cmake/Qt5")
|
||||
|
||||
# And now we can set specific values for the Boost and libtorrent libraries.
|
||||
|
@@ -35,15 +35,26 @@ LIBS += zlib.lib
|
||||
#LIBS += libcrypto libssl
|
||||
#LIBS += libz
|
||||
|
||||
DEFINES += NTDDI_VERSION=0x05010000
|
||||
DEFINES += _WIN32_WINNT=0x0501
|
||||
DEFINES += _WIN32_IE=0x0501
|
||||
|
||||
# Disable to use Boost auto-linking
|
||||
DEFINES += BOOST_ALL_NO_LIB
|
||||
# Use one of the following options
|
||||
DEFINES += BOOST_SYSTEM_STATIC_LINK
|
||||
#DEFINES += BOOST_SYSTEM_DYN_LINK
|
||||
# Boost 1.60+ defaults to Vista+ support. The define below enables XP support again.
|
||||
DEFINES += BOOST_USE_WINAPI_VERSION=0x0501
|
||||
# Enable if building against libtorrent 1.0.x (RC_1_0) (static linking)
|
||||
#DEFINES += BOOST_ASIO_SEPARATE_COMPILATION
|
||||
# Enable if building against libtorrent 1.0.x (RC_1_0) (dynamic linking)
|
||||
#DEFINES += BOOST_ASIO_DYN_LINK
|
||||
# Enable if encountered build error with boost version <= 1.59
|
||||
#DEFINES += BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
|
||||
# Enable if libtorrent was built with this flag defined
|
||||
# Enable if building against libtorrent 1.1.x (RC_1_1)
|
||||
# built with this flag defined
|
||||
#DEFINES += TORRENT_NO_DEPRECATE
|
||||
# Enable if linking dynamically against libtorrent
|
||||
#DEFINES += TORRENT_LINKING_SHARED
|
||||
|
88
configure.ac
@@ -1,4 +1,4 @@
|
||||
AC_INIT([qbittorrent], [v4.2.1], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_INIT([qbittorrent], [v4.1.9], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_PROG_CC
|
||||
@@ -14,6 +14,12 @@ QBT_CXX="$CXX"
|
||||
|
||||
# Define --wth-* and --enable-* arguments
|
||||
|
||||
AC_ARG_WITH(qtsingleapplication,
|
||||
[AS_HELP_STRING([--with-qtsingleapplication=@<:@system|shipped@:>@],
|
||||
[Use the shipped qtsingleapplication library or the system one (default=shipped)])],
|
||||
[],
|
||||
[with_qtsingleapplication=shipped])
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[AS_HELP_STRING([--enable-debug],
|
||||
[Enable debug build])],
|
||||
@@ -157,7 +163,7 @@ AS_CASE(["x$enable_qt_dbus"],
|
||||
AC_MSG_ERROR([Unknown option "$enable_qt_dbus". Use either "yes" or "no".])])
|
||||
|
||||
|
||||
AX_BOOST_BASE([1.40],
|
||||
AX_BOOST_BASE([1.35],
|
||||
[AC_MSG_NOTICE([Boost CXXFLAGS: "$BOOST_CPPFLAGS"])
|
||||
AC_MSG_NOTICE([Boost LDFLAGS: "$BOOST_LDFLAGS"])],
|
||||
[AC_MSG_ERROR([Could not find Boost])])
|
||||
@@ -177,51 +183,58 @@ AX_BOOST_SYSTEM()
|
||||
AC_MSG_NOTICE([Boost.System LIB: "$BOOST_SYSTEM_LIB"])
|
||||
LIBS="$BOOST_SYSTEM_LIB $LIBS"
|
||||
|
||||
AC_MSG_CHECKING([which qtsingleapplication to use])
|
||||
AS_CASE(["x$with_qtsingleapplication"],
|
||||
["xshipped"],
|
||||
[AC_MSG_RESULT([shipped])
|
||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG usesystemqtsingleapplication"],
|
||||
["xsystem"],
|
||||
[AC_MSG_RESULT([system])
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG usesystemqtsingleapplication"],
|
||||
[AC_MSG_RESULT([$with_qtsingleapplication])
|
||||
AC_MSG_ERROR([Unknown option "$with_qtsingleapplication". Use either "system" or "shipped".])])
|
||||
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.1.10],
|
||||
[libtorrent-rasterbar >= 1.0.6],
|
||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])
|
||||
|
||||
PKG_CHECK_MODULES(openssl,
|
||||
[openssl >= 1.0],
|
||||
[CXXFLAGS="$openssl_CFLAGS $CXXFLAGS"
|
||||
LIBS="$openssl_LIBS $LIBS"])
|
||||
|
||||
PKG_CHECK_MODULES(zlib,
|
||||
[zlib >= 1.2.5.2],
|
||||
[CXXFLAGS="$zlib_CFLAGS $CXXFLAGS"
|
||||
LIBS="$zlib_LIBS $LIBS"])
|
||||
|
||||
# Check if already in >= C++14 mode because of the flags returned by one of the above packages
|
||||
TMP_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS=""
|
||||
AC_MSG_CHECKING([if compiler defaults to C++14 or later mode])
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
# Check if already in >= C++11 mode because of the flags returned by one of the above packages
|
||||
AC_MSG_CHECKING([if compiler is using C++11 or later mode])
|
||||
AC_COMPILE_IFELSE([DETECT_CPP11_PROGRAM()],
|
||||
[AC_MSG_RESULT([yes])
|
||||
QBT_CXX14_FOUND="yes"],
|
||||
QBT_CXX11_FOUND="yes"],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_CXX14_FOUND="no"])
|
||||
|
||||
# In case of no, check if the compiler can support at least C++14
|
||||
QBT_CXX11_FOUND="no"])
|
||||
|
||||
# In case of no, check if the compiler can support at least C++11
|
||||
# and if yes, enable it leaving a warning to the user
|
||||
AS_IF([test "x$QBT_CXX14_FOUND" = "xno"],
|
||||
[AC_MSG_CHECKING([if compiler supports C++14])
|
||||
CXXFLAGS="-std=c++14"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
AS_IF([test "x$QBT_CXX11_FOUND" = "xno"],
|
||||
[AC_MSG_CHECKING([if compiler supports C++11])
|
||||
TMP_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP11_PROGRAM()],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([if C++14 is disabled by the set compiler flags])
|
||||
AC_MSG_CHECKING([if C++11 is disabled by the set compiler flags])
|
||||
# prepend the flag so it won't override conflicting user defined flags
|
||||
CXXFLAGS="-std=c++14 $TMP_CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP14_PROGRAM()],
|
||||
CXXFLAGS="-std=c++11 $TMP_CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([DETECT_CPP11_PROGRAM()],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++14"
|
||||
AC_MSG_WARN([C++14 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])],
|
||||
CXXFLAGS="$TMP_CXXFLAGS -std=c++11"
|
||||
AC_MSG_WARN([C++11 mode is now force enabled.
|
||||
Make sure you use the same C++ mode for qBittorrent and its dependencies.
|
||||
To explicitly set qBittorrent to a later mode use CXXFLAGS.
|
||||
Example: `CXXFLAGS="\$CXXFLAGS -std=c++14" ./configure`])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_MSG_ERROR([The compiler supports C++14 but the user or a dependency has explicitly enabled a lower mode.])])],
|
||||
AC_MSG_ERROR([The compiler supports C++11 but the user or a dependency has explicitly enabled a lower mode.])])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([A compiler supporting C++14 is required.])])
|
||||
AC_MSG_ERROR([A compiler supporting C++11 is required.])])
|
||||
])
|
||||
CXXFLAGS="$TMP_CXXFLAGS"
|
||||
|
||||
# These are required because autoconf doesn't expand these **particular**
|
||||
# vars automatically. And qmake cannot autoexpand them.
|
||||
@@ -274,14 +287,17 @@ AC_OUTPUT(conf.pri)
|
||||
AS_IF([test "x$enable_systemd" = "xyes"],
|
||||
[AC_OUTPUT(dist/unix/systemd/qbittorrent-nox@.service)])
|
||||
|
||||
|
||||
|
||||
AC_MSG_NOTICE([Running qmake to generate the makefile...])
|
||||
TOPDIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
$QT_QMAKE -r "$TOPDIR/qbittorrent.pro" "QMAKE_LRELEASE=$QMAKE_LRELEASE"
|
||||
qmake_ret="$?"
|
||||
CONFDIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
|
||||
$QT_QMAKE -r [$CONFDIR]/qbittorrent.pro "QMAKE_LRELEASE=$QMAKE_LRELEASE"
|
||||
|
||||
ret="$?"
|
||||
|
||||
AS_ECHO()
|
||||
AS_IF([test "x$qmake_ret" != "x0"],
|
||||
[AC_MSG_ERROR([$QT_QMAKE failed to generate the makefile])])
|
||||
|
||||
AC_MSG_NOTICE([Good, the configure finished.])
|
||||
AS_IF([test "x$ret" = "x0"],
|
||||
[AC_MSG_NOTICE([Good, your configure finished.])],
|
||||
[AC_MSG_ERROR([Failed running $QT_QMAKE to generate the makefile])])
|
||||
AS_ECHO()
|
||||
|
2
dist/mac/Info.plist
vendored
@@ -55,7 +55,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.2.1</string>
|
||||
<string>4.1.9</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>@EXECUTABLE@</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
BIN
dist/mac/qbittorrent_mac.icns
vendored
BIN
dist/unix/menuicons/128x128/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.6 KiB |
BIN
dist/unix/menuicons/16x16/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 775 B After Width: | Height: | Size: 986 B |
Before Width: | Height: | Size: 775 B After Width: | Height: | Size: 986 B |
BIN
dist/unix/menuicons/192x192/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
dist/unix/menuicons/22x22/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
dist/unix/menuicons/48x48/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
dist/unix/menuicons/72x72/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
BIN
dist/unix/menuicons/96x96/apps/qbittorrent.png
vendored
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.6 KiB |