You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-07 09:52:18 +02:00
Compare commits
1171 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2bd5ea2c68 | ||
![]() |
1479a74198 | ||
![]() |
9a0d25284c | ||
![]() |
284e836992 | ||
![]() |
43f5b31843 | ||
![]() |
cada6cfc88 | ||
![]() |
99f157927f | ||
![]() |
664664394c | ||
![]() |
a790901691 | ||
![]() |
fdc70eaa62 | ||
![]() |
b05a23e1ab | ||
![]() |
9f6a0882e2 | ||
![]() |
b351b21e55 | ||
![]() |
ef22f06e92 | ||
![]() |
8ea7426bc1 | ||
![]() |
79e7e1727f | ||
![]() |
98c33dd77c | ||
![]() |
9c6504f6dd | ||
![]() |
76c350bdcb | ||
![]() |
106dcfd00e | ||
![]() |
668c8cb0e2 | ||
![]() |
3159bdf4dd | ||
![]() |
97d2c0d187 | ||
![]() |
0041ee3636 | ||
![]() |
1ed523bec3 | ||
![]() |
b131a6e9df | ||
![]() |
56d9d370e9 | ||
![]() |
a6efc4d92d | ||
![]() |
a77db6e822 | ||
![]() |
95a558941e | ||
![]() |
867d69d0f2 | ||
![]() |
a6d381da38 | ||
![]() |
f0eb708b07 | ||
![]() |
1d70698bd0 | ||
![]() |
79871c8e21 | ||
![]() |
25d5524213 | ||
![]() |
8d21b73434 | ||
![]() |
2ef01a314c | ||
![]() |
a8b4aca5e6 | ||
![]() |
67e7315eae | ||
![]() |
a25a15d1c6 | ||
![]() |
086588eeed | ||
![]() |
44fa308681 | ||
![]() |
6188287094 | ||
![]() |
17d10afd65 | ||
![]() |
89bd0e4397 | ||
![]() |
1c1917f885 | ||
![]() |
642377bd65 | ||
![]() |
bb4668c071 | ||
![]() |
689316db09 | ||
![]() |
ad0c008a3e | ||
![]() |
09e3698b37 | ||
![]() |
6450ebfc6c | ||
![]() |
e9f38ebcfd | ||
![]() |
4dba31f534 | ||
![]() |
04c1aad0dd | ||
![]() |
6763f3ac33 | ||
![]() |
afca704db0 | ||
![]() |
eaec8fcddd | ||
![]() |
f86fd52d6f | ||
![]() |
f3f175570c | ||
![]() |
729c80f910 | ||
![]() |
fcaca558a0 | ||
![]() |
983df9113e | ||
![]() |
acf9874252 | ||
![]() |
d7cf6bb11b | ||
![]() |
558ea53cc2 | ||
![]() |
87a6478430 | ||
![]() |
cea673b267 | ||
![]() |
4a5ab93c62 | ||
![]() |
4c86fc8973 | ||
![]() |
1c485ffb07 | ||
![]() |
f283734f13 | ||
![]() |
dca4ff0649 | ||
![]() |
1975f2269e | ||
![]() |
6fac9b42da | ||
![]() |
dabae4c914 | ||
![]() |
b1e9b4493d | ||
![]() |
2fa207e728 | ||
![]() |
7adcd909e7 | ||
![]() |
50805fc2b5 | ||
![]() |
3a1b7b6159 | ||
![]() |
498b7c2436 | ||
![]() |
4f17364305 | ||
![]() |
9ebc115719 | ||
![]() |
a6fa8c3a8e | ||
![]() |
8187366c89 | ||
![]() |
366ad01120 | ||
![]() |
4da05e5914 | ||
![]() |
3fb19b6a28 | ||
![]() |
88f59070a4 | ||
![]() |
476ffbe68a | ||
![]() |
8a1846cb26 | ||
![]() |
1cafde2afe | ||
![]() |
bdf7312f5d | ||
![]() |
a848d3d2d8 | ||
![]() |
4a328843e4 | ||
![]() |
edeb2342be | ||
![]() |
0639a06809 | ||
![]() |
7590d0fdad | ||
![]() |
fe54da80cd | ||
![]() |
e4ac654795 | ||
![]() |
1848180faa | ||
![]() |
4e9b71078f | ||
![]() |
fe1b388347 | ||
![]() |
23b4e62834 | ||
![]() |
7fb96431b9 | ||
![]() |
5213f35ec0 | ||
![]() |
8e2297510d | ||
![]() |
18505e2517 | ||
![]() |
10908a6ece | ||
![]() |
c1ee91cd2a | ||
![]() |
036b4e1a85 | ||
![]() |
3a4dc08304 | ||
![]() |
e805e6806a | ||
![]() |
f2163f6c3d | ||
![]() |
6288cb4fd3 | ||
![]() |
409e877f8a | ||
![]() |
f2d5ba2907 | ||
![]() |
b33d0f0a59 | ||
![]() |
63245de69b | ||
![]() |
b9fd9f1d8d | ||
![]() |
c6fe1d3620 | ||
![]() |
73f08dd6e1 | ||
![]() |
22dc71f365 | ||
![]() |
455cc29dad | ||
![]() |
9d39a2cddc | ||
![]() |
efeb46571b | ||
![]() |
a7b564bb2e | ||
![]() |
10df509bce | ||
![]() |
7b394d6e99 | ||
![]() |
f1968de2c9 | ||
![]() |
b5db0eeec1 | ||
![]() |
3ed803f59b | ||
![]() |
ff10702bfd | ||
![]() |
73d3664f92 | ||
![]() |
aa6025aa87 | ||
![]() |
a344886ef6 | ||
![]() |
c181019f40 | ||
![]() |
5962efde23 | ||
![]() |
d43466d466 | ||
![]() |
29fb8e8085 | ||
![]() |
b076ff68ac | ||
![]() |
5f2da3a529 | ||
![]() |
576fbe5dc1 | ||
![]() |
8fc7f3fdc0 | ||
![]() |
becd67ac84 | ||
![]() |
7761a2604a | ||
![]() |
c6546db138 | ||
![]() |
f0dd4d5673 | ||
![]() |
7f245b63d7 | ||
![]() |
af17f4df9e | ||
![]() |
3ec2f94b27 | ||
![]() |
d7f1beb7f1 | ||
![]() |
8c7a4ab86c | ||
![]() |
ce2d42a264 | ||
![]() |
dc011a5599 | ||
![]() |
3c6b79805c | ||
![]() |
7e7055f2ff | ||
![]() |
18c9a65340 | ||
![]() |
f5ce39a36a | ||
![]() |
58e4f9d38e | ||
![]() |
5bd7dce396 | ||
![]() |
d9d49b6d0b | ||
![]() |
cc48ca1fdc | ||
![]() |
2dc6002064 | ||
![]() |
1478b21e8d | ||
![]() |
726c2fd56d | ||
![]() |
df86d66702 | ||
![]() |
223415fb69 | ||
![]() |
a4c9b667a7 | ||
![]() |
5f8e05ba50 | ||
![]() |
ed2689de15 | ||
![]() |
9e124527e1 | ||
![]() |
59971aa577 | ||
![]() |
164ca0289a | ||
![]() |
c0aa50d74b | ||
![]() |
66d7dc751c | ||
![]() |
c1738f97f1 | ||
![]() |
105874613a | ||
![]() |
d6829b253b | ||
![]() |
c1291539bf | ||
![]() |
3060c979f4 | ||
![]() |
d71a18b945 | ||
![]() |
4078fc5e2d | ||
![]() |
b7cb53a251 | ||
![]() |
275a775769 | ||
![]() |
1c49ff1df6 | ||
![]() |
fc77fdbcb5 | ||
![]() |
e0e757b610 | ||
![]() |
33fe9b6d87 | ||
![]() |
fca78d1a3f | ||
![]() |
92794a786f | ||
![]() |
08d9ad7f80 | ||
![]() |
6023093329 | ||
![]() |
c070193c30 | ||
![]() |
633fb7a7de | ||
![]() |
14a37e8d45 | ||
![]() |
d03a71899e | ||
![]() |
283338f5f3 | ||
![]() |
b600253313 | ||
![]() |
c97b5ab617 | ||
![]() |
9016b698c9 | ||
![]() |
eb7a7b9c04 | ||
![]() |
9e0a3ee692 | ||
![]() |
c899ed5b50 | ||
![]() |
a6c50aff95 | ||
![]() |
ab4a608342 | ||
![]() |
e7cfd7a31d | ||
![]() |
c4ea13b284 | ||
![]() |
5d09639109 | ||
![]() |
885f5b4bee | ||
![]() |
3cd06c457a | ||
![]() |
373e22660d | ||
![]() |
92f58a40e7 | ||
![]() |
dbf5a264bd | ||
![]() |
145dcf9efe | ||
![]() |
f05e25c750 | ||
![]() |
fc02377171 | ||
![]() |
3816052b0a | ||
![]() |
fae583e0da | ||
![]() |
1114c198ca | ||
![]() |
c5f9567c0b | ||
![]() |
e9a5768e4f | ||
![]() |
858e5f8db8 | ||
![]() |
0afa83dbfa | ||
![]() |
fc95ce310e | ||
![]() |
e2c9e7b877 | ||
![]() |
b1e62ca006 | ||
![]() |
a063ebd396 | ||
![]() |
728dd744bb | ||
![]() |
a0c1ee76a2 | ||
![]() |
c7b15b9cc5 | ||
![]() |
0770fe8b09 | ||
![]() |
cf98220c40 | ||
![]() |
2eb393ae9a | ||
![]() |
d65d11d64c | ||
![]() |
f4fdb80cc9 | ||
![]() |
50a0ce1da2 | ||
![]() |
2e9370481d | ||
![]() |
c60c58b092 | ||
![]() |
ba5dded076 | ||
![]() |
eb36949e87 | ||
![]() |
b7358a3039 | ||
![]() |
d0f082e238 | ||
![]() |
b301444f5e | ||
![]() |
900a80adc1 | ||
![]() |
d4887ee736 | ||
![]() |
e23566cde1 | ||
![]() |
b5f30a6efb | ||
![]() |
deb1d54999 | ||
![]() |
7779efbc30 | ||
![]() |
acd65e3185 | ||
![]() |
f2dd050ade | ||
![]() |
9c28a48f2e | ||
![]() |
3e8af95d30 | ||
![]() |
cba9d222de | ||
![]() |
b137eb01ed | ||
![]() |
fd156580a0 | ||
![]() |
21c17f2a81 | ||
![]() |
5f19cd2c0e | ||
![]() |
9279fedd49 | ||
![]() |
2361d6f12d | ||
![]() |
78bfbc5669 | ||
![]() |
6101f11673 | ||
![]() |
15361a6c16 | ||
![]() |
835a999464 | ||
![]() |
b9b0739efd | ||
![]() |
a34c072b7a | ||
![]() |
72e88ba7ec | ||
![]() |
afb143cad1 | ||
![]() |
1ca5d10abb | ||
![]() |
67675b6cdc | ||
![]() |
ef47983d8d | ||
![]() |
cf47517ee3 | ||
![]() |
33199bbd74 | ||
![]() |
4fb735c6d1 | ||
![]() |
99ca42bf48 | ||
![]() |
f6b4b5f6f0 | ||
![]() |
6f73c32fcc | ||
![]() |
c1611988b4 | ||
![]() |
fbe1d2d78a | ||
![]() |
34fec15ceb | ||
![]() |
1977e4f24d | ||
![]() |
5774d27c7b | ||
![]() |
3a6a857371 | ||
![]() |
e2f88feaf9 | ||
![]() |
16fec04b6a | ||
![]() |
fbac4afa2d | ||
![]() |
d6e9736af1 | ||
![]() |
76b3c72c86 | ||
![]() |
ef954fea55 | ||
![]() |
11d085712e | ||
![]() |
e4bc7852e5 | ||
![]() |
3d107e0588 | ||
![]() |
8e5c31ae82 | ||
![]() |
3c03ccc14a | ||
![]() |
0795320086 | ||
![]() |
bd6877a0bd | ||
![]() |
b47292c39f | ||
![]() |
3d2b1b876b | ||
![]() |
843472e663 | ||
![]() |
e952e3167e | ||
![]() |
67f05edf71 | ||
![]() |
3ab76cb985 | ||
![]() |
509d97b0ad | ||
![]() |
67ae08df3c | ||
![]() |
38de6b1e41 | ||
![]() |
72b179805d | ||
![]() |
beeda5e0b2 | ||
![]() |
356db2f2f7 | ||
![]() |
19acbf587f | ||
![]() |
5eee3f7357 | ||
![]() |
8f990d5d7e | ||
![]() |
f0ec94c31c | ||
![]() |
e37dfa96f9 | ||
![]() |
4b48db3273 | ||
![]() |
545002a809 | ||
![]() |
e2e9470e10 | ||
![]() |
0bf1abba6a | ||
![]() |
24165856e9 | ||
![]() |
657f0640b9 | ||
![]() |
faffefc4ff | ||
![]() |
0619aacf1f | ||
![]() |
9edbbb6473 | ||
![]() |
87ee720c0c | ||
![]() |
b7ca036bc3 | ||
![]() |
c4442c98b9 | ||
![]() |
fee8036a7a | ||
![]() |
94bd4308c7 | ||
![]() |
5e5785435a | ||
![]() |
d7f02a7ee7 | ||
![]() |
e6480f9dff | ||
![]() |
e9f6cfc2e8 | ||
![]() |
4f68d263d4 | ||
![]() |
6a672472a2 | ||
![]() |
3590ac2997 | ||
![]() |
98fe5e11dd | ||
![]() |
9df5c0292b | ||
![]() |
1f2d25a1ff | ||
![]() |
f1dd7a091c | ||
![]() |
5457bde8d0 | ||
![]() |
2e325d9506 | ||
![]() |
0264a7bf58 | ||
![]() |
32fe930b88 | ||
![]() |
72883ffb73 | ||
![]() |
f2c24dd8c3 | ||
![]() |
8904139c6d | ||
![]() |
571f46886f | ||
![]() |
0cd691e167 | ||
![]() |
4f65e2d468 | ||
![]() |
35981f6ef5 | ||
![]() |
dc493880f3 | ||
![]() |
872e78ca21 | ||
![]() |
7b601796d7 | ||
![]() |
09ef552aea | ||
![]() |
b4c9cae0d1 | ||
![]() |
6d2a0ae83b | ||
![]() |
238a925000 | ||
![]() |
cce01cfb8e | ||
![]() |
b2db1972f3 | ||
![]() |
8b851fe2b9 | ||
![]() |
e3c9488fb0 | ||
![]() |
c27fb110f8 | ||
![]() |
ec61f24099 | ||
![]() |
130ee5a71e | ||
![]() |
cb3e7e6bd6 | ||
![]() |
7fd65d5428 | ||
![]() |
442f521bf5 | ||
![]() |
016052aea1 | ||
![]() |
411982e2b0 | ||
![]() |
4b93ccd4e4 | ||
![]() |
6603a8947a | ||
![]() |
031e354577 | ||
![]() |
ec7fb331e0 | ||
![]() |
a232b77104 | ||
![]() |
8c11245469 | ||
![]() |
60857d3b8e | ||
![]() |
2fe6b76968 | ||
![]() |
6c7350fce0 | ||
![]() |
c770f4d0bc | ||
![]() |
876e96911f | ||
![]() |
5620fd120e | ||
![]() |
ea7f6046b4 | ||
![]() |
fddac5d679 | ||
![]() |
2c4bc68af1 | ||
![]() |
7676f49612 | ||
![]() |
e879279019 | ||
![]() |
84b7680718 | ||
![]() |
be180140a3 | ||
![]() |
c051c279d4 | ||
![]() |
964dcc4d8a | ||
![]() |
64cf93b889 | ||
![]() |
365737afe1 | ||
![]() |
2cf14f0120 | ||
![]() |
46bb25ba9f | ||
![]() |
ee5a72c570 | ||
![]() |
18b56f4d0a | ||
![]() |
f626276218 | ||
![]() |
e28554f85c | ||
![]() |
a0a3447b2e | ||
![]() |
4049ca7308 | ||
![]() |
c28151ba92 | ||
![]() |
81e1a050a2 | ||
![]() |
34d5824c4a | ||
![]() |
bb875df400 | ||
![]() |
61f47d366a | ||
![]() |
8347eb157d | ||
![]() |
dd22c9b138 | ||
![]() |
7f6ad55042 | ||
![]() |
55b06ab9ba | ||
![]() |
21f0a5eb76 | ||
![]() |
16ed11623f | ||
![]() |
c184cf8d7d | ||
![]() |
6a90214eb2 | ||
![]() |
226ec0610a | ||
![]() |
694bd7cb95 | ||
![]() |
9e807e7151 | ||
![]() |
78fe7fcf9d | ||
![]() |
c2465f931e | ||
![]() |
8d50325961 | ||
![]() |
570a651a59 | ||
![]() |
0eaa2aeef2 | ||
![]() |
2c7e309493 | ||
![]() |
ded3cf5798 | ||
![]() |
4edac3e974 | ||
![]() |
53885fb5e4 | ||
![]() |
3942c095f6 | ||
![]() |
94be3b930d | ||
![]() |
09bc14cc57 | ||
![]() |
51b93b4284 | ||
![]() |
9c50ea14cb | ||
![]() |
42a74ea78e | ||
![]() |
1ac68a9192 | ||
![]() |
29b5d460ea | ||
![]() |
a441bca4de | ||
![]() |
e2da3f2ebd | ||
![]() |
f235d412f8 | ||
![]() |
60b103b062 | ||
![]() |
0fdb23098b | ||
![]() |
51c296ac69 | ||
![]() |
a120842ba2 | ||
![]() |
8911de9349 | ||
![]() |
013a1b8403 | ||
![]() |
1492a24391 | ||
![]() |
bf1559320b | ||
![]() |
d5648a67ae | ||
![]() |
a6ec82682d | ||
![]() |
bd359ad498 | ||
![]() |
458f48b290 | ||
![]() |
a0ae21148a | ||
![]() |
5dc9b5c2dd | ||
![]() |
48175bbb85 | ||
![]() |
3b03bb286e | ||
![]() |
23fdf3a0bc | ||
![]() |
4cf7618c52 | ||
![]() |
6fd9413dae | ||
![]() |
120d073a04 | ||
![]() |
8fa2adb6fc | ||
![]() |
70105d5834 | ||
![]() |
05961faf42 | ||
![]() |
386706f05b | ||
![]() |
1813e96a42 | ||
![]() |
eaf6e47391 | ||
![]() |
8ba82064cd | ||
![]() |
5d5a0de694 | ||
![]() |
145180c2a1 | ||
![]() |
50881b9972 | ||
![]() |
a115932bc1 | ||
![]() |
c7fd0fbe45 | ||
![]() |
d513d002cc | ||
![]() |
a570bd5e2c | ||
![]() |
bdacfd540c | ||
![]() |
c89b9edf27 | ||
![]() |
0fdf788624 | ||
![]() |
f0ae30070b | ||
![]() |
8fb8f4b467 | ||
![]() |
c3a2e50191 | ||
![]() |
b045b5ebf7 | ||
![]() |
6436152c75 | ||
![]() |
9c3ae53330 | ||
![]() |
acd5fcfb00 | ||
![]() |
9a6f8ab402 | ||
![]() |
0f854014af | ||
![]() |
a11175afba | ||
![]() |
c5776c3bf1 | ||
![]() |
19d566253f | ||
![]() |
0d59d6a03e | ||
![]() |
c7b2ee367f | ||
![]() |
510ec029ea | ||
![]() |
1f2daed9d6 | ||
![]() |
08b854ce74 | ||
![]() |
6b34803c59 | ||
![]() |
fca224b9d0 | ||
![]() |
4f5009351f | ||
![]() |
c1f77d45ab | ||
![]() |
60f0447603 | ||
![]() |
6ae208a661 | ||
![]() |
781c8034a5 | ||
![]() |
4cf8359257 | ||
![]() |
3ed4de3043 | ||
![]() |
a374b99ba2 | ||
![]() |
601734a59b | ||
![]() |
69cc97c3dd | ||
![]() |
226f74a866 | ||
![]() |
cf35392cd2 | ||
![]() |
27319e9e64 | ||
![]() |
69b8544e26 | ||
![]() |
41e5dc8911 | ||
![]() |
ba1ffa4e54 | ||
![]() |
4edc073373 | ||
![]() |
1f00d2e5d7 | ||
![]() |
d87e42ba00 | ||
![]() |
975b1d5257 | ||
![]() |
5f84363afb | ||
![]() |
545c526e2f | ||
![]() |
06fcc57619 | ||
![]() |
06c6a444c9 | ||
![]() |
8474d0d199 | ||
![]() |
0f4610c127 | ||
![]() |
d753988729 | ||
![]() |
a6b948077a | ||
![]() |
3276cc4987 | ||
![]() |
71557fe784 | ||
![]() |
29fc5bc80d | ||
![]() |
db07551e4c | ||
![]() |
8f6eb795e3 | ||
![]() |
0a37799e6e | ||
![]() |
76d6d9a4f9 | ||
![]() |
0c8abd0abb | ||
![]() |
ddc8420810 | ||
![]() |
a4ff039abc | ||
![]() |
c8be062e19 | ||
![]() |
29443a2c10 | ||
![]() |
e402556e91 | ||
![]() |
4ed4ebcdb7 | ||
![]() |
a280467270 | ||
![]() |
9b1090332b | ||
![]() |
18a520c9f9 | ||
![]() |
af871ef8af | ||
![]() |
3af7eb8e03 | ||
![]() |
3439300cda | ||
![]() |
a8027565c9 | ||
![]() |
3d4e1a8127 | ||
![]() |
7b6a1a1955 | ||
![]() |
3f8dc60680 | ||
![]() |
9be449dd7f | ||
![]() |
c46f2ba097 | ||
![]() |
c2c441ed08 | ||
![]() |
c1e52fa1cd | ||
![]() |
fbed5dc606 | ||
![]() |
97978068c6 | ||
![]() |
006e34880a | ||
![]() |
1fd5c5d8b5 | ||
![]() |
68ac9fda2d | ||
![]() |
c5d807ef65 | ||
![]() |
e17f10ae6b | ||
![]() |
78c5d1c12f | ||
![]() |
26fb54299b | ||
![]() |
8ad82fc748 | ||
![]() |
6e5aab7e98 | ||
![]() |
fd39efd846 | ||
![]() |
86dba7bd21 | ||
![]() |
ac3b01e02e | ||
![]() |
c267036427 | ||
![]() |
0a0c8f307b | ||
![]() |
e804e6e91a | ||
![]() |
67e90d8d2a | ||
![]() |
88abe2baff | ||
![]() |
23748547a2 | ||
![]() |
0b68c2356c | ||
![]() |
0aaf4d1050 | ||
![]() |
ce535c9492 | ||
![]() |
3e6d76245c | ||
![]() |
18f3517efa | ||
![]() |
09e85900d7 | ||
![]() |
6e09028682 | ||
![]() |
59427ed6af | ||
![]() |
340288f308 | ||
![]() |
b76428420e | ||
![]() |
22d9427e20 | ||
![]() |
2e3cce6755 | ||
![]() |
3f9b568808 | ||
![]() |
a74bac20c4 | ||
![]() |
ee6b968f2f | ||
![]() |
00fae05507 | ||
![]() |
9718b7d9ba | ||
![]() |
bf0319f7b2 | ||
![]() |
5b232528cc | ||
![]() |
1f17a7836d | ||
![]() |
e183c12bed | ||
![]() |
3901f1555d | ||
![]() |
84f6a82d98 | ||
![]() |
100cff1738 | ||
![]() |
d12ab5c048 | ||
![]() |
055ad080a1 | ||
![]() |
c771703c34 | ||
![]() |
cf1c934083 | ||
![]() |
c40bab0555 | ||
![]() |
fadb208299 | ||
![]() |
a6d2f5186f | ||
![]() |
80f7e7868d | ||
![]() |
40bdeb6c2d | ||
![]() |
e0be09dd81 | ||
![]() |
45dbfe80a1 | ||
![]() |
db45c11d84 | ||
![]() |
80a9896a4e | ||
![]() |
9fefdc0fbb | ||
![]() |
a16d0f8d28 | ||
![]() |
472fff06dc | ||
![]() |
91ffbfcf68 | ||
![]() |
5cf976bbb2 | ||
![]() |
e6b7a429ea | ||
![]() |
12072e2b69 | ||
![]() |
4cecb585bc | ||
![]() |
66ce5c2557 | ||
![]() |
f7f23d2ae9 | ||
![]() |
e204562f4d | ||
![]() |
c38987fc03 | ||
![]() |
501ab07024 | ||
![]() |
d0ebe08bf5 | ||
![]() |
4fcd107ff3 | ||
![]() |
25feee2366 | ||
![]() |
a39ce57094 | ||
![]() |
f7150edd44 | ||
![]() |
be78188691 | ||
![]() |
c75725e2d8 | ||
![]() |
9b6122c328 | ||
![]() |
99ba8a6a53 | ||
![]() |
3a29d70dd5 | ||
![]() |
2a2c947602 | ||
![]() |
cd3dc3d645 | ||
![]() |
f74c68e121 | ||
![]() |
bfd30dcabc | ||
![]() |
5d3ba06e9d | ||
![]() |
e275c3ba52 | ||
![]() |
3335a111e1 | ||
![]() |
f7c8a499d5 | ||
![]() |
ad7ad8f596 | ||
![]() |
ef5b3b90c3 | ||
![]() |
787b824d90 | ||
![]() |
7e6dfa759c | ||
![]() |
c6a6f85a5e | ||
![]() |
421b45c553 | ||
![]() |
0507876080 | ||
![]() |
52db762677 | ||
![]() |
94037cd017 | ||
![]() |
a16de62103 | ||
![]() |
df8def02f5 | ||
![]() |
d60f2fc7df | ||
![]() |
cc9ffc4767 | ||
![]() |
f6a620cf6e | ||
![]() |
a7cf8cea3f | ||
![]() |
4cec06e67c | ||
![]() |
41c953de46 | ||
![]() |
986bb1a8ac | ||
![]() |
a7ff38d389 | ||
![]() |
f530bb7537 | ||
![]() |
b5adbaef78 | ||
![]() |
4a271d358f | ||
![]() |
d9e51c220e | ||
![]() |
d413c2061c | ||
![]() |
9646794bb1 | ||
![]() |
d40495a4be | ||
![]() |
b63a68c9db | ||
![]() |
1ba1f90058 | ||
![]() |
8d025949d9 | ||
![]() |
4291a08d47 | ||
![]() |
3eac05b229 | ||
![]() |
e39f8fafb1 | ||
![]() |
50b9438fb6 | ||
![]() |
357dfca3e0 | ||
![]() |
8f8218c515 | ||
![]() |
10e3009c46 | ||
![]() |
cc5a737836 | ||
![]() |
19ad58c394 | ||
![]() |
8a905bed5d | ||
![]() |
f781cc18a6 | ||
![]() |
db174614f2 | ||
![]() |
b9a061680d | ||
![]() |
63df3090d5 | ||
![]() |
ff8ff72eab | ||
![]() |
8b547644b0 | ||
![]() |
8605c4d4d3 | ||
![]() |
e95fce3084 | ||
![]() |
cf91685f6f | ||
![]() |
e3e3f9a745 | ||
![]() |
6a1497de92 | ||
![]() |
fc65ba4ced | ||
![]() |
73fb0a6309 | ||
![]() |
2a411987db | ||
![]() |
79617949c1 | ||
![]() |
c3921ce2fe | ||
![]() |
228f51fff9 | ||
![]() |
08ee439a47 | ||
![]() |
1a67282dd3 | ||
![]() |
d2f1216987 | ||
![]() |
b519700e33 | ||
![]() |
12d9898b5d | ||
![]() |
ef39fb0709 | ||
![]() |
f068f63f0d | ||
![]() |
57ca831d4d | ||
![]() |
093c5d84d2 | ||
![]() |
e922275c72 | ||
![]() |
52ff53b0b0 | ||
![]() |
65d3ca8c3f | ||
![]() |
a16c264aa3 | ||
![]() |
4642a35de7 | ||
![]() |
50822a7476 | ||
![]() |
f108e67dcc | ||
![]() |
fb22940639 | ||
![]() |
9c7bb08a03 | ||
![]() |
b4680e82b7 | ||
![]() |
cbf683878a | ||
![]() |
fd5d3d0a48 | ||
![]() |
5cb022c7b1 | ||
![]() |
145950e766 | ||
![]() |
8bde7d45b8 | ||
![]() |
e0935fe14f | ||
![]() |
c27aa7723e | ||
![]() |
87b26a8dcc | ||
![]() |
0b2b07e98e | ||
![]() |
581d544f61 | ||
![]() |
aa5fbd461f | ||
![]() |
5394b77086 | ||
![]() |
7028c2712a | ||
![]() |
89be63da02 | ||
![]() |
4f504f597d | ||
![]() |
a9e9a9c835 | ||
![]() |
4ae2f6c33b | ||
![]() |
76d93c23b7 | ||
![]() |
9d051ea523 | ||
![]() |
ff279681ac | ||
![]() |
5cc5552d9b | ||
![]() |
42c74f9553 | ||
![]() |
420fa82e8d | ||
![]() |
70f2086202 | ||
![]() |
ee21562426 | ||
![]() |
b6c707c080 | ||
![]() |
2eaeead67c | ||
![]() |
7c7da44622 | ||
![]() |
7c6da30705 | ||
![]() |
2955bb5488 | ||
![]() |
b78ccf289e | ||
![]() |
b9b7786477 | ||
![]() |
c3592304b6 | ||
![]() |
2442411a5e | ||
![]() |
f5c0cddea5 | ||
![]() |
51e0e485f4 | ||
![]() |
3889b4c101 | ||
![]() |
247ba02bb8 | ||
![]() |
25c6d8bf6b | ||
![]() |
cf72318d74 | ||
![]() |
a8c05ca02e | ||
![]() |
1c8abd5c3b | ||
![]() |
6ebe3897fb | ||
![]() |
9faa44eabf | ||
![]() |
f81ffdb78e | ||
![]() |
2997c0fd1e | ||
![]() |
193d273f00 | ||
![]() |
e54cd8499e | ||
![]() |
c984902fbf | ||
![]() |
45cbf4bf25 | ||
![]() |
2204f27de1 | ||
![]() |
735b1cc6b9 | ||
![]() |
a0da4a844c | ||
![]() |
45ef98b077 | ||
![]() |
ef7de49ec8 | ||
![]() |
e937344761 | ||
![]() |
f3c3912923 | ||
![]() |
e728710430 | ||
![]() |
ddd6533812 | ||
![]() |
0d74131edd | ||
![]() |
cf3a87ed55 | ||
![]() |
632cba8b30 | ||
![]() |
0afa4d260c | ||
![]() |
3f2303a479 | ||
![]() |
7bfa847d01 | ||
![]() |
331219dda8 | ||
![]() |
b2df917011 | ||
![]() |
b727ce3b29 | ||
![]() |
0e1eaa518b | ||
![]() |
f893131b8d | ||
![]() |
2ec1d9e39e | ||
![]() |
bd2f9e436c | ||
![]() |
ea38e4da4d | ||
![]() |
4d66a0929c | ||
![]() |
0520f01510 | ||
![]() |
deaf322740 | ||
![]() |
929cd30e33 | ||
![]() |
eef2a0a200 | ||
![]() |
fbb47ce08f | ||
![]() |
f746760ccf | ||
![]() |
67c0f47928 | ||
![]() |
7c00e80f7a | ||
![]() |
3a9cf70228 | ||
![]() |
0f35bac605 | ||
![]() |
1b24feb4f4 | ||
![]() |
ee8a492954 | ||
![]() |
e3cb9de365 | ||
![]() |
a217988dbb | ||
![]() |
81c6de48dc | ||
![]() |
1217d8d021 | ||
![]() |
3362766cb5 | ||
![]() |
34da3e653d | ||
![]() |
ddb5c0052d | ||
![]() |
a8f0acecb7 | ||
![]() |
8f1f57afe4 | ||
![]() |
0209a9f41d | ||
![]() |
bf3a6d1c20 | ||
![]() |
256793aad7 | ||
![]() |
a56c21551d | ||
![]() |
fce3a2d5c0 | ||
![]() |
675298bc73 | ||
![]() |
6985b553af | ||
![]() |
885eb64df3 | ||
![]() |
2ce9aa20a5 | ||
![]() |
be34f29b05 | ||
![]() |
077e94342f | ||
![]() |
09d7d9a360 | ||
![]() |
438ee23d2c | ||
![]() |
4f2d74f793 | ||
![]() |
0e62a52e59 | ||
![]() |
369561f8f7 | ||
![]() |
69812bbf18 | ||
![]() |
e33570625f | ||
![]() |
2132704e1d | ||
![]() |
38a6f4cc34 | ||
![]() |
626a3b10d3 | ||
![]() |
c7fa778732 | ||
![]() |
e72cc4eaf9 | ||
![]() |
c48407e038 | ||
![]() |
7c7bb14a93 | ||
![]() |
f9dc76928c | ||
![]() |
5b7ea0e611 | ||
![]() |
5437674fdf | ||
![]() |
21f18d015d | ||
![]() |
47d9c12f4b | ||
![]() |
f6bbd9377f | ||
![]() |
3baec1c327 | ||
![]() |
bd657fe9ae | ||
![]() |
64ebc5cfd6 | ||
![]() |
84922dcdcf | ||
![]() |
79976fbfce | ||
![]() |
c702a7e426 | ||
![]() |
336519b7b5 | ||
![]() |
dfb2f8b3b3 | ||
![]() |
8b99e29dc0 | ||
![]() |
d6af4683bb | ||
![]() |
32c813eece | ||
![]() |
03f86a71de | ||
![]() |
2db942e606 | ||
![]() |
6668018b45 | ||
![]() |
f21cafb605 | ||
![]() |
3864a7fdc6 | ||
![]() |
ff8f37b262 | ||
![]() |
783f17ec4d | ||
![]() |
46a0eb4aa4 | ||
![]() |
2de5390c08 | ||
![]() |
bfaa0789f0 | ||
![]() |
eb73e7c1d4 | ||
![]() |
63ed69789b | ||
![]() |
983c19eb29 | ||
![]() |
cef3c9a34d | ||
![]() |
030dd9eed8 | ||
![]() |
6721363f8c | ||
![]() |
8bb2e98b90 | ||
![]() |
58b600198f | ||
![]() |
5281593bb6 | ||
![]() |
0b20794672 | ||
![]() |
8dd7014af6 | ||
![]() |
7b736b6ae3 | ||
![]() |
d475ab3881 | ||
![]() |
b26724d12b | ||
![]() |
3d71ea5bc0 | ||
![]() |
1f4d01e512 | ||
![]() |
9dbb2720b0 | ||
![]() |
808f07250e | ||
![]() |
ed45ff89f8 | ||
![]() |
d59440f99e | ||
![]() |
b80ced2b3a | ||
![]() |
8873900df3 | ||
![]() |
4d6bde9731 | ||
![]() |
fb1772f019 | ||
![]() |
cc503b36e8 | ||
![]() |
0fe99fe10f | ||
![]() |
e2aa8056af | ||
![]() |
10bba1a632 | ||
![]() |
5e400d3117 | ||
![]() |
39e0c560cf | ||
![]() |
bf13238ccf | ||
![]() |
5b56717501 | ||
![]() |
de84bb9824 | ||
![]() |
496f843016 | ||
![]() |
c1e2ddc843 | ||
![]() |
ac74f14408 | ||
![]() |
3a44b94cc7 | ||
![]() |
948b2c0410 | ||
![]() |
d4151c1832 | ||
![]() |
365d039209 | ||
![]() |
40c9727cb9 | ||
![]() |
e6946042ae | ||
![]() |
8e03f01518 | ||
![]() |
6413537f45 | ||
![]() |
e20a24ab2e | ||
![]() |
47c31c8b03 | ||
![]() |
f0d32e2cde | ||
![]() |
62b803e268 | ||
![]() |
9ea56ea5d4 | ||
![]() |
7474c05209 | ||
![]() |
647140c7c7 | ||
![]() |
46c54e51ee | ||
![]() |
9eee92b5c6 | ||
![]() |
ac2c8a3d30 | ||
![]() |
ee44fd54b6 | ||
![]() |
0ed8ea9599 | ||
![]() |
d9ef7c1b32 | ||
![]() |
357334fb46 | ||
![]() |
d0b54b0797 | ||
![]() |
768e87b0da | ||
![]() |
14187978c0 | ||
![]() |
cac91737ac | ||
![]() |
0b18e7bd60 | ||
![]() |
61705fdd42 | ||
![]() |
6dd3795b7a | ||
![]() |
2e0c3f8751 | ||
![]() |
e1e8471728 | ||
![]() |
3c66997427 | ||
![]() |
5ec2af7b5a | ||
![]() |
d3b23e4b81 | ||
![]() |
d76a84048b | ||
![]() |
f21fbff1a8 | ||
![]() |
c17a56cb8b | ||
![]() |
b23608ec35 | ||
![]() |
a8df699441 | ||
![]() |
1b430abb16 | ||
![]() |
e4062e0f35 | ||
![]() |
e6f2926ccd | ||
![]() |
263d45ca9d | ||
![]() |
8e4b9f30bb | ||
![]() |
f12b300298 | ||
![]() |
2db4a661ee | ||
![]() |
3c6ee3d57f | ||
![]() |
e2a1211513 | ||
![]() |
436b3a472a | ||
![]() |
f177ecd50c | ||
![]() |
e675625d0d | ||
![]() |
326a74425f | ||
![]() |
a217d97fda | ||
![]() |
6959084f98 | ||
![]() |
216bf9b477 | ||
![]() |
3efb311076 | ||
![]() |
3ac9b2525e | ||
![]() |
831b47b8f9 | ||
![]() |
ff10eafcbc | ||
![]() |
38c0dbfc95 | ||
![]() |
e739e81205 | ||
![]() |
1bcfae5265 | ||
![]() |
b249b461d7 | ||
![]() |
af79ba433c | ||
![]() |
14013c80c0 | ||
![]() |
85a7c7303d | ||
![]() |
f94214ae14 | ||
![]() |
ca4fbe40dd | ||
![]() |
91818417be | ||
![]() |
577ace4971 | ||
![]() |
776d91f663 | ||
![]() |
b9ed94a098 | ||
![]() |
800630a813 | ||
![]() |
4854a1b2ee | ||
![]() |
bcfb8f1f53 | ||
![]() |
2afa282190 | ||
![]() |
2b2ffca7d0 | ||
![]() |
650e7018a7 | ||
![]() |
1e0ac5c5f1 | ||
![]() |
b9c087f46c | ||
![]() |
9d5cfbcda9 | ||
![]() |
ffe6292237 | ||
![]() |
9d97c05889 | ||
![]() |
2658b39434 | ||
![]() |
f6cf07a147 | ||
![]() |
4752fa5301 | ||
![]() |
f40d3d1fc6 | ||
![]() |
d7ffabe7ca | ||
![]() |
b318f54fdf | ||
![]() |
661ddd75b6 | ||
![]() |
bc97208516 | ||
![]() |
64c8f61bb1 | ||
![]() |
7699b7ce6f | ||
![]() |
347832d852 | ||
![]() |
50b3a24371 | ||
![]() |
4d5512dcca | ||
![]() |
2e6c890883 | ||
![]() |
f94d733c62 | ||
![]() |
9032808112 | ||
![]() |
a22137e06e | ||
![]() |
973518694e | ||
![]() |
d6caf1c839 | ||
![]() |
6f7dca1f83 | ||
![]() |
dbbf1a8fce | ||
![]() |
27e18f0eb8 | ||
![]() |
bbc667cb78 | ||
![]() |
74d757f0f1 | ||
![]() |
a224650281 | ||
![]() |
54abcfcd93 | ||
![]() |
627d74233b | ||
![]() |
b29f6916cb | ||
![]() |
7041a96fda | ||
![]() |
6bc42cfd1a | ||
![]() |
bd8b8a8c8f | ||
![]() |
cf1a62cec3 | ||
![]() |
fd6fcffa67 | ||
![]() |
75fecf9645 | ||
![]() |
04f3f9d29d | ||
![]() |
fb7ba92f69 | ||
![]() |
c259666e43 | ||
![]() |
6609d3e89f | ||
![]() |
f4c44ce128 | ||
![]() |
a8276dd70f | ||
![]() |
0c23d22472 | ||
![]() |
e34cc79dad | ||
![]() |
de712c6ba9 | ||
![]() |
1396c63525 | ||
![]() |
8cc9c64ff8 | ||
![]() |
64665146e1 | ||
![]() |
cdec6c9027 | ||
![]() |
0172ab1f50 | ||
![]() |
d76c4554e2 | ||
![]() |
3d09f579d0 | ||
![]() |
e95a017e33 | ||
![]() |
2c91157926 | ||
![]() |
d2697cd124 | ||
![]() |
061fbeff56 | ||
![]() |
77b3a0c4cd | ||
![]() |
8340abbe63 | ||
![]() |
3f8e76ce93 | ||
![]() |
a2c48646ae | ||
![]() |
78f5b960a0 | ||
![]() |
f6236d13d1 | ||
![]() |
6b56a8accf | ||
![]() |
9febd608c6 | ||
![]() |
e4282c10c7 | ||
![]() |
575578428c | ||
![]() |
6e1bfdef4c | ||
![]() |
36da49667a | ||
![]() |
ade1936f9c | ||
![]() |
580642b08e | ||
![]() |
b4a855f4c1 | ||
![]() |
32a712f005 | ||
![]() |
ea2b2937b9 | ||
![]() |
a86961a22e | ||
![]() |
2299580dc9 | ||
![]() |
77786bb8bb | ||
![]() |
9ee67364c2 | ||
![]() |
4a76526417 | ||
![]() |
f89c44e1a0 | ||
![]() |
8ac83cfd42 | ||
![]() |
f5b0008158 | ||
![]() |
1be26cf2bd | ||
![]() |
e01a61d816 | ||
![]() |
25e04ee2f3 | ||
![]() |
4d848e99f0 | ||
![]() |
157b1eadfa | ||
![]() |
5798fb959d | ||
![]() |
35e04a795d | ||
![]() |
e22f7570fe | ||
![]() |
93bbda851a | ||
![]() |
2c34aa4ea2 | ||
![]() |
4f5ce16dcb | ||
![]() |
df2068d734 | ||
![]() |
033817f70b | ||
![]() |
9c28977001 | ||
![]() |
a55a27508a | ||
![]() |
031d14e320 | ||
![]() |
817b595222 | ||
![]() |
56df8c2dd0 | ||
![]() |
3715e8d2c8 | ||
![]() |
ad2a18b3bc | ||
![]() |
3eb61cfe83 | ||
![]() |
1222dab6f8 | ||
![]() |
8897001567 | ||
![]() |
930161a0dd | ||
![]() |
3aa0a845cd | ||
![]() |
cc8419d344 | ||
![]() |
f3dd93a42c | ||
![]() |
13da85e859 | ||
![]() |
cd5f904b53 | ||
![]() |
274cde0396 | ||
![]() |
3d40834c57 | ||
![]() |
920aefddde | ||
![]() |
7dafb384e9 | ||
![]() |
2fc1487603 | ||
![]() |
d6d0f422f5 | ||
![]() |
bef8106d0f | ||
![]() |
e502ce38ec | ||
![]() |
7d73bddfd2 | ||
![]() |
86a0eaf317 | ||
![]() |
5f288d228d | ||
![]() |
191cdc2849 | ||
![]() |
427688cb34 | ||
![]() |
d16d1fdb3a | ||
![]() |
832272bf3a | ||
![]() |
d87cea1fb7 | ||
![]() |
dabbc49c20 | ||
![]() |
9daf9e612b | ||
![]() |
46e2e5342b | ||
![]() |
c682d87a65 | ||
![]() |
101b0ee58e | ||
![]() |
60c0939e05 | ||
![]() |
d32bb52390 | ||
![]() |
4b5e7e6168 | ||
![]() |
3eeed813d6 | ||
![]() |
f1bce0b8e0 | ||
![]() |
98dfb6302d | ||
![]() |
d87a9bf7ec | ||
![]() |
2b7c47c789 | ||
![]() |
bafb189244 | ||
![]() |
ab91fb87ea | ||
![]() |
2ad10ea47e | ||
![]() |
fc28f261cf | ||
![]() |
a84518d69f | ||
![]() |
17cba898e9 | ||
![]() |
736f20538d | ||
![]() |
6cee7483ba | ||
![]() |
50a5e830ac | ||
![]() |
81b3517166 | ||
![]() |
14b5d15268 | ||
![]() |
e75de01809 | ||
![]() |
a29f2dcfaa | ||
![]() |
2b2bc11d7d | ||
![]() |
7129ad47f4 | ||
![]() |
dcdb319653 | ||
![]() |
c5ce99ebec | ||
![]() |
e46c238f15 | ||
![]() |
23ec562375 | ||
![]() |
2c1d76c87f | ||
![]() |
d222dece92 | ||
![]() |
8b06f72a94 | ||
![]() |
2e05777dc5 | ||
![]() |
dd71355e8a | ||
![]() |
c92eb1b17d | ||
![]() |
a90ec4cce7 | ||
![]() |
f1c2eae264 | ||
![]() |
28fcbe9bc5 | ||
![]() |
b18138bad0 | ||
![]() |
0ef728d385 | ||
![]() |
bd6afc2d86 | ||
![]() |
de3c84bd0b | ||
![]() |
e788445fe2 | ||
![]() |
88237fbd1e | ||
![]() |
6fba6796b8 | ||
![]() |
2a2cb313cf | ||
![]() |
30f21259f8 | ||
![]() |
be62c34e46 | ||
![]() |
e2ac4ebf9d | ||
![]() |
b67a10c4a1 | ||
![]() |
fc52248bf7 | ||
![]() |
4725022f7e | ||
![]() |
a3574d3e28 | ||
![]() |
04300c11c3 | ||
![]() |
1d6263385b | ||
![]() |
62776df9e1 | ||
![]() |
72c5bce6a4 | ||
![]() |
41fa59f164 | ||
![]() |
307ae459f2 | ||
![]() |
027a08c92e | ||
![]() |
1037d7f335 | ||
![]() |
3e6706a371 | ||
![]() |
48c1bd58dd | ||
![]() |
cf89d892c6 | ||
![]() |
d206b00a88 |
52
.appveyor.yml
Normal file
52
.appveyor.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
version: '{branch}-{build}'
|
||||
|
||||
# Do not build on tags (GitHub only)
|
||||
skip_tags: true
|
||||
|
||||
os: Visual Studio 2015
|
||||
|
||||
environment:
|
||||
REPO_DIR: &REPO_DIR c:\qbittorrent
|
||||
CACHE_DIR: &CACHE_DIR c:\qbt_cache
|
||||
|
||||
QBT_VER_URL: https://builds.shiki.hu/appveyor/version
|
||||
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries.7z
|
||||
|
||||
# project directory
|
||||
clone_folder: *REPO_DIR
|
||||
|
||||
# cache size should < 100MB (after compressing with fastest option):
|
||||
# see: https://www.appveyor.com/docs/build-cache#save-update-cache-before-build-finishes
|
||||
cache:
|
||||
- *CACHE_DIR
|
||||
|
||||
install:
|
||||
# check if library needs update
|
||||
- appveyor DownloadFile "%QBT_VER_URL%" -FileName "c:\version_new" && SET /P newVersion=<"c:\version_new"
|
||||
- IF EXIST "%CACHE_DIR%\version" (SET /P oldVersion=<"%CACHE_DIR%\version")
|
||||
- IF NOT EXIST "%CACHE_DIR%\version" (SET updateCache=1)
|
||||
- IF NOT "%oldVersion%" == "%newVersion%" (SET updateCache=1)
|
||||
# update library
|
||||
- IF "%updateCache%" == "1" (ECHO "--- Will redownload libraries ---" &&
|
||||
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" &&
|
||||
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
|
||||
COPY "c:\version_new" "%CACHE_DIR%\version")
|
||||
# Qt stay compressed in cache
|
||||
- 7z x "%CACHE_DIR%\qt5_32.7z" -o"c:\qbt" > nul
|
||||
|
||||
before_build:
|
||||
# setup env
|
||||
- CALL "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
|
||||
- SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom;
|
||||
# setup project
|
||||
- COPY /Y "%CACHE_DIR%\winconf.pri" "%REPO_DIR%"
|
||||
- COPY /Y "%CACHE_DIR%\winconf-msvc.pri" "%REPO_DIR%"
|
||||
# workarounds
|
||||
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
|
||||
|
||||
build_script:
|
||||
- cd "%REPO_DIR%"
|
||||
- qmake qbittorrent.pro && cd src && qmake src.pro
|
||||
- jom -j2 -f Makefile.Release
|
||||
|
||||
test: off
|
9
.gitignore
vendored
9
.gitignore
vendored
@@ -2,13 +2,19 @@ src/gui/geoip/GeoIP.dat
|
||||
src/gui/geoip/GeoIP.dat.gz
|
||||
src/qbittorrent
|
||||
src/qbittorrent-nox
|
||||
src/release
|
||||
src/debug
|
||||
qbittorrent.pro.user*
|
||||
conf.pri
|
||||
Makefile
|
||||
Makefile*
|
||||
*.pyc
|
||||
*.log
|
||||
|
||||
# Compiled object files
|
||||
*.o
|
||||
*.pdb
|
||||
*.exe
|
||||
|
||||
# Generated MOC, resource and UI files
|
||||
moc_*.cpp
|
||||
qrc_*.cpp
|
||||
@@ -19,6 +25,7 @@ src/lang/qbittorrent_*.qm
|
||||
.qmake.stash
|
||||
src/qbittorrent.app
|
||||
*.dmg
|
||||
|
||||
#Autotools junk
|
||||
aclocal.m4
|
||||
autom4te.cache/*
|
||||
|
186
.travis.yml
186
.travis.yml
@@ -1,16 +1,22 @@
|
||||
language:
|
||||
- cpp
|
||||
language: cpp
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
osx_image: xcode7.3
|
||||
|
||||
env:
|
||||
# use libtorrent 0.15.10
|
||||
# uncomment when Travis doesn't use Ubuntu 12.04 LTS, which has libtorrent 0.15.10 as package
|
||||
#- lt_source=from_dist gui=true
|
||||
#- lt_source=from_dist gui=false
|
||||
# use libtorrent 0.16.X from RC_0_16 svn branch
|
||||
- lt_source=from_svnRC_0_16 gui=true
|
||||
- lt_source=from_svnRC_0_16 gui=false
|
||||
- lt_source=from_svnRC_1_0 gui=true
|
||||
- lt_source=from_svnRC_1_0 gui=false
|
||||
matrix:
|
||||
# Uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package
|
||||
#- lt_branch=dist gui=true
|
||||
#- lt_branch=dist gui=false
|
||||
- lt_branch=RC_1_0 qt=5 gui=true
|
||||
- lt_branch=RC_1_0 qt=5 gui=false
|
||||
- lt_branch=RC_1_0 qt=4 gui=true
|
||||
- lt_branch=RC_1_0 qt=4 gui=false
|
||||
global:
|
||||
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
|
||||
- coverity_branch: coverity_scan
|
||||
|
||||
branches:
|
||||
except:
|
||||
@@ -20,41 +26,147 @@ branches:
|
||||
notifications:
|
||||
email:
|
||||
on_success: change
|
||||
on_failure: change
|
||||
on_failure: change
|
||||
|
||||
# container-based builds
|
||||
#sudo: false
|
||||
cache:
|
||||
ccache: true
|
||||
directories:
|
||||
- $HOME/hombebrew_cache
|
||||
|
||||
# opt-in Ubuntu Trusty
|
||||
sudo: required
|
||||
dist: trusty
|
||||
|
||||
addons:
|
||||
coverity_scan:
|
||||
project:
|
||||
name: "qbittorrent/qBittorrent"
|
||||
description: "Build submitted via Travis CI"
|
||||
build_command_prepend: "./bootstrap.sh && ./configure $qbtconf"
|
||||
build_command: make
|
||||
branch_pattern: $coverity_branch
|
||||
notification_email: sledgehammer999@qbittorrent.org
|
||||
apt:
|
||||
#sources:
|
||||
# sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
||||
#- ubuntu-toolchain-r-test
|
||||
#- boost-latest
|
||||
packages:
|
||||
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
|
||||
- autoconf
|
||||
- automake
|
||||
- colormake
|
||||
- libssl-dev
|
||||
- libboost-dev
|
||||
- libboost-system-dev
|
||||
# uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package
|
||||
#- libtorrent-rasterbar6
|
||||
|
||||
before_install:
|
||||
# only allow specific build for coverity scan, others will stop
|
||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true ]; then exit ; fi
|
||||
|
||||
- shopt -s expand_aliases
|
||||
- alias sudo="sudo "
|
||||
# Using nprocs/2 sometimes may fail (gcc is killed by system), just use two threads
|
||||
- alias make="colormake -j2 "
|
||||
- alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system)
|
||||
#- libt_path="$HOME/libt_install"
|
||||
#- ltconf="$ltconf --prefix="$libt_path" --disable-geoip"
|
||||
- qbt_path="$HOME/qbt_install"
|
||||
- qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":$PKG_CONFIG_PATH"
|
||||
|
||||
# Also setup a virtual display for after_success target when gui == true
|
||||
- if ! $gui; then qbtconf="$qbtconf --disable-gui"; else export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi
|
||||
- qbtconf="$qbtconf --with-qt4"
|
||||
- ltconf=" --with-libgeoip=system"
|
||||
# options for specific branches
|
||||
- if [ "$qt" = 4 ]; then qbtconf="$qbtconf --with-qt4" ; fi
|
||||
- if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
# setup virtual display for after_success target
|
||||
if [ "$gui" = true ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ;
|
||||
fi
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
qbtconf="$qbtconf --disable-qt-dbus" ;
|
||||
fi
|
||||
|
||||
- echo settings
|
||||
- echo $lt_source
|
||||
- echo $ltconf
|
||||
# print settings
|
||||
- echo $lt_branch
|
||||
- echo $gui
|
||||
- echo $ltconf
|
||||
- echo $qbtconf
|
||||
|
||||
- sudo apt-get -qq update
|
||||
# Travis can stall during heavy load if these packages are installed in one step - split the command
|
||||
- sudo apt-get -qq install debhelper autoconf automake colormake libssl-dev libgeoip-dev
|
||||
# uncomment when Travis doesn't use Ubuntu 12.04 LTS, which has libtorrent 0.15.10 as package
|
||||
#- sudo apt-get -qq install libboost-dev libboost-filesystem-dev libboost-system-dev
|
||||
- sudo apt-get -qq install libboost-dev libboost-system-dev
|
||||
- sudo apt-get -qq install libqt4-dev
|
||||
|
||||
install:
|
||||
#- if [[ "$lt_source" == "from_dist" ]]; then sudo apt-get -qq install libtorrent-rasterbar-dev; fi
|
||||
- if [[ "$lt_source" == "from_svnRC_0_16" ]]; then qbtconf="$qbtconf --with-libtorrent-rasterbar0.16" && cd .. && svn co svn://svn.code.sf.net/p/libtorrent/code/branches/RC_0_16 ./libtorrent && (cd libtorrent && ./autotool.sh && ./configure $ltconf && sudo make install) && sudo ldconfig /usr/local/lib && cd $TRAVIS_BUILD_DIR ; fi
|
||||
- if [[ "$lt_source" == "from_svnRC_1_0" ]]; then cd .. && svn co svn://svn.code.sf.net/p/libtorrent/code/branches/RC_1_0 ./libtorrent && (cd libtorrent && ./autotool.sh && ./configure $ltconf && sudo make install) && sudo ldconfig /usr/local/lib && cd $TRAVIS_BUILD_DIR ; fi
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||
# libtorrent
|
||||
sudo add-apt-repository --yes ppa:qbittorrent-team/qbittorrent-stable ;
|
||||
sudo apt-get update -qq ;
|
||||
sudo apt-get install -qq libtorrent-rasterbar-dev ;
|
||||
|
||||
# build libtorrent from source
|
||||
#if [ "$lt_branch" != "dist" ]; then
|
||||
#cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch ;
|
||||
#cd libtorrent && ./autotool.sh && ./configure $ltconf && make install ;
|
||||
#fi ;
|
||||
|
||||
# Qt
|
||||
if [ "$qt" = 4 ]; then sudo apt-get -qq install qt4-default libqt4-dev ; fi ;
|
||||
if [ "$qt" = 5 ]; then sudo apt-get -qq install qt5-default qtbase5-dev qttools5-dev-tools ; fi ;
|
||||
|
||||
# ccache
|
||||
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
|
||||
dpkg-query -L ccache && export use_ccache=true ;
|
||||
ccache -V && ccache --show-stats && ccache --zero-stats ;
|
||||
fi ;
|
||||
fi
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
mkdir -p "$HOME/hombebrew_cache" ;
|
||||
wget https://builds.shiki.hu/homebrew/version ;
|
||||
if ! cmp --quiet "version" "$HOME/hombebrew_cache/version" ; then
|
||||
echo "Cached files are different from server. Downloading new ones." ;
|
||||
cp "version" $HOME/hombebrew_cache ;
|
||||
cd "$HOME/hombebrew_cache" ;
|
||||
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar.rb ;
|
||||
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar-1.0.10.el_capitan.bottle.tar.gz ;
|
||||
fi
|
||||
|
||||
# dependencies
|
||||
brew update > /dev/null ;
|
||||
brew install colormake ccache ;
|
||||
brew outdated "pkg-config" || brew upgrade "pkg-config" ;
|
||||
# Copy custom libtorrent bottle to homebrew's cache so it can find and install it
|
||||
# Also install our custom libtorrent formula by passing the local path to it
|
||||
# These 2 files are restored from Travis' cache.
|
||||
cp "$HOME/hombebrew_cache/libtorrent-rasterbar-1.0.10.el_capitan.bottle.tar.gz" "$(brew --cache)" ;
|
||||
brew install "$HOME/hombebrew_cache/libtorrent-rasterbar.rb" ;
|
||||
|
||||
# Qt
|
||||
if [ "$qt" = 4 ]; then brew install qt && ln -s /usr/local/Cellar/qt/4.8.7_2/plugins /usr/local ; fi ;
|
||||
if [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 && ln -s /usr/local/Cellar/qt5/5.7.0/plugins /usr/local ; fi ;
|
||||
|
||||
# ccache
|
||||
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
|
||||
export PATH="/usr/local/opt/ccache/libexec:$PATH" && export use_ccache=true ;
|
||||
ccache -V && ccache --show-stats && ccache --zero-stats ;
|
||||
fi ;
|
||||
fi
|
||||
|
||||
script:
|
||||
- ./bootstrap.sh
|
||||
- ./configure $qbtconf && sudo make install
|
||||
|
||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
|
||||
- cd "$TRAVIS_BUILD_DIR" && ./bootstrap.sh && ./configure $qbtconf
|
||||
- |
|
||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
sed -i "" -e "s/^\(CC.*&&\).*$/\1 $CC/" src/Makefile ; # workaround for Qt & ccache: https://bugreports.qt.io/browse/QTBUG-31034
|
||||
sed -i "" -e "s/^\(CXX.*&&\).*$/\1 $CXX/" src/Makefile ;
|
||||
sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs -Wno-inconsistent-missing-override/' src/Makefile ;
|
||||
fi
|
||||
- make && make install
|
||||
|
||||
after_success:
|
||||
- if $gui ; then qbittorrent --version ; else qbittorrent-nox --version ; fi
|
||||
- if [ "$gui" = true ]; then qbt_exe="qbittorrent" ; else qbt_exe="qbittorrent-nox" ; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd "$qbt_path/bin" ; fi
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then cd "$TRAVIS_BUILD_DIR/src/" && macdeployqt "$qbt_exe.app" && cd "$qbt_exe.app/Contents/MacOS" ; fi
|
||||
- ./$qbt_exe --version
|
||||
|
||||
after_script:
|
||||
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi
|
||||
|
@@ -1,8 +1,9 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[qbittorrent.qbittorrent_master]
|
||||
[qbittorrent.qbittorrent_v3_3_x]
|
||||
file_filter = src/lang/qbittorrent_<lang>.ts
|
||||
lang_map = pt: pt_PT
|
||||
source_file = src/lang/qbittorrent_en.ts
|
||||
source_lang = en
|
||||
type = QT
|
||||
|
53
5B7CC9A2.asc
Normal file
53
5B7CC9A2.asc
Normal file
@@ -0,0 +1,53 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v2
|
||||
|
||||
mQINBFcNIIwBEACpGHvHW9ku7rwCSc2Dv4gh3MO3HPoP7Ba4RiEKwa7SCbPzc0DL
|
||||
JypV4gNfnrpiO7bWVh5v+otbZTkQeNXWbx6hDUa2e5GCCuJifIu3PxpmMcNJFvvF
|
||||
nk5QRf6dtz4Sm2x6joYprvsEUjyk+wHC016/0g7yhc/w0sclXlpKK+8Pl5DFrf5C
|
||||
i5uljy3oJgl54D2yYAvxu3BrdTVKhLVYADUf1Fl3b5pV7VJwr+9wGuTqkORe1rpi
|
||||
9NGWXUaTmKF8+XAJxlbYIUOZQpQ02clFxz0T7o/+m74N8tK9j7g8H2Q3QwtKi0q1
|
||||
gI48LqI/EuZHIaRz/3pEVISlIpWzGqBL/G4I/UtzJLHyvySsqWXAKllKpk97XX77
|
||||
XxFy3VL3fR7o4IohAj5fD083X8tuBIP2dxmHzxHTWveKBlEV6C4MdtVRow8ia3lu
|
||||
RKLz6PF0hBBpebAP4MWAN8cy4ePBCe9BvyI2+3tPgqtlC2tEZLnRru6mtagPi4sj
|
||||
Yo/iFkSQdTXrxeyrMJh161gsWl16JeAfz4Dq8IBoUA1hXIjfM9FcIv1rCY6Y8JwS
|
||||
TtWMGYtzIcqE71wZxqnJuyFZkgC14NDTLgUwLf8XJOTWlMW9CY+tStjjw+sNoIPf
|
||||
p7YQCmss4p5J8flnxH4xJ8ogOHxENidA+Z/J9mtGjxXIXHavPlO3IEg/DwARAQAB
|
||||
tHFzbGVkZ2VoYW1tZXI5OTkgKFVzZWQgZm9yIHNpZ25pbmcgcUJpdHRvcnJlbnQg
|
||||
c291cmNlIHRhcmJhbGxzIGFuZCBiaW5hcmllcyB2Mi4pIDxzbGVkZ2VoYW1tZXI5
|
||||
OTlAcWJpdHRvcnJlbnQub3JnPokCNwQTAQgAIQUCVw0gjAIbAwULCQgHAgYVCAkK
|
||||
CwIEFgIDAQIeAQIXgAAKCRBuSi0CW3zJojB2D/0bKlelRDQDtWzfRyxrdhe5pgAt
|
||||
x1AsN/Cl7h8zlbAw38bL+jQ2/GmtzwzEqPfQc7IFnbeg0PZ58p7Hikj9h6JEhkyA
|
||||
1qekkriclUmblEwDne3TjPixqgoBfNcDQu74dT08XpM8auFQo31/jJ104903o0O5
|
||||
+CPOPn2KTdwpcSpwAVIj/3H96gZWegJDNpdByJUVbzYCt1erJ6I0ZURKhzU1VTJj
|
||||
ZdEGB2YsvYpt5rsi41IYZZG33jMsPxSDDNJ/MiLXxkn08ZawNET6fnkEJJ37n9Pw
|
||||
82lTZjFEFU+KTMT7dNjIejWCRgHVLgW8sO2lCPqMiFfWymD/N3sFpBO+UI86y5ds
|
||||
hfGFAWcgSq9pVjuW4sbX3PntBnoNd+geDD1Ic4rP3jHRe5HuYGhtHO6xv/r7HeY5
|
||||
HiShCTSSDBJqFmhfjrCo0nISKnzyxgO/rY9vFlwXsKkTyL7s53ONkjwK34WmGnya
|
||||
tXdjBWShzAiTfF5hephfBSszmoBG2C8Jcu6P5n4buBY4RCsEa+6jE0R1vCtmpVwx
|
||||
WrXOeN2kGYMpAkPK1L69Le0FofgUDKlaFMv7KRl4R367xNRukYrsKwVlontJ+Y72
|
||||
X5t1BeRn8VSp0IzhssNXM8a4bTE8lvs889DOS2vgWEHIi0iyIesJYWPs4AKUw4rG
|
||||
EDwWxtTS0a7Rfx3DxLkCDQRXDSCMARAAqMIVJizEJp205c546IN75xeYiFszNXcs
|
||||
3768IY8bOoWj+rTwt2wIwtL/3O5K2dG79CSt2H5o6BPKmq43tOO60YW3Yk3m9BB/
|
||||
gnAVqk0QOPr5O8+yeBzdElU8CZh6y6zZMWugSkNmTDm6jZzPhgNjcjrit/dl9+0D
|
||||
GqJQcqoD8WzEWNcWrMHVz9cDewnLSVkwR758mZMaIiL7R10MZ++tNrC0j69UINqx
|
||||
+9z1r1J07+NNnxqSTxVRcbjPYtM9E+tUiVFS2HPWN9ShVDkBAEdoWh90qzRaMiFl
|
||||
2NGNGOD1iHx/xr06RMeGEEXt2vhSlhfMW2YQW+UD2jzlFbARf53v39MUKKscGuIp
|
||||
BhxGw3JCq4l6qLW/bDkgnoXlOhZDmhQm6OpsjAyk9IEdd3ponSc7yYD3mUkJKR9e
|
||||
TaALD5t6TQGyNHakb4UfoXtE2RR78cbPlLIwag7eQ8GsNA+dfjowmOZdojx3ROsH
|
||||
ZdGQwb0YFLjuKAusA3TY+lCfbS6kzE2iI2DuaW+3dICcLrYuibbVb0CBNHyD+8KE
|
||||
tczdur/wm0lhqyVJkGyZKZT8C2cPxywKgy1Rn6F8Yfmj0Lna3nvtaZu0ZUS4/8Li
|
||||
t5PcOso1lSmYBuD6yq+GEAMCnUmn1Pm8eZRMlxxQuTPvyJKQrRDhbtAAr472MSno
|
||||
JKlS4SfaUF0AEQEAAYkCHwQYAQgACQUCVw0gjAIbDAAKCRBuSi0CW3zJomZDD/9I
|
||||
Jmzd5hiEzntlp84pyIJcfyIRe4KImvldAy6T02OSIbF1HzCNnwmqIPob6MOdMZ+K
|
||||
NwMK0htRkrRr/zM034+lBiWKZt+tVYHu49ioTYXEjAc5qDJE09Sq7HceQnhgE48f
|
||||
1n54XGT5G2w5gw+/a8Qn1SceE44VwXafL3E1gKaOrrsb1UH/AJhp+W4VMu+7bLXu
|
||||
7h1tN6v2PhvCYvBt3zyy8Q8xfJ2x7/D1lbF8ATJAiZ/km9x5bRm7OGRliVYaUe1n
|
||||
yR42fZOj3CBmAR0+lZLgjriqdMXrs+qlBbrmAhkn0XPQXAeaPifKoKIGDAUWIsqD
|
||||
HqM7imMGT+MR9APfSw8M4enOJWL+HnKpVBEARCEDpaFpJ3u7QRucFybpEhvIymoN
|
||||
ftyw+urId2Eg2K33NypeZo3M1K2LC65f2Ta7f/sZcIDUTbgW+m334fgVl1KptDA5
|
||||
DX3U9lTci7mi4uPuAFtbWrB1di4jYrxXYuzFm5g4xTb0Hw3kYIB6WXF+I7i0JaGO
|
||||
THxPC5X5lIAZrYrkxh+1n1Y1CY+TC8JcTzwORJIbFFm9tD/BHXa4849k4DVvFYCZ
|
||||
khq+/56FKZfoVByhB+x+2GaMlsBm1uPniO4lAakFPpIi0kaap4UVayQ/7ak+Bhsc
|
||||
AIHZUy6NtgZkuvW3xdpwp07LYo2ilhMI8RnzmtoRmg==
|
||||
=tDGM
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
5
AUTHORS
5
AUTHORS
@@ -79,6 +79,11 @@ Images Authors:
|
||||
|
||||
* file: src/icons/oxygen/checked.png
|
||||
copyright: Victor Buinsky <allok.victor@gmail.com>
|
||||
|
||||
* file: src/icons/skin/ratio.png
|
||||
copyright: Fatcow Web Hosting
|
||||
license: Creative Commons Attribution 3.0 License
|
||||
url: http://www.fatcow.com/free-icons
|
||||
|
||||
Translations authors:
|
||||
* files: src/lang/*.ts
|
||||
|
65
CMakeLists.txt
Normal file
65
CMakeLists.txt
Normal file
@@ -0,0 +1,65 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_policy(VERSION 3.5)
|
||||
|
||||
project(qBittorrent VERSION 3.4.0.0)
|
||||
|
||||
set(VER_MAJOR ${qBittorrent_VERSION_MAJOR})
|
||||
set(VER_MINOR ${qBittorrent_VERSION_MINOR})
|
||||
set(VER_BUGFIX ${qBittorrent_VERSION_PATCH})
|
||||
set(VER_BUILD ${qBittorrent_VERSION_TWEAK})
|
||||
set(VER_STATUS "alpha") # Should be empty for stable releases!
|
||||
|
||||
# Don't touch the rest part
|
||||
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
|
||||
|
||||
if (NOT VER_BUILD EQUAL 0)
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}")
|
||||
endif()
|
||||
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}")
|
||||
|
||||
add_definitions(-DVERSION_MAJOR=${VER_MAJOR})
|
||||
add_definitions(-DVERSION_MINOR=${VER_MINOR})
|
||||
add_definitions(-DVERSION_BUGFIX=${VER_BUGFIX})
|
||||
add_definitions(-DVERSION_BUILD=${VER_BUILD})
|
||||
|
||||
# os2 {
|
||||
# DEFINES += VERSION=\'\"v$${PROJECT_VERSION}\"\'
|
||||
# } else {
|
||||
add_definitions(-DVERSION="v${PROJECT_VERSION}")
|
||||
# }
|
||||
list(APPEND CMAKE_MODULE_PATH ${qBittorrent_SOURCE_DIR}/cmake/Modules)
|
||||
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
|
||||
if (UNIX AND NOT APPLE)
|
||||
include(GNUInstallDirs)
|
||||
endif (UNIX AND NOT APPLE)
|
||||
|
||||
if(WIN32)
|
||||
include(winconf)
|
||||
endif(WIN32)
|
||||
|
||||
# we need options here, because they are used not only in "src" subdir, but in the "dist" dir too
|
||||
include(CMakeDependentOption)
|
||||
|
||||
option(QT5 "Compile using Qt5" ON)
|
||||
option(SYSTEM_QTSINGLEAPPLICATION
|
||||
"Use the system qtsingleapplication library or shipped one otherwise")
|
||||
cmake_dependent_option(SYSTEM_QJSON
|
||||
"Use the shipped qjson library or the system one (Qt4 only)" OFF "NOT QT5" OFF)
|
||||
|
||||
option(GUI "Allows to disable GUI for headless running. Disables QtDBus and the GeoIP Database" ON)
|
||||
|
||||
option(WEBUI "Allows to disable the WebUI." ON)
|
||||
|
||||
if (WIN32)
|
||||
option(STACKTRACE_WIN "")
|
||||
else (WIN32)
|
||||
cmake_dependent_option(SYSTEMD "Install the systemd service file (headless only)" OFF
|
||||
"NOT GUI" OFF)
|
||||
cmake_dependent_option(DBUS "Enable use of QtDBus (GUI only)" ON "GUI" OFF)
|
||||
endif(WIN32)
|
||||
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(dist)
|
@@ -1,6 +1,8 @@
|
||||
All new code must follow the following coding guidelines.
|
||||
If you make changes in a file that still uses another coding style, make sure that you follow these guidelines for your changes instead.
|
||||
**Note:** I will now take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style.
|
||||
**Note 1:** I will not take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style.
|
||||
**Note 2:** You can use the `uncrustify` program/tool to clean up any source file. Use it with the `uncrustify.cfg` configuration file found in the root folder.
|
||||
**Note 3:** There is also a style for QtCreator but it doesn't cover all cases. In QtCreator `Tools->Options...->C++->Code Style->Import...` and choose the `codingStyleQtCreator.xml` file found in the root folder.
|
||||
|
||||
### 1. Curly braces ###
|
||||
#### a. Function blocks, class/struct definitions, namespaces ####
|
||||
@@ -10,31 +12,43 @@ int myFunction(int a)
|
||||
//code
|
||||
}
|
||||
|
||||
myClass::myClass(int *parent)
|
||||
void myFunction() {} // empty body
|
||||
|
||||
MyClass::MyClass(int *parent)
|
||||
: m_parent(parent)
|
||||
{
|
||||
//initialiaze
|
||||
//initialize
|
||||
}
|
||||
|
||||
int myClass::myMethod(int a)
|
||||
int MyClass::myMethod(int a)
|
||||
{
|
||||
//code
|
||||
}
|
||||
|
||||
class myOtherClass
|
||||
class MyOtherClass
|
||||
{
|
||||
public:
|
||||
//code
|
||||
|
||||
protected:
|
||||
//code
|
||||
|
||||
private:
|
||||
//code
|
||||
};
|
||||
|
||||
namespace id
|
||||
namespace Name
|
||||
{
|
||||
//code
|
||||
}
|
||||
|
||||
// Lambdas
|
||||
[](int arg1, int arg2) -> bool { return arg1 < arg2; }
|
||||
|
||||
[this](int arg)
|
||||
{
|
||||
this->acc += arg;
|
||||
}
|
||||
```
|
||||
|
||||
#### b. Other code blocks ####
|
||||
@@ -75,6 +89,16 @@ default:
|
||||
}
|
||||
```
|
||||
|
||||
#### d. Brace enclosed initializers ####
|
||||
Unlike single-line functions, you must not insert spaces between the brackets and concluded expressions.<br/>
|
||||
But you must insert a space between the variable name and initializer.
|
||||
```c++
|
||||
Class obj {}; // empty
|
||||
Class obj {expr};
|
||||
Class obj {expr1, /*...,*/ exprN};
|
||||
QVariantMap map {{"key1", 5}, {"key2", 10}};
|
||||
```
|
||||
|
||||
### 2. If blocks ###
|
||||
#### a. Multiple tests ####
|
||||
```c++
|
||||
@@ -119,16 +143,16 @@ Generally it will depend on the particular piece of code and would be determined
|
||||
|
||||
### 4. File encoding and line endings.###
|
||||
|
||||
UTF-8 and Unix-like line ending (LF). Unless some platform speficic files need other encodings/line endings.
|
||||
UTF-8 and Unix-like line ending (LF). Unless some platform specific files need other encodings/line endings.
|
||||
|
||||
### 5. Initialization lists.###
|
||||
Initialization lists should be vertical. This will allow for more easily readable diffs. The inilization colon should be indented and in its own line along with first argument. The rest of the arguments should be indented too and have the comma prepended.
|
||||
Initialization lists should be vertical. This will allow for more easily readable diffs. The initialization colon should be indented and in its own line along with first argument. The rest of the arguments should be indented too and have the comma prepended.
|
||||
```c++
|
||||
myClass::myClass(int a, int b, int c, int d)
|
||||
: priv_a(a)
|
||||
, priv_b(b)
|
||||
, priv_c(c)
|
||||
, priv_d(d)
|
||||
: m_a(a)
|
||||
, m_b(b)
|
||||
, m_c(c)
|
||||
, m_d(d)
|
||||
{
|
||||
//code
|
||||
}
|
||||
@@ -137,7 +161,7 @@ myClass::myClass(int a, int b, int c, int d)
|
||||
### 6. Enums.###
|
||||
Enums should be vertical. This will allow for more easily readable diffs. The members should be indented.
|
||||
```c++
|
||||
enum days
|
||||
enum Days
|
||||
{
|
||||
Monday,
|
||||
Tuesday,
|
||||
@@ -149,7 +173,74 @@ enum days
|
||||
};
|
||||
```
|
||||
|
||||
### 7. Misc.###
|
||||
### 7. Names.###
|
||||
All names should be camelCased.
|
||||
|
||||
#### a. Type names and namespaces ####
|
||||
Type names and namespaces start with Upper case letter (except POD types).
|
||||
```c++
|
||||
class ClassName {};
|
||||
|
||||
struct StructName {};
|
||||
|
||||
enum EnumName {};
|
||||
|
||||
typedef QList<ClassName> SomeList;
|
||||
|
||||
namespace NamespaceName
|
||||
{
|
||||
}
|
||||
```
|
||||
|
||||
#### b. Variable names ####
|
||||
Variable names start with lower case letter.
|
||||
```c++
|
||||
int myVar;
|
||||
```
|
||||
|
||||
#### c. Private member variable names ####
|
||||
Private member variable names start with lower case letter and should have ```m_``` prefix.
|
||||
```c++
|
||||
class MyClass
|
||||
{
|
||||
int m_myVar;
|
||||
}
|
||||
```
|
||||
|
||||
### 8. Header inclusion order.###
|
||||
The headers should be placed in the following order:
|
||||
1. Module header (in .cpp)
|
||||
2. System/Qt/Boost etc. headers (splitted in subcategories if you have many).
|
||||
3. Application headers, starting from *Base* headers.
|
||||
|
||||
The headers should be ordered alphabetically within each group (subgroup).<br/>
|
||||
<br/>
|
||||
Example:
|
||||
```c++
|
||||
// examplewidget.cpp
|
||||
|
||||
#include "examplewidget.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
#include <libtorrent/version.hpp>
|
||||
|
||||
#include "base/bittorrent/session.h"
|
||||
#include "base/bittorrent/infohash.h"
|
||||
#include "base/utils/fs.h"
|
||||
#include "base/utils/misc.h"
|
||||
#include "base/utils/string.h"
|
||||
#include "ui_examplewidget.h"
|
||||
|
||||
```
|
||||
|
||||
### 9. Misc.###
|
||||
|
||||
* Line breaks for long lines with operation:
|
||||
|
||||
@@ -159,11 +250,51 @@ a += "b"
|
||||
+ "d";
|
||||
```
|
||||
|
||||
* **auto** keyword
|
||||
|
||||
We allow the use of the **auto** keyword only where it is strictly necessary
|
||||
(for example, to declare a lambda object, etc.), or where it **enhances** the readability of the code.
|
||||
Declarations for which one can gather enough information about the object interface (type) from its name
|
||||
or the usage pattern (an iterator or a loop variable are good examples of clear patterns)
|
||||
or the right part of the expression nicely fit here.<br/>
|
||||
<br/>
|
||||
When weighing whether to use an auto-typed variable please think about potential reviewers of your code,
|
||||
who will read it as a plain diff (on github.com, for instance). Please make sure that such reviewers can
|
||||
understand the code completely and without excessive effort.<br/>
|
||||
<br/>
|
||||
Some valid use cases:
|
||||
```c++
|
||||
template <typename List>
|
||||
void doSomethingWithList(const List &list)
|
||||
{
|
||||
foreach (const auto &item, list) {
|
||||
// we don't know item type here so we use 'auto' keyword
|
||||
// do something with item
|
||||
}
|
||||
}
|
||||
|
||||
for (auto it = container.begin(), end = container.end(); it != end; ++it) {
|
||||
// we don't need to know the exact iterator type,
|
||||
// because all iterators have the same interface
|
||||
}
|
||||
|
||||
auto spinBox = static_cast<QSpinBox*>(sender());
|
||||
// we know the variable type based on the right-hand expression
|
||||
```
|
||||
|
||||
* Space around operations eg `a = b + c` or `a=b+c`:
|
||||
|
||||
Before and after the assignment there should be a space. One exception could be: for loops.
|
||||
Before and after the assignment and other binary (and ternary) operators there should be a space.<br/>
|
||||
There should not be a space between increment/decrement and its operand.<br/>
|
||||
Some valid use cases:
|
||||
```c++
|
||||
for (int a=0; a<b; ++b) {
|
||||
a += 20;
|
||||
a = (b <= MAX_B ? b : MAX_B);
|
||||
++a;
|
||||
b--;
|
||||
|
||||
for (int a = 0; a < b; ++b) {
|
||||
// code
|
||||
}
|
||||
```
|
||||
|
||||
@@ -173,5 +304,5 @@ for (int a=0; a<b; ++b) {
|
||||
|
||||
* Method definitions aren't allowed in header files
|
||||
|
||||
###8. Not covered above###
|
||||
###10. Not covered above###
|
||||
If something isn't covered above, just follow the same style the file you are editing has. If that particular detail isn't present in the file you are editing, then use whatever the rest of the project uses.
|
36
CONTRIBUTING.md
Normal file
36
CONTRIBUTING.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Filing an issue
|
||||
|
||||
### Must read
|
||||
* If you aren't sure, you can ask on the [**forum**](http://forum.qbittorrent.org) or read our [**wiki**](http://wiki.qbittorrent.org) first.
|
||||
* Do a quick **search**. Others might already reported the issue.
|
||||
* Write in **English**!
|
||||
* Provide **version** information: (You can find version numbers at menu `Help -> About -> Libraries`)
|
||||
```
|
||||
qBittorrent:
|
||||
Qt:
|
||||
libtorrent:
|
||||
boost:
|
||||
OS version:
|
||||
|
||||
```
|
||||
* Provide **steps** to reproduce the problem, it will be easier to pinpoint the fault.
|
||||
* **Screenshots**! A screenshot is worth a thousand words. just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests)
|
||||
|
||||
### Good to know
|
||||
* **Be patient**. The dev team is small and resource limited. Devs finding their free time, analyzing the problem and fixing the issue, it all takes time. :clock3:
|
||||
* If you can code, why not become a **contributor** by fixing the issue and open a pull request? :wink:
|
||||
* Harsh words or threats won't help your situation. What's worse, your complain will (very likely) to be **ignored**. :fearful:
|
||||
|
||||
|
||||
# Opening a pull request
|
||||
|
||||
### Must read
|
||||
* Read our [**coding guidelines**](https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md). There are some scripts to help you: [uncrustify script](https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/uncrustify.cfg), [astyle script](https://gist.github.com/Chocobo1/539cee860d1eef0acfa6), [(related thread)](https://github.com/qbittorrent/qBittorrent/issues/2192).
|
||||
* Keep the title **short** and provide a **clear** description about what your pull request does.
|
||||
* Provide **screenshots** for UI related changes.
|
||||
* Keep your git commit history **clean** and **precise**. Commits like `xxx fixup` should not appear.
|
||||
* If your commit fix a reported issue (for example #4134), add the following message to the commit `Closes #4134.`. Example [here](https://github.com/qbittorrent/qBittorrent/commit/a74bac20c4e8de9776bf9bb77fdc7526135d1988).
|
||||
|
||||
### Good to know
|
||||
* **Search** pull request history! Others might already implemented your idea and is waiting to be merged (or got rejected already). Save your precious time by doing a search first.
|
||||
* When resolving merge conflicts, do `git rebase <target_branch_name>`, don't do `git pull`. Then you can start fixing the conflicts. Here is a good explanation: [link](https://www.atlassian.com/git/tutorials/merging-vs-rebasing).
|
72
COPYING
72
COPYING
@@ -12,15 +12,15 @@ exception statement from your version.
|
||||
|
||||
----------
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
@@ -70,7 +70,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
@@ -269,7 +269,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
@@ -291,64 +291,4 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
10
INSTALL
10
INSTALL
@@ -14,15 +14,11 @@ qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.15.0)
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 1.0.6)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
- libboost 1.34.x (libboost-filesystem°) + libasio
|
||||
or
|
||||
- libboost >= 1.35.x (libboost-system, libboost-filesystem°)
|
||||
|
||||
°libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used
|
||||
- libboost >= 1.35.x (libboost-system)
|
||||
|
||||
- python >= 2.3 (needed by search engine)
|
||||
* Run time only dependency
|
||||
@@ -44,7 +40,7 @@ qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= v0.15.0)
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= v1.0.6)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
|
19
README.md
19
README.md
@@ -1,9 +1,11 @@
|
||||
qBittorrent - A BitTorrent client in Qt
|
||||
------------------------------------------
|
||||
|
||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
||||
[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
|
||||
[](https://scan.coverity.com/projects/5494)
|
||||
********************************
|
||||
###Description:
|
||||
### Description:
|
||||
qBittorrent is a bittorrent client programmed in C++ / Qt that uses
|
||||
libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
|
||||
|
||||
@@ -12,7 +14,7 @@ out there. qBittorrent is fast, stable and provides unicode
|
||||
support as well as many features.
|
||||
|
||||
This product includes GeoLite data created by MaxMind, available from
|
||||
http://maxmind.com/
|
||||
https://www.maxmind.com/
|
||||
|
||||
### Installation:
|
||||
For installation, follow the instructions from INSTALL file, but simple:
|
||||
@@ -25,12 +27,22 @@ qbittorrent
|
||||
|
||||
will install and execute qBittorrent hopefully without any problem.
|
||||
|
||||
### Public key:
|
||||
Starting from v3.3.4 all source tarballs and binaries are signed.<br />
|
||||
The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.<br />
|
||||
You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).<br />
|
||||
**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br />
|
||||
|
||||
### Misc:
|
||||
For more information please visit:
|
||||
http://www.qbittorrent.org
|
||||
|
||||
or our wiki here:
|
||||
http://wiki.qbittorrent.org
|
||||
|
||||
Use the forum for troubleshooting before reporting bugs:
|
||||
http://forum.qbittorrent.org
|
||||
|
||||
Please report any bug (or feature request) to:
|
||||
http://bugs.qbittorrent.org
|
||||
|
||||
@@ -39,4 +51,3 @@ You can also meet me (sledgehammer_999) on IRC:
|
||||
|
||||
------------------------------------------
|
||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||
|
||||
|
@@ -26,7 +26,7 @@ How to build
|
||||
First you need to create the conf.pri file in the same dir as this readme.os2 is.
|
||||
the conf.pri file has the following content:
|
||||
|
||||
##### conf.pri content beginn #####
|
||||
##### conf.pri content begin #####
|
||||
BINDIR = ./bin
|
||||
INCDIR = ./include
|
||||
LIBDIR = ./lib
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
aclocal -I m4
|
||||
autoconf
|
||||
|
106
cmake/Modules/FindLibtorrentRasterbar.cmake
Normal file
106
cmake/Modules/FindLibtorrentRasterbar.cmake
Normal file
@@ -0,0 +1,106 @@
|
||||
# - Try to find libtorrent-rasterbar
|
||||
#
|
||||
# If not using pkg-config, you can pre-set LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
# for definitions unrelated to Boost's separate compilation (which are already
|
||||
# decided by the LibtorrentRasterbar_USE_STATIC_LIBS variable).
|
||||
#
|
||||
# Once done this will define
|
||||
# LibtorrentRasterbar_FOUND - System has libtorrent-rasterbar
|
||||
# LibtorrentRasterbar_INCLUDE_DIRS - The libtorrent-rasterbar include directories
|
||||
# LibtorrentRasterbar_LIBRARIES - The libraries needed to use libtorrent-rasterbar
|
||||
# LibtorrentRasterbar_DEFINITIONS - Compiler switches required for using libtorrent-rasterbar
|
||||
# LibtorrentRasterbar_OPENSSL_ENABLED - libtorrent-rasterbar uses and links against OpenSSL
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
find_package(PkgConfig QUIET)
|
||||
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(PC_LIBTORRENT_RASTERBAR QUIET libtorrent-rasterbar)
|
||||
endif()
|
||||
|
||||
if(LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||
set(LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
if(PC_LIBTORRENT_RASTERBAR_FOUND)
|
||||
set(LibtorrentRasterbar_DEFINITIONS ${PC_LIBTORRENT_RASTERBAR_CFLAGS})
|
||||
else()
|
||||
if(LibtorrentRasterbar_CUSTOM_DEFINITIONS)
|
||||
set(LibtorrentRasterbar_DEFINITIONS ${LibtorrentRasterbar_CUSTOM_DEFINITIONS})
|
||||
else()
|
||||
# Without pkg-config, we can't possibly figure out the correct build flags.
|
||||
# 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_OPENSSL
|
||||
-DTORRENT_DISABLE_GEO_IP
|
||||
-DBOOST_ASIO_ENABLE_CANCELIO
|
||||
-DUNICODE -D_UNICODE -D_FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
|
||||
if(NOT LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||
list(APPEND LibtorrentRasterbar_DEFINITIONS
|
||||
-DTORRENT_LINKING_SHARED
|
||||
-DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "libtorrent definitions: ${LibtorrentRasterbar_DEFINITIONS}")
|
||||
|
||||
find_path(LibtorrentRasterbar_INCLUDE_DIR libtorrent
|
||||
HINTS ${PC_LIBTORRENT_RASTERBAR_INCLUDEDIR} ${PC_LIBTORRENT_RASTERBAR_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES libtorrent-rasterbar)
|
||||
|
||||
find_library(LibtorrentRasterbar_LIBRARY NAMES torrent-rasterbar libtorrent
|
||||
HINTS ${PC_LIBTORRENT_RASTERBAR_LIBDIR} ${PC_LIBTORRENT_RASTERBAR_LIBRARY_DIRS})
|
||||
|
||||
if(LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif()
|
||||
|
||||
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
||||
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIR})
|
||||
|
||||
if(NOT Boost_SYSTEM_FOUND OR NOT Boost_CHRONO_FOUND OR NOT Boost_RANDOM_FOUND)
|
||||
find_package(Boost REQUIRED COMPONENTS date_time system chrono random thread)
|
||||
set(LibtorrentRasterbar_LIBRARIES
|
||||
${LibtorrentRasterbar_LIBRARIES} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
set(LibtorrentRasterbar_INCLUDE_DIRS
|
||||
${LibtorrentRasterbar_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
list(FIND LibtorrentRasterbar_DEFINITIONS -DTORRENT_USE_OPENSSL LibtorrentRasterbar_ENCRYPTION_INDEX)
|
||||
if(LibtorrentRasterbar_ENCRYPTION_INDEX GREATER -1)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${OPENSSL_LIBRARIES})
|
||||
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS})
|
||||
set(LibtorrentRasterbar_OPENSSL_ENABLED ON)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LibtorrentRasterbar_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG
|
||||
LibtorrentRasterbar_LIBRARY
|
||||
LibtorrentRasterbar_INCLUDE_DIR
|
||||
Boost_SYSTEM_FOUND
|
||||
Boost_CHRONO_FOUND
|
||||
Boost_RANDOM_FOUND)
|
||||
|
||||
mark_as_advanced(LibtorrentRasterbar_INCLUDE_DIR LibtorrentRasterbar_LIBRARY
|
||||
LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES
|
||||
LibtorrentRasterbar_ENCRYPTION_INDEX)
|
||||
|
||||
if (LibtorrentRasterbar_FOUND AND NOT TARGET LibtorrentRasterbar::LibTorrent)
|
||||
add_library(LibtorrentRasterbar::LibTorrent UNKNOWN IMPORTED)
|
||||
|
||||
set_target_properties(LibtorrentRasterbar::LibTorrent PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${LibtorrentRasterbar_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
|
||||
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${LibtorrentRasterbar_LIBRARIES}"
|
||||
INTERFACE_COMPILE_OPTIONS "${LibtorrentRasterbar_DEFINITIONS}"
|
||||
)
|
||||
endif()
|
94
cmake/Modules/FindQtSingleApplication.cmake
Normal file
94
cmake/Modules/FindQtSingleApplication.cmake
Normal file
@@ -0,0 +1,94 @@
|
||||
# - 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(QT4_FOUND)
|
||||
message(STATUS "Looking for Qt4 single application library")
|
||||
FIND_PATH(QTSINGLEAPPLICATION_INCLUDE_DIR QtSingleApplication
|
||||
# standard locations
|
||||
/usr/include
|
||||
/usr/include/QtSolutions
|
||||
# qt4 location except mac's frameworks
|
||||
"${QT_INCLUDE_DIR}/QtSolutions"
|
||||
# mac's frameworks
|
||||
${FRAMEWORK_INCLUDE_DIR}/QtSolutions
|
||||
)
|
||||
|
||||
SET(QTSINGLEAPPLICATION_NAMES ${QTSINGLEAPPLICATION_NAMES}
|
||||
QtSolutions_SingleApplication-2.6 libQtSolutions_SingleApplication-2.6)
|
||||
FIND_LIBRARY(QTSINGLEAPPLICATION_LIBRARY
|
||||
NAMES ${QTSINGLEAPPLICATION_NAMES}
|
||||
PATHS ${QT_LIBRARY_DIR}
|
||||
)
|
||||
ELSEIF(Qt5Widgets_FOUND)
|
||||
message(STATUS "Looking for Qt5 single application library")
|
||||
FOREACH(TOP_INCLUDE_PATH in ${Qt5Widgets_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR})
|
||||
FIND_PATH(QTSINGLEAPPLICATION_INCLUDE_DIR QtSingleApplication ${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_WIDGETSLIBRARY Qt5::Widgets LOCATION)
|
||||
GET_FILENAME_COMPONENT(QT5_WIDGETSLIBRARYPATH ${QT5_WIDGETSLIBRARY} PATH)
|
||||
|
||||
FIND_LIBRARY(QTSINGLEAPPLICATION_LIBRARY
|
||||
NAMES ${QTSINGLEAPPLICATION_NAMES}
|
||||
PATHS ${QT5_WIDGETSLIBRARYPATH}
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
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)
|
23
cmake/Modules/FindSystemd.cmake
Normal file
23
cmake/Modules/FindSystemd.cmake
Normal file
@@ -0,0 +1,23 @@
|
||||
#######
|
||||
# Find systemd service dir
|
||||
# sets variables
|
||||
# SYSTEMD_FOUND
|
||||
# SYSTEMD_SERVICES_INSTALL_DIR
|
||||
if (NOT SYSTEMD_FOUND)
|
||||
pkg_check_modules(SYSTEMD "systemd")
|
||||
endif(NOT SYSTEMD_FOUND)
|
||||
|
||||
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
|
||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
|
||||
--variable=systemdsystemunitdir systemd
|
||||
OUTPUT_VARIABLE SYSTEMD_SERVICES_INSTALL_DIR)
|
||||
string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SERVICES_INSTALL_DIR
|
||||
"${SYSTEMD_SERVICES_INSTALL_DIR}")
|
||||
elseif (NOT SYSTEMD_FOUND AND SYSTEMD_SERVICES_INSTALL_DIR)
|
||||
message (FATAL_ERROR "Variable SYSTEMD_SERVICES_INSTALL_DIR is\
|
||||
defined, but we can't find systemd using pkg-config")
|
||||
endif()
|
||||
|
||||
if (SYSTEMD_FOUND)
|
||||
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
|
||||
endif(SYSTEMD_FOUND)
|
38
cmake/Modules/MacroConfigureMSVCRuntime.cmake
Normal file
38
cmake/Modules/MacroConfigureMSVCRuntime.cmake
Normal file
@@ -0,0 +1,38 @@
|
||||
macro(configure_msvc_runtime)
|
||||
if(MSVC)
|
||||
# Default to statically-linked runtime.
|
||||
if("${MSVC_RUNTIME}" STREQUAL "")
|
||||
set(MSVC_RUNTIME "static")
|
||||
endif()
|
||||
# Set compiler options.
|
||||
set(variables
|
||||
CMAKE_C_FLAGS_DEBUG
|
||||
CMAKE_C_FLAGS_MINSIZEREL
|
||||
CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_DEBUG
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
)
|
||||
if(${MSVC_RUNTIME} STREQUAL "static")
|
||||
message(STATUS
|
||||
"MSVC -> forcing use of statically-linked runtime."
|
||||
)
|
||||
foreach(variable ${variables})
|
||||
if(${variable} MATCHES "/MD")
|
||||
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
message(STATUS
|
||||
"MSVC -> forcing use of dynamically-linked runtime."
|
||||
)
|
||||
foreach(variable ${variables})
|
||||
if(${variable} MATCHES "/MT")
|
||||
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
16
cmake/Modules/MacroLinkQtComponents.cmake
Normal file
16
cmake/Modules/MacroLinkQtComponents.cmake
Normal file
@@ -0,0 +1,16 @@
|
||||
# - macro similar to target_link_libraries, which links Qt components
|
||||
# names of the components are pased in Qt4/Qt5 agnostic way (Core, DBus, Xml...)
|
||||
# and the macro links Qt4 ones if QT4_FOUND is set or Qt5 ones if not
|
||||
|
||||
macro (target_link_qt_components target)
|
||||
if (QT4_FOUND)
|
||||
foreach(_cmp ${ARGN})
|
||||
list(APPEND _QT_CMPNTS "Qt4::Qt${_cmp}")
|
||||
endforeach()
|
||||
else (QT4_FOUND)
|
||||
foreach(_cmp ${ARGN})
|
||||
list(APPEND _QT_CMPNTS "Qt5::${_cmp}")
|
||||
endforeach()
|
||||
endif (QT4_FOUND)
|
||||
target_link_libraries(${target} ${_QT_CMPNTS})
|
||||
endmacro()
|
17
cmake/Modules/QbtTargetSources.cmake
Normal file
17
cmake/Modules/QbtTargetSources.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
# a helper function which appends source to the main qBt target
|
||||
# the target name is read from QBT_TARGET_NAME variable
|
||||
# sources file names are relative to the the ${qbt_executable_SOURCE_DIR}
|
||||
|
||||
function (qbt_target_sources)
|
||||
set (_sources_rel "")
|
||||
foreach (_source IN ITEMS ${ARGN})
|
||||
if (IS_ABSOLUTE "${_source}")
|
||||
set(source_abs "${_source}")
|
||||
else()
|
||||
get_filename_component(_source_abs "${_source}" ABSOLUTE)
|
||||
endif()
|
||||
file (RELATIVE_PATH _source_rel "${qbt_executable_SOURCE_DIR}" "${_source_abs}")
|
||||
list (APPEND _sources_rel "${_source_rel}")
|
||||
endforeach()
|
||||
target_sources (${QBT_TARGET_NAME} PRIVATE "${_sources_rel}")
|
||||
endfunction (qbt_target_sources)
|
14
cmake/Modules/winconf-mingw.cmake
Normal file
14
cmake/Modules/winconf-mingw.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
if (STACKTRACE_WIN)
|
||||
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_WIN)
|
||||
|
||||
if (("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo"))
|
||||
link_libraries(-Wl,--dynamicbase)
|
||||
endif()
|
||||
|
||||
# LIBS += libadvapi32 libshell32 libuser32
|
||||
# LIBS += libcrypto.dll libssl.dll libwsock32 libws2_32 libz libiconv.dll
|
||||
# LIBS += libpowrprof
|
21
cmake/Modules/winconf-msvc.cmake
Normal file
21
cmake/Modules/winconf-msvc.cmake
Normal file
@@ -0,0 +1,21 @@
|
||||
if (STACKTRACE_WIN)
|
||||
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_WIN)
|
||||
|
||||
# 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()
|
86
cmake/Modules/winconf.cmake
Normal file
86
cmake/Modules/winconf.cmake
Normal file
@@ -0,0 +1,86 @@
|
||||
# Settings for compiling qBittorrent on Windows
|
||||
|
||||
# We want to link with static version of
|
||||
# libtorrent
|
||||
set(LibtorrentRasterbar_USE_STATIC_LIBS True)
|
||||
set(LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||
-DBOOST_ALL_NO_LIB -DBOOST_ASIO_HASH_MAP_BUCKETS=1021
|
||||
-DBOOST_ASIO_SEPARATE_COMPILATION
|
||||
-DBOOST_EXCEPTION_DISABLE
|
||||
-DBOOST_SYSTEM_STATIC_LINK=1
|
||||
-DTORRENT_USE_OPENSSL
|
||||
-DUNICODE
|
||||
-D_UNICODE
|
||||
-DWIN32
|
||||
-D_WIN32
|
||||
-DWIN32_LEAN_AND_MEAN
|
||||
-D_WIN32_WINNT=0x0501
|
||||
-D_WIN32_IE=0x0500
|
||||
-D_CRT_SECURE_NO_DEPRECATE
|
||||
-D_SCL_SECURE_NO_DEPRECATE
|
||||
-D__USE_W32_SOCKETS
|
||||
-D_FILE_OFFSET_BITS=64)
|
||||
|
||||
# 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)
|
||||
# if so, we just need to set CMAKE_SYSTEM_PREFIX_PATH
|
||||
# If it is not the case, individual paths need to be specified manually (see below)
|
||||
set(COMMON_INSTALL_PREFIX "c:/usr")
|
||||
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")
|
||||
set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5")
|
||||
|
||||
# it is safe to set Qt dirs even if their files are directly in the prefix
|
||||
# Qt4
|
||||
if(NOT QT5)
|
||||
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.
|
||||
# The following values are generated from the paths listed above just for an example
|
||||
# they have to be set to actual locations
|
||||
|
||||
# Boost
|
||||
# set(BOOST_ROOT "${COMMON_INSTALL_PREFIX}")
|
||||
# set(Boost_version_suffix "1_59")
|
||||
# if a link like boost-version/boost -> boost was created or the boost directory was renamed in the same way,
|
||||
# the following needs adjustment
|
||||
# set(BOOST_INCLUDEDIR "${COMMON_INSTALL_PREFIX}/include/boost-${Boost_version_suffix}")
|
||||
# set(BOOST_LIBRARYDIR "${COMMON_INSTALL_PREFIX}/lib/")
|
||||
|
||||
# libtorrent
|
||||
|
||||
# set(PC_LIBTORRENT_RASTERBAR_INCLUDEDIR "${COMMON_INSTALL_PREFIX}")
|
||||
# set(PC_LIBTORRENT_RASTERBAR_LIBDIR "${COMMON_INSTALL_PREFIX}/lib")
|
||||
|
||||
set(AUTOGEN_TARGETS_FOLDER "generated")
|
||||
|
||||
set(CMAKE_INSTALL_BINDIR ".")
|
||||
|
||||
# Test 32/64 bits
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
message(STATUS "Target is 64 bits")
|
||||
if (WIN32)
|
||||
set(WINXXBITS Win64)
|
||||
endif(WIN32)
|
||||
else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
message(STATUS "Target is 32 bits")
|
||||
if (WIN32)
|
||||
set(WINXXBITS Win32)
|
||||
endif(WIN32)
|
||||
endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
|
||||
if (MSVC)
|
||||
include(winconf-msvc)
|
||||
else (MSVC)
|
||||
include(winconf-mingw)
|
||||
endif (MSVC)
|
39
codingStyleQtCreator.xml
Normal file
39
codingStyleQtCreator.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorCodeStyle>
|
||||
<!-- Written by QtCreator 3.2.82, 2014-11-26T02:08:28. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>CodeStyleData</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="AlignAssignments">true</value>
|
||||
<value type="bool" key="AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="BindStarToIdentifier">false</value>
|
||||
<value type="bool" key="BindStarToLeftSpecifier">true</value>
|
||||
<value type="bool" key="BindStarToRightSpecifier">false</value>
|
||||
<value type="bool" key="BindStarToTypeName">true</value>
|
||||
<value type="bool" key="ExtraPaddingForConditionsIfConfusingAlign">false</value>
|
||||
<value type="bool" key="IndentAccessSpecifiers">false</value>
|
||||
<value type="bool" key="IndentBlockBody">true</value>
|
||||
<value type="bool" key="IndentBlockBraces">false</value>
|
||||
<value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
|
||||
<value type="bool" key="IndentClassBraces">false</value>
|
||||
<value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentDeclarationsRelativeToAccessSpecifiers">true</value>
|
||||
<value type="bool" key="IndentEnumBraces">false</value>
|
||||
<value type="bool" key="IndentFunctionBody">true</value>
|
||||
<value type="bool" key="IndentFunctionBraces">false</value>
|
||||
<value type="bool" key="IndentNamespaceBody">true</value>
|
||||
<value type="bool" key="IndentNamespaceBraces">false</value>
|
||||
<value type="int" key="IndentSize">4</value>
|
||||
<value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
|
||||
<value type="bool" key="IndentSwitchLabels">false</value>
|
||||
<value type="int" key="PaddingMode">1</value>
|
||||
<value type="bool" key="SpacesForTabs">true</value>
|
||||
<value type="int" key="TabSize">4</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>DisplayName</variable>
|
||||
<value type="QString">qBittorrent</value>
|
||||
</data>
|
||||
</qtcreator>
|
12
conf.pri.in
12
conf.pri.in
@@ -6,8 +6,16 @@ DATADIR = @EXPAND_DATADIR@
|
||||
MANPREFIX = @EXPAND_MANDIR@
|
||||
|
||||
QMAKE_CXXFLAGS += @QBT_CONF_EXTRA_CFLAGS@
|
||||
INCLUDEPATH += @QBT_CONF_INCLUDES@
|
||||
LIBS += @LDFLAGS@ @LIBS@
|
||||
|
||||
EXTERNAL_INCLUDES = @QBT_CONF_INCLUDES@
|
||||
EXTERNAL_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS
|
||||
# added /usr/local/include due to Qt 5.7.0 bug on macOS
|
||||
macx: EXTERNAL_INCLUDES += "/usr/local/include"
|
||||
INCLUDEPATH += $$EXTERNAL_INCLUDES
|
||||
|
||||
EXTERNAL_LIBS = @LDFLAGS@ @LIBS@
|
||||
EXTERNAL_LIBS -= $$QMAKE_DEFAULT_LIBDIRS
|
||||
LIBS += $$EXTERNAL_LIBS
|
||||
|
||||
CONFIG += @QBT_ADD_CONFIG@
|
||||
CONFIG -= @QBT_REMOVE_CONFIG@
|
||||
|
89
configure.ac
89
configure.ac
@@ -12,23 +12,11 @@ AM_INIT_AUTOMAKE
|
||||
|
||||
# Define --wth-* and --enable-* arguments
|
||||
|
||||
AC_ARG_WITH(qt5,
|
||||
[AS_HELP_STRING([--with-qt5],
|
||||
[Compile using Qt5 (default=no)])],
|
||||
AC_ARG_WITH(qt4,
|
||||
[AS_HELP_STRING([--with-qt4],
|
||||
[Compile using Qt4 (default=no)])],
|
||||
[],
|
||||
[with_qt5=no])
|
||||
|
||||
AC_ARG_WITH(libtorrent-rasterbar0.16,
|
||||
[AS_HELP_STRING([--with-libtorrent-rasterbar0.16],
|
||||
[Compile using libtorrent-rasterbar 0.16.x series (default=no)])],
|
||||
[],
|
||||
[with_libtorrent_rasterbar0_16=no])
|
||||
|
||||
AC_ARG_WITH(geoip-database-embedded,
|
||||
[AS_HELP_STRING([--with-geoip-database-embedded],
|
||||
[Embed the GeoIP database in the qBittorrent executable (please follow instructions in src/geoip/README) (default=no)])],
|
||||
[],
|
||||
[with_geoip_database_embedded=no])
|
||||
[with_qt4=no])
|
||||
|
||||
AC_ARG_WITH(qtsingleapplication,
|
||||
[AS_HELP_STRING([--with-qtsingleapplication=@<:@system|shipped@:>@],
|
||||
@@ -38,7 +26,7 @@ AC_ARG_WITH(qtsingleapplication,
|
||||
|
||||
AC_ARG_WITH(qjson,
|
||||
[AS_HELP_STRING([--with-qjson=@<:@system|shipped@:>@],
|
||||
[Use the shipped qjson library or the system one (default=shipped) (Qt4 only])],
|
||||
[Use the shipped qjson library or the system one (default=shipped) (Qt4 only)])],
|
||||
[],
|
||||
[with_qjson=shipped])
|
||||
|
||||
@@ -74,11 +62,17 @@ AC_ARG_ENABLE(qt-dbus,
|
||||
|
||||
# Detect OS
|
||||
AC_MSG_CHECKING([whether OS is FreeBSD])
|
||||
AS_IF([test "x$host_os" = "x*FreeBSD*"],
|
||||
AS_IF([expr "$host_os" : ".*freebsd.*" > /dev/null],
|
||||
[AC_MSG_RESULT([yes])
|
||||
LIBS="-lexecinfo $LIBS"],
|
||||
[AC_MSG_RESULT([no])])
|
||||
|
||||
AC_MSG_CHECKING([whether OS is macOS])
|
||||
AS_IF([expr "$host_os" : ".*darwin.*" > /dev/null],
|
||||
[AC_MSG_RESULT([yes])
|
||||
enable_qt_dbus=no],
|
||||
[AC_MSG_RESULT([no])])
|
||||
|
||||
# Require 0.23 pkg-config
|
||||
PKG_PROG_PKG_CONFIG([0.23])
|
||||
AS_IF([test "x$PKG_CONFIG" = "x"],
|
||||
@@ -107,7 +101,6 @@ AS_CASE(["x$enable_gui"],
|
||||
["xno"],
|
||||
[AC_MSG_RESULT([no])
|
||||
enable_qt_dbus=[no]
|
||||
enable_geoip_database=[no]
|
||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG nogui"],
|
||||
[AC_MSG_RESULT([$enable_gui])
|
||||
AC_MSG_ERROR([Unknown option "$enable_gui". Use either "yes" or "no".])])
|
||||
@@ -134,16 +127,16 @@ AS_CASE(["x$enable_webui"],
|
||||
[AC_MSG_RESULT([$enable_webui])
|
||||
AC_MSG_ERROR([Unknown option "$enable_webui". Use either "yes" or "no".])])
|
||||
|
||||
AC_MSG_CHECKING([whether Qt5 should be enabled])
|
||||
AS_CASE(["x$with_qt5"],
|
||||
AC_MSG_CHECKING([whether Qt4 should be enabled])
|
||||
AS_CASE(["x$with_qt4"],
|
||||
["xno"],
|
||||
[AC_MSG_RESULT([no])
|
||||
FIND_QT4()],
|
||||
FIND_QT5()],
|
||||
["xyes"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
FIND_QT5()],
|
||||
[AC_MSG_RESULT([$with_qt5])
|
||||
AC_MSG_ERROR([Unknown option "$with_qt5". Use either "yes" or "no".])])
|
||||
FIND_QT4()],
|
||||
[AC_MSG_RESULT([$with_qt4])
|
||||
AC_MSG_ERROR([Unknown option "$with_qt4". Use either "yes" or "no".])])
|
||||
AS_IF([test "x$QT_QMAKE" = "x"],
|
||||
[AC_MSG_ERROR([Could not find qmake])
|
||||
])
|
||||
@@ -181,34 +174,6 @@ AS_IF([test "x$BOOST_SYSTEM_LIB" = "x"],
|
||||
[AC_MSG_NOTICE([Boost.System LIB: $BOOST_SYSTEM_LIB])
|
||||
LIBS="$BOOST_SYSTEM_LIB $LIBS"])
|
||||
|
||||
AC_MSG_CHECKING([whether to compile using libtorrent-raser 0.16.x])
|
||||
AS_CASE(["x$with_libtorrent_rasterbar0_16"],
|
||||
["xno"],
|
||||
[AC_MSG_RESULT([no])
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.0.0],
|
||||
[CPPFLAGS="$libtorrent_CFLAGS $CPPFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])],
|
||||
["xyes"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 0.16.0],
|
||||
[CPPFLAGS="$libtorrent_CFLAGS $CPPFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])],
|
||||
[AC_MSG_RESULT([$with_libtorrent_rasterbar0_16])
|
||||
AC_MSG_ERROR([Unknown option "$with_libtorrent_rasterbar0_16". Use either "yes" or "no".])])
|
||||
|
||||
AC_MSG_CHECKING([whether to embed the GeoIP database])
|
||||
AS_CASE(["x$with_geoip_database_embedded"],
|
||||
["xno"],
|
||||
[AC_MSG_RESULT([no])
|
||||
QBT_REMOVE_DEFINES="$QBT_REMOVE_DEFINES WITH_GEOIP_EMBEDDED"],
|
||||
["xyes"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
QBT_ADD_DEFINES="$QBT_ADD_DEFINES WITH_GEOIP_EMBEDDED"],
|
||||
[AC_MSG_RESULT([$with_geoip_database_embedded])
|
||||
AC_MSG_ERROR([Unknown option "$with_geoip_database_embedded". Use either "yes" or "no".])])
|
||||
|
||||
AC_MSG_CHECKING([which qtsingleapplication to use])
|
||||
AS_CASE(["x$with_qtsingleapplication"],
|
||||
["xshipped"],
|
||||
@@ -220,7 +185,7 @@ AS_CASE(["x$with_qtsingleapplication"],
|
||||
[AC_MSG_RESULT([$with_qtsingleapplication])
|
||||
AC_MSG_ERROR([Unknown option "$with_qtsingleapplication". Use either "system" or "shipped".])])
|
||||
|
||||
AS_IF([test "x$with_qt5" = "xno"],
|
||||
AS_IF([test "x$with_qt4" = "xyes"],
|
||||
[AC_MSG_CHECKING([which qjson to use])
|
||||
AS_CASE(["x$with_qjson"],
|
||||
["xshipped"],
|
||||
@@ -237,6 +202,11 @@ AS_IF([test "x$with_qt5" = "xno"],
|
||||
AC_MSG_ERROR([Unknown option "$with_qjson". Use either "system" or "shipped".])])
|
||||
])
|
||||
|
||||
PKG_CHECK_MODULES(libtorrent,
|
||||
[libtorrent-rasterbar >= 1.0.6],
|
||||
[CPPFLAGS="$libtorrent_CFLAGS $CPPFLAGS"
|
||||
LIBS="$libtorrent_LIBS $LIBS"])
|
||||
|
||||
PKG_CHECK_MODULES(zlib,
|
||||
[zlib],
|
||||
[CPPFLAGS="$zlib_CFLAGS $CPPFLAGS"
|
||||
@@ -251,15 +221,18 @@ AX_DEFINE_DIR([EXPAND_MANDIR], [mandir])
|
||||
|
||||
# Original extract() function contributed by pmzqla
|
||||
# $*: Strings to parse
|
||||
# Set $DEFINES, $INCLUDES, $OTHER
|
||||
# Set $QBT_CONF_DEFINES, $QBT_CONF_INCLUDES, $QBT_CONF_EXTRA_CFLAGS
|
||||
extract() {
|
||||
if [[ -z "$*" ]]; then
|
||||
echo "Input string required"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Convert " -" to "\n" if not between quotes
|
||||
string=$(echo " $*" | $SED -e 's: -:\n:g' -e 's:"\(.*\)\n\(.*\)":\"\1 -\2":g' -e "s:'\(.*\)\n\(.*\)':\'\1 -\2':g")
|
||||
# BSD sed needs an actual newline character in the substitute command
|
||||
new_line='
|
||||
'
|
||||
# Convert " -" to "\n" if not between quotes and remove possible leading white spaces
|
||||
string=$(echo " $*" | $SED -e "s: -:\\${new_line}:g" -e 's:"\(.*\)\n\(.*\)":\"\1 -\2":g' -e "s:'\(.*\)\n\(.*\)':\'\1 -\2':g" -e 's/^[[:space:]]*//')
|
||||
SAVEIFS=$IFS
|
||||
IFS=$(printf "\n\b")
|
||||
for i in $string; do
|
||||
@@ -294,7 +267,7 @@ AS_IF([test "x$enable_systemd" = "xyes"],
|
||||
AC_MSG_NOTICE([Running qmake to generate the makefile...])
|
||||
CONFDIR="$( cd "$( dirname "$0" )" && pwd )"
|
||||
|
||||
$QT_QMAKE -r [$CONFDIR]/qbittorrent.pro
|
||||
$QT_QMAKE -r [$CONFDIR]/qbittorrent.pro "QMAKE_LRELEASE=$QMAKE_LRELEASE"
|
||||
|
||||
ret="$?"
|
||||
|
||||
|
10
dist/CMakeLists.txt
vendored
Normal file
10
dist/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
if (APPLE)
|
||||
add_subdirectory(mac)
|
||||
else (APPLE)
|
||||
if (UNIX)
|
||||
add_subdirectory(unix)
|
||||
endif (UNIX)
|
||||
if (WIN32)
|
||||
add_subdirectory(windows)
|
||||
endif (WIN32)
|
||||
endif (APPLE)
|
0
dist/mac/CMakeLists.txt
vendored
Normal file
0
dist/mac/CMakeLists.txt
vendored
Normal file
4
dist/mac/Info.plist
vendored
4
dist/mac/Info.plist
vendored
@@ -45,7 +45,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.2.0</string>
|
||||
<string>3.3.8</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>qBit</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
@@ -59,7 +59,7 @@
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<string>YES</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2006-2013 The qBittorrent project</string>
|
||||
<string>Copyright © 2006-2016 The qBittorrent project</string>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
2
dist/mac/bundle.cmake
vendored
Normal file
2
dist/mac/bundle.cmake
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
include(BundleUtilities)
|
||||
fixup_bundle("$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/qbittorrent.app" "" "")
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user