Compare commits
1267 Commits
2015-07-05
...
2474-serve
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
894828962b | ||
|
|
2bf444e4b7 | ||
|
|
c1d25bf58b | ||
|
|
544c66edde | ||
|
|
5a4f020196 | ||
|
|
ec081b8b03 | ||
|
|
9a8c81cf5e | ||
|
|
5e38214675 | ||
|
|
ba985f97e5 | ||
|
|
c9c0fb28ee | ||
|
|
6e1b0a7590 | ||
|
|
3562a48984 | ||
|
|
bb4ca4db4a | ||
|
|
c51377ca2a | ||
|
|
c3d94a51ec | ||
|
|
7cd9b9c0c8 | ||
|
|
0dcf97d29d | ||
|
|
ebc881fa1c | ||
|
|
37f9f62f03 | ||
|
|
1ace060e34 | ||
|
|
495e232c22 | ||
|
|
ed70099e36 | ||
|
|
19180243aa | ||
|
|
a08cf9379b | ||
|
|
1c6b43c545 | ||
|
|
41bfbf2e83 | ||
|
|
273d5d89b7 | ||
|
|
b0e643ecc0 | ||
|
|
4eda7cda9e | ||
|
|
463ef13fe0 | ||
|
|
ce140041e3 | ||
|
|
84f6da103f | ||
|
|
2621cc09ac | ||
|
|
40f787be14 | ||
|
|
59300e61fc | ||
|
|
ab1c4cb1d7 | ||
|
|
4616dd47bc | ||
|
|
94fe64c6c1 | ||
|
|
65f41e520e | ||
|
|
cee69705d8 | ||
|
|
3a05bcfb29 | ||
|
|
e921cf88f9 | ||
|
|
952f13dec4 | ||
|
|
ed2a3f92e0 | ||
|
|
f1563c5604 | ||
|
|
06081bd940 | ||
|
|
843b9df939 | ||
|
|
c7b8f3e923 | ||
|
|
964bb0974c | ||
|
|
3f40a51cdb | ||
|
|
d9b11858fb | ||
|
|
ec61d1f012 | ||
|
|
af2bce7141 | ||
|
|
6b6c6c71ca | ||
|
|
57f15a9e98 | ||
|
|
72ed98e404 | ||
|
|
f70699d3de | ||
|
|
638ee1af4a | ||
|
|
8028bad7b1 | ||
|
|
e1e9caf0ef | ||
|
|
8b7a287b44 | ||
|
|
0cd671c022 | ||
|
|
051fcff284 | ||
|
|
4e3d499162 | ||
|
|
7e6c4d8a6c | ||
|
|
1fc0774270 | ||
|
|
986e405ca7 | ||
|
|
75203cf385 | ||
|
|
bc2cb59c50 | ||
|
|
cf9fdcd09e | ||
|
|
eb4b1e74f1 | ||
|
|
70005a6f1d | ||
|
|
1415a4dafa | ||
|
|
8b567427c2 | ||
|
|
3605a2ca0e | ||
|
|
c58abadff1 | ||
|
|
135c02ea41 | ||
|
|
ed01752cb4 | ||
|
|
e341337ce0 | ||
|
|
e09ea1e683 | ||
|
|
cbd430555f | ||
|
|
8239539946 | ||
|
|
e467698d72 | ||
|
|
846b426a7c | ||
|
|
f1eab4e26a | ||
|
|
283ce23111 | ||
|
|
451e1874a7 | ||
|
|
69c103ede3 | ||
|
|
ac0f92bac6 | ||
|
|
aa308717de | ||
|
|
2d0d29fb5c | ||
|
|
cba1ca8d5b | ||
|
|
c12c3c071f | ||
|
|
d37d73017f | ||
|
|
a766aa7d8a | ||
|
|
b61c07a205 | ||
|
|
c01aad6767 | ||
|
|
d0d662f73a | ||
|
|
3ae363cf4b | ||
|
|
4796110afb | ||
|
|
dc727cb620 | ||
|
|
87eb132af1 | ||
|
|
2354a6f89d | ||
|
|
1618e89c41 | ||
|
|
e223f07462 | ||
|
|
f70e87c5a0 | ||
|
|
0b3e86e307 | ||
|
|
a5ea4f7da2 | ||
|
|
4e75a74bfd | ||
|
|
c7072cd543 | ||
|
|
5e0bfc3193 | ||
|
|
b316a5d541 | ||
|
|
e147bd6cea | ||
|
|
d36f86c523 | ||
|
|
81803e2612 | ||
|
|
91b3c7343d | ||
|
|
1276c8dd46 | ||
|
|
89ab7f1f67 | ||
|
|
664d717e17 | ||
|
|
494dfc2f4b | ||
|
|
3a05d063af | ||
|
|
f97959febc | ||
|
|
b3df71ae41 | ||
|
|
ec4a99e47b | ||
|
|
ad66a48b8e | ||
|
|
7a2558d834 | ||
|
|
3b3f5a639c | ||
|
|
9acf606e93 | ||
|
|
4cdd17945d | ||
|
|
c06fc562a1 | ||
|
|
73fb9ee03e | ||
|
|
4e10ce7473 | ||
|
|
a7f4aace9c | ||
|
|
9727699e26 | ||
|
|
2520d07ef2 | ||
|
|
661e00f563 | ||
|
|
2780270911 | ||
|
|
8a5baa4637 | ||
|
|
f5eb05b682 | ||
|
|
f309ddf28a | ||
|
|
67a2a8cf08 | ||
|
|
1fbdea0f35 | ||
|
|
cc2a0fa0d0 | ||
|
|
034e79dd36 | ||
|
|
5c03f18c72 | ||
|
|
61e509585f | ||
|
|
0c10b66a2d | ||
|
|
7758145e71 | ||
|
|
37ab7b8fb1 | ||
|
|
42d15c39a0 | ||
|
|
a0d84114de | ||
|
|
706054ea96 | ||
|
|
7d5a33b12c | ||
|
|
a056a882c3 | ||
|
|
f89f6438c9 | ||
|
|
e25b7e9eb8 | ||
|
|
ca2e05952e | ||
|
|
2fcb02cadd | ||
|
|
e1394bd851 | ||
|
|
6374d157fc | ||
|
|
5df547ee53 | ||
|
|
2a9d76f090 | ||
|
|
5859fa2f20 | ||
|
|
312caae062 | ||
|
|
281e52eaa9 | ||
|
|
66958b5975 | ||
|
|
941a06e107 | ||
|
|
7cfbf114b7 | ||
|
|
2409eae940 | ||
|
|
3d2c7b6670 | ||
|
|
65ef66cfa7 | ||
|
|
019295931a | ||
|
|
c8a10a9997 | ||
|
|
4e8a09517c | ||
|
|
f302154df7 | ||
|
|
11ad677fe8 | ||
|
|
8084ab605f | ||
|
|
af5a04abf1 | ||
|
|
3426a6b201 | ||
|
|
51eeac0541 | ||
|
|
2206328406 | ||
|
|
501e82f712 | ||
|
|
ab3989aeba | ||
|
|
a0d6a342d3 | ||
|
|
35159ef61a | ||
|
|
fcfb2b12b7 | ||
|
|
4cbec71882 | ||
|
|
b58aa459a4 | ||
|
|
8a8b580501 | ||
|
|
c9525af624 | ||
|
|
aba47719b2 | ||
|
|
b6b4d7e4a0 | ||
|
|
63d0f5af43 | ||
|
|
517420cccb | ||
|
|
3e418ba3c6 | ||
|
|
c1bd50f186 | ||
|
|
d13cf65a10 | ||
|
|
994a643d9c | ||
|
|
e127cb74b6 | ||
|
|
3c3e6ae68a | ||
|
|
b29bd9e070 | ||
|
|
8dbdd24c8e | ||
|
|
04ab3d7f13 | ||
|
|
03d0a84ef5 | ||
|
|
14a0c53fc1 | ||
|
|
da7c7c1f83 | ||
|
|
261d3ac591 | ||
|
|
55029b6b68 | ||
|
|
bc52882ac4 | ||
|
|
d1b95aad16 | ||
|
|
691bf36fbe | ||
|
|
5a823becf1 | ||
|
|
feeaba1d62 | ||
|
|
ebec30dd1c | ||
|
|
5757d60b1d | ||
|
|
81fcc3c11a | ||
|
|
34bec90193 | ||
|
|
dcc632e0d4 | ||
|
|
7a150c558d | ||
|
|
3a11aebb21 | ||
|
|
8825e2932a | ||
|
|
cd558a9722 | ||
|
|
cc822dd8df | ||
|
|
6fc1aaef90 | ||
|
|
c8122c94ef | ||
|
|
e6e6932dbb | ||
|
|
d124e6ac22 | ||
|
|
7efab80d9b | ||
|
|
d19744236e | ||
|
|
51ec593759 | ||
|
|
87c978937d | ||
|
|
dfaa85847c | ||
|
|
74dbf75c5b | ||
|
|
f0f73c8f77 | ||
|
|
3af2be4539 | ||
|
|
5b8e0dc8ec | ||
|
|
b75882b6b9 | ||
|
|
2abfd3b4a9 | ||
|
|
014b9947fe | ||
|
|
ec4e6d53df | ||
|
|
0eae4dbe54 | ||
|
|
297f1f2555 | ||
|
|
7e80f4b4ae | ||
|
|
6e24f59826 | ||
|
|
5e00faed5d | ||
|
|
6c038a91e4 | ||
|
|
4d641eb0e7 | ||
|
|
59824cf4dd | ||
|
|
b615b5b33e | ||
|
|
3dc2526f0a | ||
|
|
6bc39a4f6f | ||
|
|
422c899cdb | ||
|
|
e96a250bf1 | ||
|
|
563e96e051 | ||
|
|
4baaf978f5 | ||
|
|
6b6ba9a8f1 | ||
|
|
fcb0daf80f | ||
|
|
a3ca459526 | ||
|
|
17202e8dba | ||
|
|
ff6b0f86ec | ||
|
|
96b30da492 | ||
|
|
9cbdc4195e | ||
|
|
ada262b826 | ||
|
|
78e299fdfd | ||
|
|
cf5cd21c50 | ||
|
|
b684c12964 | ||
|
|
df8c38b649 | ||
|
|
1424de2c54 | ||
|
|
7875407795 | ||
|
|
ef89104503 | ||
|
|
ccee0aa3fd | ||
|
|
a6d3229e74 | ||
|
|
93d8ac10ff | ||
|
|
04d84f9d9a | ||
|
|
2557a2183d | ||
|
|
e694cbe854 | ||
|
|
3963570838 | ||
|
|
dd05b86bc9 | ||
|
|
af3423e67d | ||
|
|
7c8daf68ea | ||
|
|
6b1ea9186a | ||
|
|
e90c389212 | ||
|
|
556d19ff70 | ||
|
|
838ab888db | ||
|
|
1cb3d88e35 | ||
|
|
1366e5970e | ||
|
|
1565309146 | ||
|
|
b05ed0376a | ||
|
|
61893faf3b | ||
|
|
e8dbdc3c6d | ||
|
|
5abfda49be | ||
|
|
bcda502b46 | ||
|
|
03bb02f75b | ||
|
|
bfcc48f5bf | ||
|
|
ae15f5df06 | ||
|
|
029a4a39ad | ||
|
|
9ddb18a35e | ||
|
|
2094910b7a | ||
|
|
b36c349f9b | ||
|
|
99e7458f9b | ||
|
|
0a57229886 | ||
|
|
f3f83882e0 | ||
|
|
d970b9e50f | ||
|
|
b0d8a31a2e | ||
|
|
03a7a9fafb | ||
|
|
4c953acebc | ||
|
|
c5ac61c797 | ||
|
|
f75caa7245 | ||
|
|
87060dc5c7 | ||
|
|
62681f7f8d | ||
|
|
b53cd33eed | ||
|
|
405a719412 | ||
|
|
aca6917d42 | ||
|
|
73e2c3d32f | ||
|
|
7f273b547b | ||
|
|
77e0cddbae | ||
|
|
d9230d6c6b | ||
|
|
f00bcc9179 | ||
|
|
b47e262e7f | ||
|
|
1811bad835 | ||
|
|
41ebf7a9ad | ||
|
|
7f01f921f7 | ||
|
|
d347e54526 | ||
|
|
256e40a9ee | ||
|
|
5f4490ec4e | ||
|
|
2fb2481211 | ||
|
|
d585b9f1d6 | ||
|
|
c745f41cb9 | ||
|
|
5b07f6d6d8 | ||
|
|
39779be7bb | ||
|
|
70f1c97a27 | ||
|
|
a49373eded | ||
|
|
55dcf4a845 | ||
|
|
b140721d50 | ||
|
|
c96f234b6d | ||
|
|
a4e78bbfa2 | ||
|
|
fd3d62284d | ||
|
|
16bc8b764b | ||
|
|
36f6907fa3 | ||
|
|
339945e089 | ||
|
|
faeb3f8daf | ||
|
|
e04010f00b | ||
|
|
cbd9d2c4fc | ||
|
|
fdc82708c6 | ||
|
|
8f7691b47a | ||
|
|
ca2e3e5eab | ||
|
|
da42d9e049 | ||
|
|
f18679bfff | ||
|
|
970b67cdb6 | ||
|
|
3c5e38bd14 | ||
|
|
b20c60e603 | ||
|
|
12c9e4b81a | ||
|
|
7c1a18da5e | ||
|
|
df211748ca | ||
|
|
ce77d51a8f | ||
|
|
9dd3a04a08 | ||
|
|
62d8f5a039 | ||
|
|
2c551bdd35 | ||
|
|
0fd77346df | ||
|
|
a46c7156dd | ||
|
|
3c54499a40 | ||
|
|
160d66d890 | ||
|
|
3f3839d70a | ||
|
|
ab94d2c91d | ||
|
|
8ad448a23c | ||
|
|
acb40bc738 | ||
|
|
f2a887a6a4 | ||
|
|
29904c49da | ||
|
|
38ad71b06a | ||
|
|
7f057612bf | ||
|
|
9d2494e6e2 | ||
|
|
23d27cff77 | ||
|
|
176ea444ba | ||
|
|
3e12a5f67f | ||
|
|
3356b2ede7 | ||
|
|
5f3a3f535a | ||
|
|
e2e9c5ab96 | ||
|
|
dd36187864 | ||
|
|
dc6c375220 | ||
|
|
2e9a0bdd4d | ||
|
|
1413337b24 | ||
|
|
3b7990b569 | ||
|
|
657e1ac9e6 | ||
|
|
ee154da598 | ||
|
|
b3c1a87f60 | ||
|
|
9cbae8c707 | ||
|
|
ef7670a1e6 | ||
|
|
d7e5b29d41 | ||
|
|
6d07709174 | ||
|
|
51230ade1a | ||
|
|
0e6c3c9561 | ||
|
|
56ec219808 | ||
|
|
fab3d24757 | ||
|
|
87ebea7b0f | ||
|
|
a273f55b6f | ||
|
|
06c3edf4c6 | ||
|
|
6f30304271 | ||
|
|
3374576831 | ||
|
|
54911eebc1 | ||
|
|
b3563a897e | ||
|
|
1879b906e5 | ||
|
|
559d4bd47f | ||
|
|
b99ae7f463 | ||
|
|
f5a5ea0434 | ||
|
|
2f23a9cb2f | ||
|
|
317ac05919 | ||
|
|
f688c046ab | ||
|
|
141e6df50a | ||
|
|
8ac2a5870d | ||
|
|
a3f4012d1a | ||
|
|
c5aa75d4d1 | ||
|
|
d65a444ac5 | ||
|
|
2c3b85aed3 | ||
|
|
85985a9433 | ||
|
|
33e8a2ea95 | ||
|
|
5ebc9ca360 | ||
|
|
4feb43cdcc | ||
|
|
b5b9527c13 | ||
|
|
a2a7561613 | ||
|
|
1cc50b2793 | ||
|
|
2d401e4aba | ||
|
|
0da2bdd7aa | ||
|
|
212a7d00db | ||
|
|
3b2eff2551 | ||
|
|
fb194db766 | ||
|
|
127a91147c | ||
|
|
2048aac387 | ||
|
|
a8a4557738 | ||
|
|
a7dbc2e1f6 | ||
|
|
4cfcca33db | ||
|
|
37b43f9916 | ||
|
|
6e723b2a99 | ||
|
|
2817f54c96 | ||
|
|
f9a025081a | ||
|
|
877a5ca3b1 | ||
|
|
0d34fc5df2 | ||
|
|
72825c43ec | ||
|
|
bf154559eb | ||
|
|
bd850fa3ff | ||
|
|
b2f2e9db8a | ||
|
|
88b4e768c4 | ||
|
|
638c5e25fa | ||
|
|
ba0029f448 | ||
|
|
c850ae98d8 | ||
|
|
12539026c5 | ||
|
|
18b8a0ef5c | ||
|
|
ab19a89cd2 | ||
|
|
6619612c30 | ||
|
|
b8334d0cd5 | ||
|
|
cf08d1d267 | ||
|
|
2bad56f6b6 | ||
|
|
160c4cea6b | ||
|
|
7373819c32 | ||
|
|
b9cd942308 | ||
|
|
c0e7d0c7c7 | ||
|
|
d0088f6a18 | ||
|
|
3c2063df40 | ||
|
|
47cafde521 | ||
|
|
884e604909 | ||
|
|
9ba3f21730 | ||
|
|
24c95e00ed | ||
|
|
651128257f | ||
|
|
172fc79327 | ||
|
|
90c62c8ab8 | ||
|
|
0cfa6863d5 | ||
|
|
b64eab204c | ||
|
|
0fdb9b7c83 | ||
|
|
dab731656d | ||
|
|
ae5fc1fe2c | ||
|
|
d45293489f | ||
|
|
bdb8e931b4 | ||
|
|
784a75db02 | ||
|
|
cdeb1a7f9a | ||
|
|
a85b0dcbba | ||
|
|
93c7b1b846 | ||
|
|
3e39432ccc | ||
|
|
dbf7d7f748 | ||
|
|
847d959326 | ||
|
|
2d216807c7 | ||
|
|
f7c8651d51 | ||
|
|
62dc6dcb86 | ||
|
|
36e6da2abd | ||
|
|
3d0600b516 | ||
|
|
04779c2a77 | ||
|
|
42fb17bdd2 | ||
|
|
960ecaaeda | ||
|
|
e0636db60d | ||
|
|
c9a8dafd01 | ||
|
|
c78eed576f | ||
|
|
f86b9e0be7 | ||
|
|
a6f1f4c01d | ||
|
|
c90c4ea41f | ||
|
|
d039c9b6bd | ||
|
|
f6e4ee9a4a | ||
|
|
6962777ded | ||
|
|
1cebe030f6 | ||
|
|
a2f4fa916e | ||
|
|
9ebbd0c3ca | ||
|
|
21a34eaaa1 | ||
|
|
3498b16e01 | ||
|
|
a1840ea9d3 | ||
|
|
63a4f147f4 | ||
|
|
dfc4d9937b | ||
|
|
e67dfe05db | ||
|
|
f17a0da434 | ||
|
|
1197c10a70 | ||
|
|
b060f4ea6b | ||
|
|
749bc5d6f5 | ||
|
|
b808d3824b | ||
|
|
2dd7158802 | ||
|
|
32d2fa13f6 | ||
|
|
05f90a74a4 | ||
|
|
989c91f1d1 | ||
|
|
c3ef53d6fd | ||
|
|
632a2db18e | ||
|
|
40468a79ea | ||
|
|
0b7f4c134c | ||
|
|
10b677acdf | ||
|
|
f20e2ce2bd | ||
|
|
696b11475e | ||
|
|
a4b1a79cd4 | ||
|
|
1cbf67ab57 | ||
|
|
89ceb889e0 | ||
|
|
7af2f3f057 | ||
|
|
000f6ea2c0 | ||
|
|
e4127fead3 | ||
|
|
d8f7c57eff | ||
|
|
2376a7dbc0 | ||
|
|
c1aebc1af5 | ||
|
|
3680f40981 | ||
|
|
2a7fc827f4 | ||
|
|
6825486776 | ||
|
|
a7a0ea23ca | ||
|
|
85063859e0 | ||
|
|
b23a53eb1e | ||
|
|
6c7ba06930 | ||
|
|
65c98c8422 | ||
|
|
c4bb16e74b | ||
|
|
54cc0c2af6 | ||
|
|
0e8206a36f | ||
|
|
018a4736c6 | ||
|
|
8b1aaea79d | ||
|
|
7f28a7e844 | ||
|
|
680277ad6a | ||
|
|
bf4fba6bc5 | ||
|
|
8571815cbd | ||
|
|
ae456a5bc3 | ||
|
|
da2eb97c7b | ||
|
|
ac841ee2c6 | ||
|
|
c321227fa7 | ||
|
|
a68df3611b | ||
|
|
0f0f9a1246 | ||
|
|
1834e09c0f | ||
|
|
0df4b34fe4 | ||
|
|
8644016d3c | ||
|
|
8eb36fa2f1 | ||
|
|
deb6d4dec6 | ||
|
|
5002c293c7 | ||
|
|
2cbfc5a8e6 | ||
|
|
f87f677cad | ||
|
|
569ae87cbe | ||
|
|
f2cd276e5f | ||
|
|
1c1192c525 | ||
|
|
b39a18b446 | ||
|
|
c04298fb43 | ||
|
|
8060c8f37b | ||
|
|
63bf0029aa | ||
|
|
600a8e8c60 | ||
|
|
a83816f858 | ||
|
|
8d989ca7fb | ||
|
|
d61d9c98a0 | ||
|
|
b28b174056 | ||
|
|
36e62df67d | ||
|
|
d82564d84c | ||
|
|
3365e0461c | ||
|
|
69e8db441c | ||
|
|
0939cd8b21 | ||
|
|
b0efcf9f89 | ||
|
|
81006d5342 | ||
|
|
edd50a7571 | ||
|
|
cbff59ae59 | ||
|
|
deb8a2c954 | ||
|
|
0c731e378a | ||
|
|
1a38e4ef98 | ||
|
|
8cd5803556 | ||
|
|
a729b1c966 | ||
|
|
8ac1469fdb | ||
|
|
a11e57503e | ||
|
|
35df6485ab | ||
|
|
d4ced6f6af | ||
|
|
430f1baf2f | ||
|
|
e29230953d | ||
|
|
6a152ffbac | ||
|
|
07bc215b3e | ||
|
|
b64ff6f930 | ||
|
|
3717c7440a | ||
|
|
066aff96d7 | ||
|
|
089edc53d0 | ||
|
|
e038534a51 | ||
|
|
b61e023267 | ||
|
|
2a11466779 | ||
|
|
60f457827f | ||
|
|
277d7e2173 | ||
|
|
c095daa282 | ||
|
|
7f2e39500e | ||
|
|
670f55bc28 | ||
|
|
a045cf1c41 | ||
|
|
b032f71b22 | ||
|
|
9807bcb48f | ||
|
|
60ada0c278 | ||
|
|
204f351a61 | ||
|
|
8db10be892 | ||
|
|
5b21dc8cde | ||
|
|
c19f225806 | ||
|
|
7282aa7eea | ||
|
|
e81a6d497b | ||
|
|
79fc24769a | ||
|
|
287bed7e6d | ||
|
|
85c6bcdfa7 | ||
|
|
57f9b2c200 | ||
|
|
1782096805 | ||
|
|
bfbbedd604 | ||
|
|
f6a3551168 | ||
|
|
1bc56e1c86 | ||
|
|
b40d9da01d | ||
|
|
82742bbd47 | ||
|
|
f7d1802390 | ||
|
|
0baccd3c00 | ||
|
|
d51a6c1ae7 | ||
|
|
016601bdc2 | ||
|
|
4e198bdf70 | ||
|
|
32f8eb308a | ||
|
|
47de7beac1 | ||
|
|
1ff98cfcb4 | ||
|
|
c25eae9d23 | ||
|
|
e50c2014d1 | ||
|
|
829c96673b | ||
|
|
4ffec331dc | ||
|
|
dff5d89beb | ||
|
|
cf3e172d25 | ||
|
|
575376403f | ||
|
|
089acfd84a | ||
|
|
36470c5061 | ||
|
|
fffc3e7e00 | ||
|
|
114537445d | ||
|
|
8dd8b434b2 | ||
|
|
7bc14b594d | ||
|
|
d12c86d89c | ||
|
|
bb5292aa8d | ||
|
|
e3fb308ea1 | ||
|
|
0163d7af99 | ||
|
|
449982553a | ||
|
|
d46cdd8044 | ||
|
|
2ab320923f | ||
|
|
01e467fa98 | ||
|
|
7d0d0f4ea9 | ||
|
|
a42ef63ec4 | ||
|
|
a93bef1de5 | ||
|
|
ff1091ac02 | ||
|
|
a4359244bc | ||
|
|
c213b67fc4 | ||
|
|
af3b4ded22 | ||
|
|
6bebbf284f | ||
|
|
c01d526161 | ||
|
|
2e3966afce | ||
|
|
5b4a774725 | ||
|
|
11dfee404d | ||
|
|
a92b2ba600 | ||
|
|
d75d69400f | ||
|
|
a340d25077 | ||
|
|
768a1c5fb4 | ||
|
|
993cbf5ae9 | ||
|
|
6f84f921f3 | ||
|
|
44d34673f4 | ||
|
|
03af9afe17 | ||
|
|
cb29e0a057 | ||
|
|
a72f9af984 | ||
|
|
14d731da98 | ||
|
|
4f30b5cd31 | ||
|
|
73da10e485 | ||
|
|
b4d572158d | ||
|
|
963e5d7f33 | ||
|
|
8c17e2d12a | ||
|
|
8d67c75028 | ||
|
|
c7061523e6 | ||
|
|
2e7298d064 | ||
|
|
948a5c62ef | ||
|
|
e9736d298e | ||
|
|
4691f3e2c5 | ||
|
|
2b138cce93 | ||
|
|
ef62261e43 | ||
|
|
2a3701b036 | ||
|
|
ce56e5f1a4 | ||
|
|
58f85e7ebd | ||
|
|
f217551f5f | ||
|
|
55f3e9314b | ||
|
|
830a4c2f56 | ||
|
|
44123b9b0b | ||
|
|
506ad91b03 | ||
|
|
ee849f6379 | ||
|
|
e94f59d7c2 | ||
|
|
3c58003a3d | ||
|
|
9f3b50086d | ||
|
|
2d2958e931 | ||
|
|
a55b3784eb | ||
|
|
18993b397b | ||
|
|
ba3a9f83bc | ||
|
|
df393638ed | ||
|
|
535e19f8b8 | ||
|
|
27969b6752 | ||
|
|
41494b49dd | ||
|
|
68e2fb912f | ||
|
|
1e3fb6c6e1 | ||
|
|
cbea43267e | ||
|
|
62cb89d224 | ||
|
|
0b8f52e084 | ||
|
|
3ba3f1e2a7 | ||
|
|
49c22f3810 | ||
|
|
b462f95343 | ||
|
|
f31a89ebbb | ||
|
|
b2c1ae264b | ||
|
|
754e666eaa | ||
|
|
bc79d9e2f8 | ||
|
|
ac06544849 | ||
|
|
66634c9b3d | ||
|
|
108ec145b7 | ||
|
|
4e78d6ec95 | ||
|
|
bf42319296 | ||
|
|
4f1d3c3269 | ||
|
|
e3064727c3 | ||
|
|
2418b8017d | ||
|
|
2d43ab9f50 | ||
|
|
aac2d09f48 | ||
|
|
195ab9a150 | ||
|
|
5b22187a3d | ||
|
|
36f1536b09 | ||
|
|
a8c723326d | ||
|
|
ae8296a50e | ||
|
|
93d4f78715 | ||
|
|
8f819dfa66 | ||
|
|
aa658f95f6 | ||
|
|
d078cf52c9 | ||
|
|
96fbad1f0c | ||
|
|
829f84fe50 | ||
|
|
0ef2b48902 | ||
|
|
5a975831d4 | ||
|
|
058b913455 | ||
|
|
cddb45085c | ||
|
|
9d3c4f20a1 | ||
|
|
802ccd7f14 | ||
|
|
b5363f47ab | ||
|
|
927226633d | ||
|
|
de388a74bd | ||
|
|
54a759497f | ||
|
|
c914395236 | ||
|
|
2960cba12b | ||
|
|
646c4b4197 | ||
|
|
9846fb1d8e | ||
|
|
154da4452d | ||
|
|
323fc06885 | ||
|
|
50dde5dde1 | ||
|
|
54ebb6a508 | ||
|
|
f35c047dee | ||
|
|
7c128f69b0 | ||
|
|
7de8e8a6a7 | ||
|
|
5dd20181fd | ||
|
|
14e94f1f8b | ||
|
|
5fcd8a73ff | ||
|
|
ee42d547bf | ||
|
|
5577d618bd | ||
|
|
b6f3630cbf | ||
|
|
d79d65797f | ||
|
|
7ec3968c02 | ||
|
|
133693d9ce | ||
|
|
9767b1f69d | ||
|
|
d2e731bb2b | ||
|
|
66fda086c3 | ||
|
|
f0be9f7f9b | ||
|
|
00afe74a3b | ||
|
|
f57e0454bb | ||
|
|
36c3536e0c | ||
|
|
2789e0df19 | ||
|
|
5146db7a17 | ||
|
|
bacb289eff | ||
|
|
f7f9827b91 | ||
|
|
0318ae8087 | ||
|
|
ad0334e734 | ||
|
|
fc59a33b84 | ||
|
|
e337775d72 | ||
|
|
0734b81e6e | ||
|
|
3605cc55b7 | ||
|
|
5350302969 | ||
|
|
c415d4d70e | ||
|
|
953b183dab | ||
|
|
3ed3919349 | ||
|
|
924bbb2245 | ||
|
|
e0a25e74ac | ||
|
|
f568a4e865 | ||
|
|
9efa9cda71 | ||
|
|
703ff7905c | ||
|
|
da0e3292d3 | ||
|
|
2bf998b7d3 | ||
|
|
8a6d63265f | ||
|
|
fddcbb8296 | ||
|
|
c917a6c272 | ||
|
|
c4508cd055 | ||
|
|
137d7328b5 | ||
|
|
04797eaf48 | ||
|
|
49b22b7d2f | ||
|
|
4b1c59424e | ||
|
|
f03051b6cf | ||
|
|
e721280bc0 | ||
|
|
4d7795ca3a | ||
|
|
aebc18fc3f | ||
|
|
4e17014ebf | ||
|
|
81cad7cefd | ||
|
|
0e1c26a071 | ||
|
|
696ae7e85f | ||
|
|
25d77fb64a | ||
|
|
7e6972a358 | ||
|
|
5093ea4170 | ||
|
|
f5749886ee | ||
|
|
2712dd4248 | ||
|
|
ade0a4b7e2 | ||
|
|
5636b43e67 | ||
|
|
db8548521c | ||
|
|
1a6a1171e6 | ||
|
|
a637ff7cfa | ||
|
|
0e229ad1fd | ||
|
|
ed4149fa7b | ||
|
|
ea7db15597 | ||
|
|
53191fcb99 | ||
|
|
ce6c97bcef | ||
|
|
a17c300a41 | ||
|
|
93566840b9 | ||
|
|
3aac8930cc | ||
|
|
586d580864 | ||
|
|
8167448284 | ||
|
|
0c137e8a10 | ||
|
|
de6235f69c | ||
|
|
a07b72a031 | ||
|
|
7e63f44c04 | ||
|
|
deec7cdc14 | ||
|
|
803589264d | ||
|
|
beecc0f970 | ||
|
|
0286cd3df0 | ||
|
|
91bb2b2954 | ||
|
|
a6ff54ae0e | ||
|
|
bc44f8ce2a | ||
|
|
d9c0c97ae7 | ||
|
|
9963e9dfe7 | ||
|
|
813a0c2070 | ||
|
|
77b9aa7c36 | ||
|
|
64c15d1fdc | ||
|
|
ea5666c443 | ||
|
|
fc8aa32d7f | ||
|
|
8001b05ce7 | ||
|
|
613f712974 | ||
|
|
75eb779826 | ||
|
|
23e84273ed | ||
|
|
8f674bd18c | ||
|
|
4dba476ab6 | ||
|
|
bab4a51ebb | ||
|
|
0c67cb6cb3 | ||
|
|
5fed8d04d6 | ||
|
|
b63475829b | ||
|
|
7fe60279de | ||
|
|
3ebe42c400 | ||
|
|
cd02df78a1 | ||
|
|
784148e158 | ||
|
|
43262b294d | ||
|
|
b0e9e0fb3a | ||
|
|
74c58cc2b0 | ||
|
|
d09b75a3c0 | ||
|
|
30531683f4 | ||
|
|
56f8ddc1f6 | ||
|
|
ab2a6867b5 | ||
|
|
9d4882415a | ||
|
|
3e9610a084 | ||
|
|
ca9bfc9ff2 | ||
|
|
6a869906d9 | ||
|
|
35815a894a | ||
|
|
acbe2b0b3c | ||
|
|
a9f2cd73de | ||
|
|
8e348455f9 | ||
|
|
9c4bd8ebed | ||
|
|
7d7151135e | ||
|
|
c1663d578a | ||
|
|
7a4cabaf67 | ||
|
|
291b262b64 | ||
|
|
b65882f7ce | ||
|
|
d55e44ea60 | ||
|
|
d5adec53a2 | ||
|
|
064c89ba5c | ||
|
|
ad55c3e198 | ||
|
|
62ffcde6bd | ||
|
|
e68b8b314a | ||
|
|
6ad2a59367 | ||
|
|
e0383af6dd | ||
|
|
ac16602f08 | ||
|
|
f6c7f3355f | ||
|
|
3f70513096 | ||
|
|
8125358052 | ||
|
|
7a4bf9a313 | ||
|
|
aacbe93d04 | ||
|
|
b8732a54bb | ||
|
|
cd7b25f712 | ||
|
|
2df50f5766 | ||
|
|
599ef0ae62 | ||
|
|
1409b97490 | ||
|
|
1182ee191c | ||
|
|
ccc8ac4826 | ||
|
|
2a20b6028e | ||
|
|
ead6ab3ad6 | ||
|
|
b0693299c7 | ||
|
|
afc425e6a5 | ||
|
|
0dc8fe9e73 | ||
|
|
0ce38ea88e | ||
|
|
8eacd85d68 | ||
|
|
c7c84bca8f | ||
|
|
04a96e96bb | ||
|
|
1bec6dc37a | ||
|
|
814553dae6 | ||
|
|
385455e77c | ||
|
|
87a64da1bc | ||
|
|
3412ce2f7d | ||
|
|
4c6b543cbe | ||
|
|
f97a7e8370 | ||
|
|
6257ea701e | ||
|
|
a6bc709583 | ||
|
|
5aaae5279c | ||
|
|
f2864ce569 | ||
|
|
f78c01fa88 | ||
|
|
59da62d240 | ||
|
|
46f78fcead | ||
|
|
85aa866e02 | ||
|
|
28df389ea6 | ||
|
|
dfe9719637 | ||
|
|
00e3e63f41 | ||
|
|
d5afd97ff4 | ||
|
|
32df2c29ed | ||
|
|
73677e16f6 | ||
|
|
226a8cc017 | ||
|
|
4c9555bb59 | ||
|
|
29446d80d4 | ||
|
|
e4470acb84 | ||
|
|
669568b918 | ||
|
|
a06c7b2f9d | ||
|
|
6d56e0dfd6 | ||
|
|
0b072e2d60 | ||
|
|
b2f855aeb0 | ||
|
|
a7616835e3 | ||
|
|
90cb890cc2 | ||
|
|
badbcf2753 | ||
|
|
3bc61eb2e9 | ||
|
|
d6398477ae | ||
|
|
05aa8b2c92 | ||
|
|
d7d50def51 | ||
|
|
7bfea03af8 | ||
|
|
c984a7c962 | ||
|
|
fcc5370082 | ||
|
|
5951c95e81 | ||
|
|
c214234bb2 | ||
|
|
09b926a7ac | ||
|
|
aac980a8cb | ||
|
|
601ada8473 | ||
|
|
b47aa86c84 | ||
|
|
73f2d2b0e5 | ||
|
|
433c5703e7 | ||
|
|
4ee12f0b69 | ||
|
|
db18c7da10 | ||
|
|
3be1bcd356 | ||
|
|
50aa6e3a4d | ||
|
|
f14ebb0028 | ||
|
|
2a83f6dd4b | ||
|
|
36f19be06a | ||
|
|
dd4900b038 | ||
|
|
e50d0c6db2 | ||
|
|
15e8121cf2 | ||
|
|
9dc77d674f | ||
|
|
60ed9fd1ff | ||
|
|
4eb708c3b0 | ||
|
|
44fefc20c2 | ||
|
|
d97a9bdb15 | ||
|
|
48f68343a2 | ||
|
|
b4c5729bf5 | ||
|
|
dbbfa82977 | ||
|
|
ebc4011559 | ||
|
|
f4ae08f8b1 | ||
|
|
044c2356ff | ||
|
|
3188ef4cde | ||
|
|
baa61d0571 | ||
|
|
0a9057d1b8 | ||
|
|
d9ecb5db8b | ||
|
|
f5f5074023 | ||
|
|
6d7baec37b | ||
|
|
5cfb034452 | ||
|
|
949b0183c8 | ||
|
|
de073a51d6 | ||
|
|
66c19ab727 | ||
|
|
13e536013e | ||
|
|
66dce1bf46 | ||
|
|
8bb6bb04d7 | ||
|
|
d8b53f9345 | ||
|
|
c0a0775323 | ||
|
|
3c1a7bc760 | ||
|
|
6a64e4a2e1 | ||
|
|
854e0a764c | ||
|
|
e6a8fa59e3 | ||
|
|
885edc8953 | ||
|
|
fcff6301ed | ||
|
|
5d8d2f277c | ||
|
|
17665aad60 | ||
|
|
f18f136d2b | ||
|
|
311536d1aa | ||
|
|
83e9f9deba | ||
|
|
fdea69cfed | ||
|
|
cfebd53d5d | ||
|
|
0b94b47f72 | ||
|
|
4125d690fa | ||
|
|
7453385903 | ||
|
|
364df4daf0 | ||
|
|
324ddda4dd | ||
|
|
14da4efe6d | ||
|
|
a8727d5a50 | ||
|
|
4d2fdaec08 | ||
|
|
8ffe310855 | ||
|
|
ab33258ce9 | ||
|
|
b335bc5e7d | ||
|
|
be7efa98cf | ||
|
|
1e2d5b0693 | ||
|
|
ca82fd867a | ||
|
|
432c856f0d | ||
|
|
b0630b81ca | ||
|
|
0c0413f056 | ||
|
|
34c78b3113 | ||
|
|
18ec8e20b6 | ||
|
|
e9156ecd62 | ||
|
|
2a0197a7ab | ||
|
|
66f14c1168 | ||
|
|
a6a62b3334 | ||
|
|
6170c9037f | ||
|
|
41b10308ba | ||
|
|
c8d59eec5e | ||
|
|
9c28cdd1f5 | ||
|
|
50e0b6dd35 | ||
|
|
97d0cfa3d9 | ||
|
|
39fcabe921 | ||
|
|
05f2bc8392 | ||
|
|
e9bad2cacb | ||
|
|
b3d96cc5da | ||
|
|
b2ab2c6eba | ||
|
|
c6aba5a6d0 | ||
|
|
a64ea17357 | ||
|
|
1ef9041815 | ||
|
|
65635bcdd8 | ||
|
|
8c0722953f | ||
|
|
f3c43cb50f | ||
|
|
d3d6f70496 | ||
|
|
1ca89e0b09 | ||
|
|
487cbb23cb | ||
|
|
713a8148d3 | ||
|
|
be82472f35 | ||
|
|
4cb53ccaed | ||
|
|
beaa4e9383 | ||
|
|
702f949196 | ||
|
|
3e94c9d283 | ||
|
|
5634b564e8 | ||
|
|
98fa9eb159 | ||
|
|
bb0b626cee | ||
|
|
0f4dc18074 | ||
|
|
4b0ccc30ec | ||
|
|
b102a05a36 | ||
|
|
386716b8db | ||
|
|
50d67467dc | ||
|
|
26e63a9a3a | ||
|
|
d5c00b0cb5 | ||
|
|
8bf58af727 | ||
|
|
9bf3178b2f | ||
|
|
54ff4ef417 | ||
|
|
b57a316bfd | ||
|
|
1c3e13109f | ||
|
|
26b9560753 | ||
|
|
7c81f8a610 | ||
|
|
bf230f2c86 | ||
|
|
f636c0ee19 | ||
|
|
d52cf379ee | ||
|
|
eb5833609a | ||
|
|
e9478ff99c | ||
|
|
fa77cdf3b5 | ||
|
|
fefceac2c6 | ||
|
|
ea9e966330 | ||
|
|
59568bf13c | ||
|
|
de1b925b7d | ||
|
|
5fc0da6ab9 | ||
|
|
90381aa38f | ||
|
|
f4942d1ea7 | ||
|
|
ff41e69a30 | ||
|
|
3f78e0bec3 | ||
|
|
76ba3b557d | ||
|
|
1f22f1743c | ||
|
|
b4e0c00cca | ||
|
|
b0bf94e378 | ||
|
|
644ea0482f | ||
|
|
afa2c67e87 | ||
|
|
567c1a148d | ||
|
|
17392f1ae5 | ||
|
|
129a6983ed | ||
|
|
481a57edf6 | ||
|
|
bf7cf61b85 | ||
|
|
c64bc3fb81 | ||
|
|
b53bd08175 | ||
|
|
af237c7d07 | ||
|
|
bc99024e4f | ||
|
|
94942e1a92 | ||
|
|
62dc3a7ca3 | ||
|
|
2211a8de4a | ||
|
|
e9e75961f4 | ||
|
|
b62ffdeb0b | ||
|
|
95cc10a278 | ||
|
|
8ebd8532d6 | ||
|
|
ba90d84a13 | ||
|
|
5a541d6248 | ||
|
|
94d4ff8c1b | ||
|
|
52db13a1ca | ||
|
|
44d757f691 | ||
|
|
0d10d6f85d | ||
|
|
13011180f7 | ||
|
|
dfb7847dab | ||
|
|
c28da9f066 | ||
|
|
ee6020ab8c | ||
|
|
4b5fb30248 | ||
|
|
622e018cd4 | ||
|
|
7e7c0ef4d2 | ||
|
|
6dfd2e65f6 | ||
|
|
8d2cd29a3f | ||
|
|
da48b71442 | ||
|
|
eb9ca58fd0 | ||
|
|
8c7301b19f | ||
|
|
8d325b9e19 | ||
|
|
1ca24b2597 | ||
|
|
8a86165890 | ||
|
|
183fbd2805 | ||
|
|
46f28f92b6 | ||
|
|
c0bb640a37 | ||
|
|
9aa161575d | ||
|
|
475c54bfe1 | ||
|
|
e318b70329 | ||
|
|
bd92f18e9d | ||
|
|
a001238b74 | ||
|
|
ac4c745521 | ||
|
|
387137fbc7 | ||
|
|
f3ee1eac12 | ||
|
|
f1b7a422ee | ||
|
|
c675cf4010 | ||
|
|
9c38b08407 | ||
|
|
c714932e25 | ||
|
|
1ffc9b4561 | ||
|
|
ba50025e80 | ||
|
|
800a17e483 | ||
|
|
119871d114 | ||
|
|
903292ad3b | ||
|
|
713fa92c65 | ||
|
|
946410de2b | ||
|
|
90655ff631 | ||
|
|
7f358d289e | ||
|
|
3f22024281 | ||
|
|
0d5e169648 | ||
|
|
c9e1585322 | ||
|
|
61b2b46b79 | ||
|
|
9b9db297b3 | ||
|
|
e0b71d3b05 | ||
|
|
1d425f5b66 | ||
|
|
ebd516fbf3 | ||
|
|
da3ade3205 | ||
|
|
ef831d2749 | ||
|
|
d956a1d309 | ||
|
|
97acbbfd41 | ||
|
|
5dc7c60b4d | ||
|
|
056edd8570 | ||
|
|
efe388bddd | ||
|
|
51d12f3ed6 | ||
|
|
d2af7ff99e | ||
|
|
795c05257f | ||
|
|
44025c667e | ||
|
|
c29bf1ae17 | ||
|
|
f1cafa0609 | ||
|
|
d91bbcfbce | ||
|
|
2e3e6c55ff | ||
|
|
8a0fdd2089 | ||
|
|
a9acb3f1cc | ||
|
|
aa540f7968 | ||
|
|
7ebf817b17 | ||
|
|
ea40db972d | ||
|
|
acaeadfcb3 | ||
|
|
29aecc4eb8 | ||
|
|
87c70466a4 | ||
|
|
97f298452e | ||
|
|
217d8fa165 | ||
|
|
dc05a14f4c | ||
|
|
ff5ea7fc1f | ||
|
|
9338e7e71f | ||
|
|
10019bf985 | ||
|
|
04c09647d7 | ||
|
|
9edacd7b3e | ||
|
|
f437dabfbb | ||
|
|
8bc885c3f1 | ||
|
|
f733daf18a | ||
|
|
091ca9fc12 | ||
|
|
2837a4c010 | ||
|
|
2bd0133055 | ||
|
|
6470e1fd10 | ||
|
|
a65b2e6c94 | ||
|
|
124788d217 | ||
|
|
eda55679da | ||
|
|
438aacb9c4 | ||
|
|
afa8b53870 | ||
|
|
ce42d56a2d | ||
|
|
f199e20740 | ||
|
|
955cc3920f | ||
|
|
f0efab5142 | ||
|
|
9b87f9e7e7 | ||
|
|
4a46bd697f | ||
|
|
894d6c8d2d | ||
|
|
24aabc4cfe | ||
|
|
db604bce03 | ||
|
|
68e176cc00 | ||
|
|
1c2ddccb46 | ||
|
|
685aa99ad6 | ||
|
|
6013974b5e | ||
|
|
1c69288f0e | ||
|
|
6bf421cc31 | ||
|
|
4d6a405d01 | ||
|
|
2b484aa9ee | ||
|
|
e76c109f2d | ||
|
|
29b83c3700 | ||
|
|
0b8fab4721 | ||
|
|
4cf92de44d | ||
|
|
680332a708 | ||
|
|
19bd6cc381 | ||
|
|
339db24b56 | ||
|
|
c260a8a1d4 | ||
|
|
ae4436ade7 | ||
|
|
9e2da24629 | ||
|
|
bfa002e50a | ||
|
|
14bce93c7a | ||
|
|
8e4f0c50af | ||
|
|
ef268d79c3 | ||
|
|
cf09aeccfd | ||
|
|
8221d37bbe | ||
|
|
1bda6e53b2 | ||
|
|
e20c06b639 | ||
|
|
68f1358f54 | ||
|
|
15998fb3e6 | ||
|
|
7f5f290c93 | ||
|
|
960cb04286 | ||
|
|
75d0d5f66b | ||
|
|
26f317ee75 | ||
|
|
8ed9d35724 | ||
|
|
38486b2248 | ||
|
|
166d8db4ca | ||
|
|
f17dec29f6 | ||
|
|
092b0eaed6 | ||
|
|
6b8ebe54e9 | ||
|
|
9965d85864 | ||
|
|
8eb1be46b4 | ||
|
|
bdd55db549 |
107
.appveyor.yml
Normal file
@@ -0,0 +1,107 @@
|
||||
version: build {build}
|
||||
|
||||
# Skipping commits affecting specific files (GitHub only).
|
||||
# More details here: https://www.appveyor.com/docs/appveyor-yml and https://www.appveyor.com/docs/how-to/filtering-commits
|
||||
skip_commits:
|
||||
files:
|
||||
- .ci/travis-*
|
||||
- .github/
|
||||
- .tx/
|
||||
- webclient/
|
||||
- .clang-format
|
||||
- .*ignore
|
||||
- .codacy.yml
|
||||
- .gitlab-ci.yml
|
||||
- .travis.yml
|
||||
- '**/*.md'
|
||||
- Dockerfile
|
||||
- LICENSE
|
||||
|
||||
skip_branch_with_pr: true
|
||||
|
||||
clone_depth: 50 #same as travis, see https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories/
|
||||
|
||||
image: Visual Studio 2017
|
||||
|
||||
cache:
|
||||
- c:\Tools\vcpkg\installed
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- target_arch: win64
|
||||
qt_ver: 5.9\msvc2017_64
|
||||
cmake_generator: Visual Studio 15 2017 Win64
|
||||
cmake_toolset: v141,host=x64
|
||||
vcpkg_arch: x64
|
||||
|
||||
- target_arch: win32
|
||||
qt_ver: 5.9\msvc2015 # Qt doesn't provide a msvc2017_32
|
||||
cmake_generator: Visual Studio 15 2017
|
||||
cmake_toolset: v141
|
||||
vcpkg_arch: x86
|
||||
|
||||
install:
|
||||
- vcpkg remove --outdated --recurse
|
||||
- vcpkg install openssl protobuf liblzma zlib --triplet %vcpkg_arch%-windows
|
||||
|
||||
services:
|
||||
- mysql
|
||||
|
||||
build_script:
|
||||
- ps: |
|
||||
New-Item -ItemType directory -Path $env:APPVEYOR_BUILD_FOLDER\build
|
||||
Set-Location -Path $env:APPVEYOR_BUILD_FOLDER\build
|
||||
$vcpkgbindir = "C:\Tools\vcpkg\installed\$env:vcpkg_arch-windows\bin"
|
||||
$mysqldll = "c:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.dll"
|
||||
cmake --version
|
||||
cmake .. -G "$env:cmake_generator" -T "$env:cmake_toolset" "-DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_PREFIX_PATH=c:/Qt/$env:qt_ver;$vcpkgbindir" "-DWITH_SERVER=1" "-DMYSQLCLIENT_LIBRARIES=$mysqldll"
|
||||
- msbuild PACKAGE.vcxproj /p:Configuration=Release
|
||||
- ps: |
|
||||
$exe = dir -name *.exe
|
||||
$new_name = $exe.Replace(".exe", "-${env:target_arch}.exe")
|
||||
Push-AppveyorArtifact $exe -FileName $new_name
|
||||
$cmake_name = $exe.Replace(".exe", "-${env:target_arch}.cmake.txt")
|
||||
Push-AppveyorArtifact CMakeCache.txt -FileName $cmake_name
|
||||
$json = New-Object PSObject
|
||||
(New-Object PSObject | Add-Member -PassThru NoteProperty bin $new_name | Add-Member -PassThru NoteProperty cmake $cmake_name | Add-Member -PassThru NoteProperty commit $env:APPVEYOR_REPO_COMMIT) | ConvertTo-JSON | Out-File -FilePath "latest-$env:target_arch" -Encoding ASCII
|
||||
Push-AppveyorArtifact "latest-$env:target_arch"
|
||||
$version = $matches['content']
|
||||
|
||||
test: off
|
||||
|
||||
|
||||
# Builds for pull requests skip the deployment step altogether
|
||||
deploy:
|
||||
# Deploy configuration for "beta" releases
|
||||
- provider: GitHub
|
||||
auth_token:
|
||||
secure: p+7wPVry2XEa6TBm9XH8IaQZbBmXQ/J2ldbGmcIxUZD3NkkPrSRRlmE7Of1CBBIO
|
||||
tag: "$(APPVEYOR_REPO_TAG_NAME)"
|
||||
release: "Cockatrice $(APPVEYOR_REPO_TAG_NAME)"
|
||||
description: "Beta release of Cockatrice"
|
||||
artifact: /.*\.exe/
|
||||
force_update: true
|
||||
draft: false
|
||||
prerelease: true
|
||||
on:
|
||||
APPVEYOR_REPO_TAG: true
|
||||
APPVEYOR_REPO_TAG_NAME: /([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}-beta(\.([2-9]|[1-9][0-9]))?$/ # regex to match semver naming convention for beta pre-releases
|
||||
|
||||
# Deploy configuration for "stable" releases
|
||||
- provider: GitHub
|
||||
auth_token:
|
||||
secure: p+7wPVry2XEa6TBm9XH8IaQZbBmXQ/J2ldbGmcIxUZD3NkkPrSRRlmE7Of1CBBIO
|
||||
tag: "$(APPVEYOR_REPO_TAG_NAME)"
|
||||
release: "Cockatrice $(APPVEYOR_REPO_TAG_NAME)"
|
||||
artifact: /.*\.exe/
|
||||
force_update: true
|
||||
draft: false
|
||||
prerelease: false
|
||||
on:
|
||||
APPVEYOR_REPO_TAG: true
|
||||
APPVEYOR_REPO_TAG_NAME: /([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}$/ # regex to match semver naming convention for stable full releases
|
||||
|
||||
|
||||
# Announcements of build image updates: https://www.appveyor.com/updates/
|
||||
# Official validator for ".appveyor.yml" config file: https://ci.appveyor.com/tools/validate-yaml
|
||||
# AppVeyor config documentation: https://www.appveyor.com/docs/build-configuration/
|
||||
19
.ci/Fedora29/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM fedora:29
|
||||
|
||||
RUN dnf install -y \
|
||||
@development-tools \
|
||||
ccache \
|
||||
cmake \
|
||||
desktop-file-utils \
|
||||
file \
|
||||
gcc-c++ \
|
||||
hicolor-icon-theme \
|
||||
libappstream-glib \
|
||||
protobuf-devel \
|
||||
qt5-{qttools,qtsvg,qtmultimedia,qtwebsockets}-devel-5.11.1-2.fc29 \
|
||||
rpm-build \
|
||||
sqlite-devel \
|
||||
wget \
|
||||
zlib-devel \
|
||||
xz-devel \
|
||||
&& dnf clean all
|
||||
22
.ci/UbuntuBionic/Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
FROM ubuntu:bionic
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
clang-format \
|
||||
file \
|
||||
g++ \
|
||||
git \
|
||||
ccache \
|
||||
cmake \
|
||||
liblzma-dev \
|
||||
libprotobuf-dev \
|
||||
libqt5multimedia5-plugins \
|
||||
libqt5svg5-dev \
|
||||
libqt5sql5-mysql \
|
||||
libqt5websockets5-dev \
|
||||
protobuf-compiler \
|
||||
qt5-default \
|
||||
qttools5-dev \
|
||||
qttools5-dev-tools \
|
||||
qtmultimedia5-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
149
.ci/travis-compile.sh
Normal file
@@ -0,0 +1,149 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script is to be used in .travis.yaml from the project root directory, do not use it from somewhere else.
|
||||
|
||||
# Read arguments
|
||||
while [[ "$@" ]]; do
|
||||
case "$1" in
|
||||
'--format')
|
||||
CHECK_FORMAT=1
|
||||
shift
|
||||
;;
|
||||
'--install')
|
||||
MAKE_INSTALL=1
|
||||
shift
|
||||
;;
|
||||
'--package')
|
||||
MAKE_PACKAGE=1
|
||||
shift
|
||||
if [[ $# != 0 && $1 != -* ]]; then
|
||||
PACKAGE_NAME="$1"
|
||||
shift
|
||||
if [[ $# != 0 && $1 != -* ]]; then
|
||||
PACKAGE_TYPE="$1"
|
||||
shift
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
'--server')
|
||||
MAKE_SERVER=1
|
||||
shift
|
||||
;;
|
||||
'--test')
|
||||
MAKE_TEST=1
|
||||
shift
|
||||
;;
|
||||
'--debug')
|
||||
BUILDTYPE="Debug"
|
||||
shift
|
||||
;;
|
||||
'--release')
|
||||
BUILDTYPE="Release"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
if [[ $1 == -* ]]; then
|
||||
echo "unrecognized option: $1"
|
||||
exit 3
|
||||
fi
|
||||
BUILDTYPE="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check formatting using clang-format
|
||||
if [[ $CHECK_FORMAT ]]; then
|
||||
echo "Checking your code using clang-format..."
|
||||
diff="$(./clangify.sh --diff --cf-version)"
|
||||
err=$?
|
||||
case $err in
|
||||
1)
|
||||
cat <<EOM
|
||||
***********************************************************
|
||||
*** ***
|
||||
*** Your code does not comply with our styleguide. ***
|
||||
*** ***
|
||||
*** Please correct it or run the "clangify.sh" script. ***
|
||||
*** Then commit and push those changes to this branch. ***
|
||||
*** Check our CONTRIBUTING.md file for more details. ***
|
||||
*** ***
|
||||
*** Thank you ♥ ***
|
||||
*** ***
|
||||
***********************************************************
|
||||
|
||||
Used clang-format version:
|
||||
${diff%%
|
||||
*}
|
||||
|
||||
The following changes should be made:
|
||||
${diff#*
|
||||
}
|
||||
|
||||
Exiting...
|
||||
EOM
|
||||
exit 2
|
||||
;;
|
||||
0)
|
||||
echo "Thank you for complying with our code standards."
|
||||
;;
|
||||
*)
|
||||
echo "Something went wrong in our formatting checks: clangify returned $err" >&2
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
# Setup
|
||||
./servatrice/check_schema_version.sh
|
||||
mkdir -p build
|
||||
cd build
|
||||
|
||||
# Add cmake flags
|
||||
if [[ $MAKE_SERVER ]]; then
|
||||
flags+=" -DWITH_SERVER=1"
|
||||
fi
|
||||
if [[ $MAKE_TEST ]]; then
|
||||
flags+=" -DTEST=1"
|
||||
BUILDTYPE="Debug" # test requires buildtype Debug
|
||||
fi
|
||||
if [[ $BUILDTYPE ]]; then
|
||||
flags+=" -DCMAKE_BUILD_TYPE=$BUILDTYPE"
|
||||
fi
|
||||
if [[ $PACKAGE_TYPE ]]; then
|
||||
flags+=" -DCPACK_GENERATOR=$PACKAGE_TYPE"
|
||||
fi
|
||||
|
||||
# Add qt install location when using brew
|
||||
if [[ $(uname) == "Darwin" ]]; then
|
||||
PATH="/usr/local/opt/ccache/bin:$PATH"
|
||||
flags+=" -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/"
|
||||
fi
|
||||
|
||||
# Compile
|
||||
cmake --version
|
||||
cmake .. $flags
|
||||
make -j2
|
||||
|
||||
if [[ $MAKE_TEST ]]; then
|
||||
make test
|
||||
fi
|
||||
|
||||
if [[ $MAKE_INSTALL ]]; then
|
||||
make install
|
||||
fi
|
||||
|
||||
if [[ $MAKE_PACKAGE ]]; then
|
||||
make package
|
||||
if [[ $PACKAGE_NAME ]]; then
|
||||
found=$(find . -maxdepth 1 -type f -name "Cockatrice-*.*" -print -quit)
|
||||
path=${found%/*}
|
||||
file=${found##*/}
|
||||
if [[ ! $file ]]; then
|
||||
echo "could not find package" >&2
|
||||
exit 1
|
||||
fi
|
||||
mv "$path/$file" "$path/${file%.*}-$PACKAGE_NAME.${file##*.}"
|
||||
fi
|
||||
fi
|
||||
25
.clang-format
Normal file
@@ -0,0 +1,25 @@
|
||||
IndentWidth: 4
|
||||
AccessModifierOffset: -4
|
||||
ColumnLimit: 120
|
||||
---
|
||||
Language: Cpp
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterControlStatement: false
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
BinPackParameters: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
IndentCaseLabels: true
|
||||
PointerAlignment: Right
|
||||
5
.codacy.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
exclude_paths:
|
||||
- '**/translations/*.ts'
|
||||
|
||||
# codacy config documentation: https://support.codacy.com/hc/en-us/articles/115002130625-Codacy-Configuration-File
|
||||
@@ -1,12 +1,9 @@
|
||||
.git/
|
||||
CONTRIBUTING.md
|
||||
Dockerfile
|
||||
TODO.md
|
||||
build/
|
||||
.github/
|
||||
.travis/
|
||||
.tx/
|
||||
cockatrice/
|
||||
doc/
|
||||
oracle/
|
||||
sounds/
|
||||
travis-compile.sh
|
||||
travis-dependencies.sh
|
||||
zonebg/
|
||||
Dockerfile
|
||||
|
||||
322
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
[Introduction](#contributing-to-cockatrice) | [Code Style Guide](#code-style-guide) | [Translations](#translations) | [Release Management](#release-management)
|
||||
|
||||
----
|
||||
|
||||
<br>
|
||||
|
||||
# Contributing to Cockatrice #
|
||||
First off, thanks for taking the time to contribute to our project! 🎉 ❤ ️✨
|
||||
|
||||
The following is a set of guidelines for contributing to Cockatrice. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
|
||||
|
||||
|
||||
# Recommended Setups #
|
||||
|
||||
For those developers who like the Linux or MacOS environment, many of our developers like working with a nifty program called [CLion](https://www.jetbrains.com/clion/). The program's a great asset and one of the best tools you'll find on these systems, but you're welcomed to use any IDE you most enjoy.
|
||||
|
||||
Developers who like Windows development tend to find [Visual Studio](https://www.visualstudio.com/) the best tool for the job.
|
||||
|
||||
If you have any questions on IDEs, feel free to chat with us on [Gitter](https://gitter.im/Cockatrice/Cockatrice) and we would love to help answer your questions!
|
||||
|
||||
|
||||
# Code Style Guide #
|
||||
|
||||
### Formatting and continuous integration (ci) ###
|
||||
|
||||
We currently use Travis CI to check your code for formatting issues, if your pull request was rejected because of this it would show a message in the logs. Click on "Details" next to the failed Travis CI build and then click on the failed build (most likely the fastest one) to see the log.
|
||||
|
||||
The message will look somewhat similar to this:
|
||||
```
|
||||
************************************************************
|
||||
*** Your code does not meet our formatting guidelines. ***
|
||||
*** Please correct it then commit and push your changes. ***
|
||||
*** See our CONTRIBUTING.md file for more information. ***
|
||||
************************************************************
|
||||
```
|
||||
The CONTRIBUTING.md file mentioned is this file. Please read [this section](#Formatting) for full information on our formatting guidelines.
|
||||
|
||||
### Compatibility ###
|
||||
|
||||
Cockatrice is currently compiled on all platforms using <kbd>C++11</kbd>. You'll notice <kbd>C++03</kbd> code throughout the codebase. Please feel free to help convert it over!
|
||||
|
||||
For consistency, we use Qt data structures where possible. For example, `QString` over
|
||||
`std::string` and `QList` over `std::vector`.
|
||||
|
||||
### Formatting ###
|
||||
|
||||
The handy tool `clang-format` can format your code for you, it is available for almost any environment. A special `.clang-format` configuration file is included in the project and is used to format your code.
|
||||
|
||||
We've also included a bash script, `clangify.sh`, that will use clang-format to format all files in one go. Use `./clangify.sh --help` to show a full help page.
|
||||
|
||||
To run clang-format on a single source file simply use the command `clang-format -i <filename>` to format it in place. (some systems install clang-format with a specific version number appended, `find /usr/bin -name clang-format*` should find it for you)
|
||||
|
||||
See [the clang-format documentation](https://clang.llvm.org/docs/ClangFormat.html) for more information about the tool.
|
||||
|
||||
#### Header files ####
|
||||
|
||||
Use header files with the extension `.h` and source files with the extension
|
||||
`.cpp`.
|
||||
|
||||
Use header guards in the form of `FILE_NAME_H`.
|
||||
|
||||
Simple functions, such as getters, may be written inline in the header file,
|
||||
but other functions should be written in the source file.
|
||||
|
||||
Group library includes after project includes, and in alphabetic order. Like this:
|
||||
```c++
|
||||
// Good
|
||||
#include "card.h"
|
||||
#include "deck.h"
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
|
||||
// Bad
|
||||
#include <QList>
|
||||
#include "card.h"
|
||||
#include <QString>
|
||||
#include "deck.h"
|
||||
|
||||
// Bad
|
||||
#include "card.h"
|
||||
#include "deck.h"
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
```
|
||||
|
||||
#### Naming ####
|
||||
|
||||
Use `UpperCamelCase` for classes, structs, enums, etc. and `lowerCamelCase` for
|
||||
function and variable names.
|
||||
|
||||
Member variables aren't decorated in any way. Don't prefix or suffix with
|
||||
underscores, etc.
|
||||
|
||||
For arguments to constructors which have the same names as member variables,
|
||||
prefix those arguments with underscores:
|
||||
```c++
|
||||
MyClass::MyClass(int _myData) : myData(_myData)
|
||||
{
|
||||
|
||||
}
|
||||
```
|
||||
Pointers and references should be denoted with the `*` or `&` going with the
|
||||
variable name:
|
||||
```c++
|
||||
// Good
|
||||
Foo *foo1 = new Foo;
|
||||
Foo &foo2 = *foo1;
|
||||
|
||||
// Bad
|
||||
Bar* bar1 = new Bar;
|
||||
Bar& bar2 = *bar1;
|
||||
```
|
||||
Use `nullptr` instead of `NULL` (or `0`) for null pointers.
|
||||
If you find any usage of the old keywords, we encourage you to fix it.
|
||||
|
||||
#### Braces ####
|
||||
|
||||
Braces should go on their own line except for control statements, the use of braces around single line statements is preferred.
|
||||
See the following example:
|
||||
```c++
|
||||
int main()
|
||||
{ // function or class: own line
|
||||
if (someCondition) { // control statement: same line
|
||||
doSomething(); // single line statement, braces preferred
|
||||
} else if (someOtherCondition1) { // else goes on the same line as a closing brace
|
||||
for (int i = 0; i < 100; i++) {
|
||||
doSomethingElse();
|
||||
}
|
||||
} else {
|
||||
while (someOtherCondition2) {
|
||||
doSomethingElse();
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Indentation and Spacing ####
|
||||
|
||||
Always indent using 4 spaces, do not use tabs. Opening and closing braces should be on the same indentation layer, member access specifiers in classes or structs should not be indented.
|
||||
|
||||
All operators and braces should be separated by spaces, do not add a space next to the inside of a brace.
|
||||
|
||||
If multiple lines of code that follow eachother have single line comments behind them, place all of them on the same indentation level. This indentation level should be equal to the longest line of code for each of these comments, without added spacing.
|
||||
|
||||
#### Lines ####
|
||||
|
||||
Do not have trailing whitespace in your lines. Most IDEs check for this nowadays and clean it up for you.
|
||||
|
||||
Lines should be 120 characters or less. Please break up lines that are too long into smaller parts, for example at spaces or after opening a brace.
|
||||
|
||||
### Memory Management ###
|
||||
|
||||
New code should be written using references over pointers and stack allocation
|
||||
over heap allocation wherever possible.
|
||||
```c++
|
||||
// Good: uses stack allocation and references
|
||||
void showCard(const Card &card);
|
||||
int main()
|
||||
{
|
||||
Card card;
|
||||
showCard(card);
|
||||
}
|
||||
|
||||
// Bad: relies on manual memory management and doesn't give us much
|
||||
// null-safety.
|
||||
void showCard(const Card *card);
|
||||
int main()
|
||||
{
|
||||
Card *card = new Card;
|
||||
showCard(card);
|
||||
delete card;
|
||||
}
|
||||
```
|
||||
(Remember to pass by `const` reference wherever possible, to avoid accidentally
|
||||
mutating objects.)
|
||||
|
||||
When pointers can't be avoided, try to use a smart pointer of some sort, such
|
||||
as `QScopedPointer`, or, less preferably, `QSharedPointer`.
|
||||
|
||||
### Database migrations ###
|
||||
|
||||
The servatrice database's schema can be found at `servatrice/servatrice.sql`.
|
||||
Everytime the schema gets modified, some other steps are due:
|
||||
1. Increment the value of `cockatrice_schema_version` in `servatrice.sql`;
|
||||
2. Increment the value of `DATABASE_SCHEMA_VERSION` in `servatrice_database_interface.h` accordingly;
|
||||
3. Create a new migration file inside the `servatrice/migrations` directory named after the new schema version.
|
||||
4. Run the `servatrice/check_schema_version.sh` script to ensure everything is fine.
|
||||
|
||||
The migration file should include the sql statements needed to migrate the database schema and data from the previous to the new version, and an additional statement that updates `cockatrice_schema_version` to the correct value.
|
||||
|
||||
Ensure that the migration produces the expected effects; e.g. if you add a new column, make sure the migration places it in the same order as servatrice.sql.
|
||||
|
||||
### Protocol buffer ###
|
||||
|
||||
Cockatrice and Servatrice exchange data using binary messages. The syntax of these messages is defined in the `proto` files in the `common/pb` folder. These files defines the way data contained in each message is serialized using Google's [protocol buffer](https://developers.google.com/protocol-buffers/).
|
||||
Any change to the `proto` file should be taken with caution and tested intensively before being merged, becaus a change to the protocol could make new clients incompatible to the old server and vice versa.
|
||||
|
||||
You can find more information on how we use Protobuf on [our wiki!](https://github.com/Cockatrice/Cockatrice/wiki/Client-server-protocol)
|
||||
|
||||
|
||||
# Translations #
|
||||
|
||||
Basic workflow for translations:
|
||||
1. Developer adds a `tr("foo")` string in the code;
|
||||
2. Every few days, a maintainer updates the `*_en.ts files` with the new strings;
|
||||
3. Transifex picks up the new files from github every 24 hours;
|
||||
4. Translators translate the new untranslated strings on Transifex;
|
||||
5. Before a release, a maintainer fetches the updated translations from Transifex.
|
||||
|
||||
### Using Translations (for developers) ###
|
||||
|
||||
All the user-interface strings inside Cockatrice's source code must be written in english.
|
||||
Translations to other languages are managed using [Transifex](https://www.transifex.com/projects/p/cockatrice/).
|
||||
|
||||
Adding a new string to translate is as easy as adding the string in the 'tr("")' function, the string will be picked up as translatable automatically and translated as needed.
|
||||
For example setting the text of this label in a way that the string "My name is:" can be translated:
|
||||
```c++
|
||||
nameLabel.setText(tr("My name is:"));
|
||||
```
|
||||
|
||||
If you're about to propose a change that adds or modifies any translatable string in the code, you don't need to take care of adding the new strings to the translation files.
|
||||
Every few days, or when a lot of new strings have been added, someone from the development team will take care of extracting all the new strings and adding them to the english translation files and making them available to translators on Transifex.
|
||||
|
||||
### Maintaining Translations (for maintainers) ###
|
||||
|
||||
When new translatable strings have been added to the code, a maintainer should
|
||||
make them available to translators on Transifex. Every few days, or when a lot
|
||||
of new strings have been added, a maintainer should take care of extracting all
|
||||
the new strings and add them to the english translation files.
|
||||
|
||||
To update the english translation files, re-run cmake enabling the appropriate
|
||||
parameter and then run make:
|
||||
```sh
|
||||
cd cockatrice/build
|
||||
cmake .. -DUPDATE_TRANSLATIONS=ON
|
||||
make
|
||||
```
|
||||
If the parameter has been enabled correctly, when running "make" you should see
|
||||
a line similar to this one (the numbers may vary):
|
||||
```sh
|
||||
[ 76%] Generating ../../cockatrice/translations/cockatrice_en.ts
|
||||
Updating '../../cockatrice/translations/cockatrice_en.ts'...
|
||||
Found 857 source text(s) (8 new and 849 already existing)
|
||||
```
|
||||
You should then notice that the following files have uncommitted changes:
|
||||
|
||||
cockatrice/translations/cockatrice_en.ts
|
||||
oracle/translations/oracle_en.ts
|
||||
|
||||
It is recommended to disable the parameter afterwards using:
|
||||
```sh
|
||||
cmake .. -DUPDATE_TRANSLATIONS=OFF
|
||||
```
|
||||
Now you are ready to propose your change.
|
||||
|
||||
Once your change gets merged, Transifex will pick up the modified files automatically (checked every 24 hours)
|
||||
and update the interface where translators will be able to translate the new strings.
|
||||
|
||||
### Releasing Translations (for maintainers) ###
|
||||
|
||||
Before rushing out a new release, a maintainer should fetch the most up to date
|
||||
translations from Transifex and commit them into the Cockatrice source code.
|
||||
This can be done manually from the Transifex web interface, but it's quite time
|
||||
consuming.
|
||||
|
||||
As an alternative, you can install the Transifex CLI:
|
||||
|
||||
http://docs.transifex.com/developer/client/
|
||||
|
||||
You'll then be able to use a git-like cli command to push and pull translations
|
||||
from Transifex to the source code and vice versa.
|
||||
|
||||
### Adding Translations (for translators) ###
|
||||
|
||||
As a translator you can help translate the new strings on [Transifex](https://www.transifex.com/projects/p/cockatrice/).
|
||||
Please have a look at the specific [FAQ for translators](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ).
|
||||
|
||||
|
||||
# Release Management #
|
||||
|
||||
### Publishing A New Beta Release ###
|
||||
|
||||
Travis and AppVeyor have been configured to upload files to GitHub Releases whenever a <kbd>tag</kbd> is pushed.<br>
|
||||
Usually, tags are created through publishing a (pre-)release, but there's a way around that.
|
||||
|
||||
To trigger Travis and AppVeyor, simply do the following:
|
||||
```bash
|
||||
cd $COCKATRICE_REPO
|
||||
git checkout master
|
||||
git remote update -p
|
||||
git pull
|
||||
git tag $TAG_NAME
|
||||
git push upstream $TAG_NAME
|
||||
```
|
||||
You should define the variables as such:
|
||||
```
|
||||
upstream - git@github.com:Cockatrice/Cockatrice.git
|
||||
$COCKATRICE_REPO - /Location/of/repository/cockatrice.git
|
||||
`$TAG_NAME` should be:
|
||||
- `YYYY-MM-DD-Release-MAJ.MIN.PATCH` for **stable releases**
|
||||
- `YYYY-MM-DD-Development-MAJ.MIN.PATCH-beta.X` for **beta releases**<br>
|
||||
With *MAJ.MIN.PATCH* being the NEXT release version!
|
||||
```
|
||||
|
||||
This will cause a tagged release to be established on the GitHub repository, which will then lead to the upload of binaries. If you use this method, the tags (releases) that you create will be marked as a "Pre-release". The `/latest` URL will not be impacted (for stable release downloads) so that's good.
|
||||
|
||||
If you accidentally push a tag incorrectly (the tag is outdated, you didn't pull in the latest branch accidentally, you named the tag wrong, etc.) you can revoke the tag by doing the following:
|
||||
```bash
|
||||
git push --delete upstream $TAG_NAME
|
||||
git tag -d $TAG_NAME
|
||||
```
|
||||
|
||||
**NOTE:** Unfortunately, due to the method of how Travis and AppVeyor work, to publish a stable release you will need to make a copy of the release notes locally and then paste them into the GitHub GUI once the binaries have been uploaded by them. These CI services will automatically overwrite the name of the release (to "Cockatrice $TAG_NAME"), the status of the release (to "Pre-release"), and the release body (to "Beta build of Cockatrice").
|
||||
|
||||
**NOTE 2:** In the first lines of https://github.com/Cockatrice/Cockatrice/blob/master/CMakeLists.txt there's an hardcoded version number used when compiling custom (not tagged) versions. While on tagged versions these numbers are overridden by the version numbers coming from the tag title, it's good practice to keep them aligned with the real ones.
|
||||
The preferred flow of operation is:
|
||||
* just before a release, update the version number in CMakeLists.txt to "next release version";
|
||||
* tag the release following the previously described syntax in order to get it built by CI;
|
||||
* wait for CI to upload the binaries, double check if everything is in order
|
||||
* after the release is complete, update the version number again to "next targeted beta version", typically increasing `PROJECT_VERSION_PATCH` by one.
|
||||
|
||||
**NOTE 3:** When releasing a new stable version, all the previous beta versions should be deleted. This is needed for Cockatrice to update users of the "beta" release channel to the latest version like other users.
|
||||
14
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
<b>System Information:</b>
|
||||
<!-- Go to "Help → View Debug Log" and copy all lines above the separation here! -->
|
||||
|
||||
<!-- If you can't install Cockatrice to access that information, make
|
||||
sure to include your OS and the app version from the setup file here -->
|
||||
__________________________________________________________________________________________
|
||||
|
||||
<!-- Explain your issue/request/suggestion in detail here! -->
|
||||
|
||||
<!-- This repository is ONLY about development of the Cockatrice app.
|
||||
If you have any problems with a server (e.g. registering, connecting, ban...)
|
||||
you have to contact that server's owner/admin.
|
||||
Check this list of public servers with webpage links and contact details:
|
||||
https://github.com/Cockatrice/Cockatrice/wiki/Public-Servers -->
|
||||
12
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
## Related Ticket(s)
|
||||
- Fixes #IssueNumber
|
||||
|
||||
## Short roundup of the initial problem
|
||||
|
||||
|
||||
## What will change with this Pull Request?
|
||||
- this
|
||||
- and this
|
||||
|
||||
## Screenshots
|
||||
<!-- simply drag & drop image files directly into this description! -->
|
||||
4
.gitignore
vendored
@@ -5,4 +5,6 @@ build*
|
||||
mysql.cnf
|
||||
.DS_Store
|
||||
.idea/
|
||||
.tx/
|
||||
*.aps
|
||||
cmake-build-debug/
|
||||
preferences
|
||||
|
||||
139
.gitlab-ci.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
---
|
||||
stages:
|
||||
- build
|
||||
|
||||
.artifacts: &artifacts
|
||||
artifacts:
|
||||
paths:
|
||||
- build/
|
||||
|
||||
.cache: &cache
|
||||
cache:
|
||||
key: "$CI_BUILD_NAME"
|
||||
paths:
|
||||
- cache/
|
||||
|
||||
.branches: &branches
|
||||
only:
|
||||
- master
|
||||
|
||||
.tags: &tags
|
||||
tags:
|
||||
- linux
|
||||
- docker
|
||||
|
||||
|
||||
#================================ DEBIAN-BASED ================================
|
||||
|
||||
.build_rc_package_deb: &build_rc_package_deb
|
||||
stage: build
|
||||
script:
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=DEB
|
||||
- make package -j2
|
||||
|
||||
.build_debug_package_deb: &build_debug_package_deb
|
||||
stage: build
|
||||
script:
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake .. -DWITH_SERVER=1 -DCMAKE_BUILD_TYPE=Debug -DCPACK_GENERATOR=DEB
|
||||
- make package -j2
|
||||
|
||||
.deb-artifacts: &artifacts_deb
|
||||
artifacts:
|
||||
paths:
|
||||
- build/*.deb
|
||||
- build/CMakeFiles/*.log
|
||||
when: always
|
||||
|
||||
#----------------------------------- UBUNTU -----------------------------------
|
||||
|
||||
.requirements_16xx: &install_requirements_16xx
|
||||
before_script:
|
||||
- apt-get -o dir::cache::archives="cache" update -qq
|
||||
- apt-get -o dir::cache::archives="cache" install -y build-essential g++ cmake git
|
||||
- apt-get -o dir::cache::archives="cache" install -y libprotobuf-dev protobuf-compiler
|
||||
- apt-get -o dir::cache::archives="cache" install -y qt5-default qttools5-dev qttools5-dev-tools
|
||||
- apt-get -o dir::cache::archives="cache" install -y qtmultimedia5-dev libqt5multimedia5-plugins
|
||||
- apt-get -o dir::cache::archives="cache" install -y libqt5svg5-dev libqt5sql5-mysql
|
||||
- apt-get -o dir::cache::archives="cache" install -y libqt5websockets5-dev
|
||||
|
||||
.requirements_17xx: &install_requirements_17xx
|
||||
before_script:
|
||||
- apt-get -o dir::cache::archives="cache" update -qq
|
||||
- apt-get -o dir::cache::archives="cache" install -y build-essential g++ cmake git
|
||||
- apt-get -o dir::cache::archives="cache" install -y libprotobuf-dev protobuf-compiler
|
||||
- apt-get -o dir::cache::archives="cache" install -y qt5-default qttools5-dev qttools5-dev-tools
|
||||
- apt-get -o dir::cache::archives="cache" install -y qtmultimedia5-dev libqt5multimedia5-plugins
|
||||
- apt-get -o dir::cache::archives="cache" install -y libqt5svg5-dev libqt5sql5-mysql
|
||||
- apt-get -o dir::cache::archives="cache" install -y libqt5websockets5-dev
|
||||
|
||||
.build_1604: &1604
|
||||
image: ubuntu:16.04
|
||||
<<: *tags
|
||||
<<: *branches
|
||||
<<: *install_requirements_16xx
|
||||
<<: *artifacts_deb
|
||||
<<: *cache
|
||||
|
||||
.build_1710: &1710
|
||||
image: ubuntu:17.10
|
||||
<<: *tags
|
||||
<<: *branches
|
||||
<<: *install_requirements_17xx
|
||||
<<: *artifacts_deb
|
||||
<<: *cache
|
||||
|
||||
build_rc_1604:
|
||||
<<: *1604
|
||||
<<: *build_rc_package_deb
|
||||
when: always
|
||||
|
||||
build_debug_1604:
|
||||
<<: *1604
|
||||
<<: *build_debug_package_deb
|
||||
when: always
|
||||
|
||||
build_rc_1710:
|
||||
<<: *1710
|
||||
<<: *build_rc_package_deb
|
||||
when: always
|
||||
|
||||
build_debug_1710:
|
||||
<<: *1710
|
||||
<<: *build_debug_package_deb
|
||||
when: always
|
||||
allow_failure: true
|
||||
|
||||
#----------------------------------- DEBIAN -----------------------------------
|
||||
|
||||
.requirements_stretch: &install_requirements_stretch
|
||||
before_script:
|
||||
- apt-get -o dir::cache::archives="cache" update -qq
|
||||
- apt-get -o dir::cache::archives="cache" install -y build-essential g++ cmake git
|
||||
- apt-get -o dir::cache::archives="cache" install -y qt5-default qtbase5-dev-tools
|
||||
- apt-get -o dir::cache::archives="cache" install -y qttools5-dev-tools qtmultimedia5-dev
|
||||
- apt-get -o dir::cache::archives="cache" install -y libqt5svg5-dev libqt5websockets5-dev
|
||||
- apt-get -o dir::cache::archives="cache" install -y libprotobuf-dev protobuf-compiler
|
||||
|
||||
.build_stretch: &stretch
|
||||
image: debian:stretch
|
||||
<<: *tags
|
||||
<<: *branches
|
||||
<<: *install_requirements_stretch
|
||||
<<: *artifacts_deb
|
||||
<<: *cache
|
||||
|
||||
build_rc_stretch:
|
||||
<<: *stretch
|
||||
<<: *build_rc_package_deb
|
||||
when: always
|
||||
|
||||
build_debug_stretch:
|
||||
<<: *stretch
|
||||
<<: *build_debug_package_deb
|
||||
when: always
|
||||
allow_failure: true
|
||||
|
||||
174
.travis.yml
@@ -1,23 +1,163 @@
|
||||
language: cpp
|
||||
env:
|
||||
- QT4=1
|
||||
- QT4=0
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
script: ./travis-compile.sh
|
||||
install: ./travis-dependencies.sh
|
||||
cache: apt
|
||||
compiler: gcc
|
||||
|
||||
matrix:
|
||||
include:
|
||||
#Ubuntu Xenial (Debug only)
|
||||
- name: Ubuntu Xenial (Debug)
|
||||
if: tag IS NOT present
|
||||
os: linux
|
||||
dist: xenial
|
||||
group: stable
|
||||
cache: ccache
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libprotobuf-dev
|
||||
- protobuf-compiler
|
||||
- liblzma-dev
|
||||
- qt5-default
|
||||
- qttools5-dev
|
||||
- qttools5-dev-tools
|
||||
- qtmultimedia5-dev
|
||||
- libqt5multimedia5-plugins
|
||||
- libqt5svg5-dev
|
||||
- libqt5sql5-mysql
|
||||
- libqt5websockets5-dev
|
||||
script: bash ./.ci/travis-compile.sh --format --server --test --debug
|
||||
|
||||
#Ubuntu Bionic (on docker)
|
||||
- name: Ubuntu Bionic (Debug)
|
||||
if: tag IS NOT present
|
||||
services: docker
|
||||
env: NAME=UbuntuBionic
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/$NAME/
|
||||
before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache
|
||||
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
|
||||
--mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
|
||||
"cockatrice_${NAME,,}"
|
||||
bash .ci/travis-compile.sh --server --debug
|
||||
|
||||
- name: Ubuntu Bionic (Release)
|
||||
if: (branch = master AND NOT type = pull_request) OR tag IS present
|
||||
services: docker
|
||||
env: NAME=UbuntuBionic
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/$NAME/
|
||||
before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache
|
||||
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
|
||||
--mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
|
||||
"cockatrice_${NAME,,}"
|
||||
bash .ci/travis-compile.sh --server --package "$NAME" --release
|
||||
|
||||
#Fedora 29 (on docker)
|
||||
- name: Fedora 29 (Debug)
|
||||
if: tag IS NOT present
|
||||
services: docker
|
||||
env: NAME=Fedora29
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/$NAME/
|
||||
before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache
|
||||
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
|
||||
--mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
|
||||
"cockatrice_${NAME,,}"
|
||||
bash .ci/travis-compile.sh --server --debug
|
||||
|
||||
- name: Fedora 29 (Release)
|
||||
if: (branch = master AND NOT type = pull_request) OR tag IS present
|
||||
services: docker
|
||||
env: NAME=Fedora29
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/$NAME/
|
||||
before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache
|
||||
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
|
||||
--mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
|
||||
"cockatrice_${NAME,,}"
|
||||
bash .ci/travis-compile.sh --server --package "$NAME" "RPM" --release
|
||||
|
||||
#macOS
|
||||
- name: macOS (Debug)
|
||||
if: tag IS NOT present
|
||||
os: osx
|
||||
osx_image: xcode10.1
|
||||
cache: ccache
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
- ccache
|
||||
- protobuf
|
||||
- qt
|
||||
- xz
|
||||
script: bash ./.ci/travis-compile.sh --server --install --debug
|
||||
|
||||
- name: macOS (Release)
|
||||
if: (branch = master AND NOT type = pull_request) OR tag IS present
|
||||
os: osx
|
||||
osx_image: xcode9.2
|
||||
cache: ccache
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
- ccache
|
||||
- protobuf
|
||||
- qt
|
||||
- xz
|
||||
update: true
|
||||
script: bash ./.ci/travis-compile.sh --server --package "$TRAVIS_OS_NAME" --release
|
||||
|
||||
# Builds for pull requests skip the deployment step altogether
|
||||
deploy:
|
||||
# Deploy configuration for "beta" releases
|
||||
- provider: releases
|
||||
api_key:
|
||||
secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU=
|
||||
skip_cleanup: true
|
||||
name: "Cockatrice $TRAVIS_TAG"
|
||||
body: "Beta release of Cockatrice"
|
||||
file_glob: true
|
||||
file: "build/Cockatrice-*"
|
||||
overwrite: true
|
||||
draft: false
|
||||
prerelease: true
|
||||
on:
|
||||
tags: true
|
||||
repo: Cockatrice/Cockatrice
|
||||
condition: $TRAVIS_TAG =~ ([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}-beta(\.([2-9]|[1-9][0-9]))?$ # regex to match semver naming convention for beta pre-releases
|
||||
|
||||
# Deploy configuration for "stable" releases
|
||||
- provider: releases
|
||||
api_key:
|
||||
secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU=
|
||||
skip_cleanup: true
|
||||
file_glob: true
|
||||
file: "build/Cockatrice-*"
|
||||
overwrite: true
|
||||
draft: false
|
||||
prerelease: false
|
||||
on:
|
||||
tags: true
|
||||
repo: Cockatrice/Cockatrice
|
||||
condition: $TRAVIS_TAG =~ ([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}$ # regex to match semver naming convention for stable full releases
|
||||
|
||||
|
||||
notifications:
|
||||
slack: cockatrice:dNA81maCU8SAHB7pYrCWiQg9
|
||||
email: false
|
||||
webhooks:
|
||||
urls:
|
||||
- https://webhooks.gitter.im/e/d94969c3b01b22cbdcb7
|
||||
- https://webhooks.gitter.im/e/d94969c3b01b22cbdcb7
|
||||
on_success: change
|
||||
on_failure: change
|
||||
on_start: false
|
||||
matrix:
|
||||
fast_finish: true
|
||||
on_start: never
|
||||
on_cancel: change
|
||||
on_error: change
|
||||
|
||||
|
||||
# Announcements of build image updates: https://docs.travis-ci.com/user/build-environment-updates/
|
||||
# For precise versions of preinstalled tools on the VM, check “Build system information” in the build log!
|
||||
# Official validator for ".travis.yml" config file: https://yaml.travis-ci.org
|
||||
# Travis CI config documentation: https://docs.travis-ci.com/user/customizing-the-build
|
||||
|
||||
13
.tx/config
Normal file
@@ -0,0 +1,13 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[cockatrice.cockatrice]
|
||||
file_filter = cockatrice/translations/cockatrice_<lang>.ts
|
||||
source_file = cockatrice/translations/cockatrice_en.ts
|
||||
source_lang = en
|
||||
|
||||
[cockatrice.oracle]
|
||||
file_filter = oracle/translations/oracle_<lang>.ts
|
||||
source_file = oracle/translations/oracle_en.ts
|
||||
source_lang = en
|
||||
|
||||
180
CMakeLists.txt
@@ -5,22 +5,17 @@
|
||||
# This file sets all the variables shared between the projects
|
||||
# like the installation path, compilation flags etc..
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
# Cmake 3.1 is required to enable C++11 support correctly
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
if(POLICY CMP0020)
|
||||
cmake_policy(SET CMP0020 OLD)
|
||||
if(POLICY CMP0064)
|
||||
cmake_policy(SET CMP0064 NEW)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0043)
|
||||
cmake_policy(SET CMP0043 OLD)
|
||||
if(POLICY CMP0071)
|
||||
cmake_policy(SET CMP0071 NEW)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 OLD)
|
||||
endif()
|
||||
|
||||
set(PROJECT_NAME "Cockatrice")
|
||||
|
||||
# Default to "Release" build type
|
||||
# User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call
|
||||
IF(DEFINED CMAKE_BUILD_TYPE)
|
||||
@@ -29,9 +24,21 @@ ELSE()
|
||||
SET(CMAKE_BUILD_TYPE Release CACHE STRING "Type of build")
|
||||
ENDIF()
|
||||
|
||||
# A project name is needed for CPack
|
||||
PROJECT("${PROJECT_NAME}")
|
||||
# Early detect ccache
|
||||
find_program(CCACHE_PROGRAM ccache)
|
||||
if(CCACHE_PROGRAM)
|
||||
# Support Unix Makefiles and Ninja
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
MESSAGE(STATUS "Found CCache ${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
# A project name is needed for CPack
|
||||
# Version can be overriden by git tags, see cmake/getversion.cmake
|
||||
PROJECT("Cockatrice" VERSION 2.6.3)
|
||||
|
||||
# Use c++11 for all targets
|
||||
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ ISO Standard")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
|
||||
# Set conventional loops
|
||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||
@@ -48,10 +55,28 @@ include(createversionfile)
|
||||
# Define a proper install path
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
# MacOS X
|
||||
# macOS
|
||||
# Due to the special bundle structure ignore
|
||||
# the prefix eventually set by the user.
|
||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
|
||||
|
||||
# Force ccache usage if available
|
||||
get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
|
||||
if(RULE_LAUNCH_COMPILE)
|
||||
MESSAGE(STATUS "Force enabling CCache usage under macOS")
|
||||
# Set up wrapper scripts
|
||||
configure_file(${CMAKE_MODULE_PATH}/launch-c.in launch-c)
|
||||
configure_file(${CMAKE_MODULE_PATH}/launch-cxx.in launch-cxx)
|
||||
execute_process(COMMAND chmod a+rx
|
||||
"${CMAKE_BINARY_DIR}/launch-c"
|
||||
"${CMAKE_BINARY_DIR}/launch-cxx")
|
||||
|
||||
# Set Xcode project attributes to route compilation through our scripts
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
|
||||
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
|
||||
endif()
|
||||
else()
|
||||
# Linux / BSD
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
@@ -67,19 +92,27 @@ elseif(WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
|
||||
endif()
|
||||
|
||||
# Treat warnings as errors (Debug builds only)
|
||||
option(WARNING_AS_ERROR "Treat warnings as errors in debug builds" ON)
|
||||
|
||||
# Define proper compilation flags
|
||||
IF(MSVC)
|
||||
# Visual Studio:
|
||||
# Maximum optimization
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "/Ox")
|
||||
# Generate complete debugging information
|
||||
# Visual Studio:
|
||||
# Maximum optimization
|
||||
# Disable warning C4251
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /MD /wd4251")
|
||||
# Generate complete debugging information
|
||||
#set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
|
||||
ELSEIF (CMAKE_COMPILER_IS_GNUCXX)
|
||||
# linux/gcc, bsd/gcc, windows/mingw
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-s -O2")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0 -Wall -Wextra -Werror")
|
||||
if(WARNING_AS_ERROR)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0 -Wall -Wextra -Werror")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0 -Wall -Wextra")
|
||||
endif()
|
||||
|
||||
set(ADDITIONAL_DEBUG_FLAGS -Wcast-align -Wmissing-declarations -Wno-long-long -Wno-error=extra -Wno-error=delete-non-virtual-dtor -Wno-error=sign-compare -Wno-error=missing-declarations)
|
||||
|
||||
@@ -100,58 +133,27 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
ADD_DEFINITIONS("-DSFMT_MEXP=19937")
|
||||
ENDIF()
|
||||
|
||||
# Find Qt and enable the needed features
|
||||
# Default is Qt5 unless WITH_QT4 option is enabled
|
||||
option(WITH_QT4 "Force the use of Qt4 libraries" OFF)
|
||||
# Find Qt5
|
||||
OPTION(UPDATE_TRANSLATIONS "Update translations on compile" OFF)
|
||||
MESSAGE("UPDATE TRANSLATIONS: ${UPDATE_TRANSLATIONS}")
|
||||
MESSAGE(STATUS "UPDATE TRANSLATIONS: ${UPDATE_TRANSLATIONS}")
|
||||
|
||||
IF(NOT WITH_QT4)
|
||||
# First known not-broken Qt5 version (5.0.2 available on old ubuntus is buggy).
|
||||
FIND_PACKAGE(Qt5Widgets 5.0.3)
|
||||
ENDIF()
|
||||
FIND_PACKAGE(Qt5Core 5.5.0 REQUIRED)
|
||||
|
||||
IF(Qt5Widgets_FOUND)
|
||||
MESSAGE(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}")
|
||||
IF(Qt5Core_FOUND)
|
||||
MESSAGE(STATUS "Found Qt ${Qt5Core_VERSION_STRING}")
|
||||
|
||||
# FIX: Qt was built with -reduce-relocations
|
||||
if (Qt5_POSITION_INDEPENDENT_CODE)
|
||||
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
FIND_PACKAGE(Qt5LinguistTools)
|
||||
IF(UPDATE_TRANSLATIONS)
|
||||
IF(NOT Qt5_LUPDATE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lupdate not found.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT Qt5_LRELEASE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lrelease not found.")
|
||||
ENDIF()
|
||||
# guess plugins and libraries directory
|
||||
set(QT_PLUGINS_DIR "${Qt5Core_DIR}/../../../plugins")
|
||||
get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION)
|
||||
get_filename_component(QT_LIBRARY_DIR ${QT_LIBRARY_DIR} PATH)
|
||||
|
||||
ELSE()
|
||||
FIND_PACKAGE(Qt4 4.8.0 REQUIRED)
|
||||
IF(QT4_FOUND)
|
||||
# Old FindQt4.cmake modules used the same flag with different case
|
||||
SET(Qt4_FOUND TRUE)
|
||||
ENDIF()
|
||||
IF(Qt4_FOUND)
|
||||
MESSAGE(STATUS "Found Qt ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
|
||||
|
||||
IF(UPDATE_TRANSLATIONS)
|
||||
IF(NOT QT_LUPDATE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lupdate not found.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT QT_LRELEASE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lrelease not found.")
|
||||
ENDIF()
|
||||
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "No Qt4 or Qt5 found!")
|
||||
ENDIF()
|
||||
MESSAGE(FATAL_ERROR "No Qt5 found!")
|
||||
ENDIF()
|
||||
|
||||
set(CMAKE_AUTOMOC TRUE)
|
||||
@@ -164,20 +166,21 @@ IF(WIN32)
|
||||
FIND_PACKAGE(Win32SslRuntime)
|
||||
ENDIF()
|
||||
|
||||
#Find VCredist
|
||||
IF(MSVC)
|
||||
FIND_PACKAGE(VCredistRuntime)
|
||||
ENDIF()
|
||||
|
||||
# Package builder
|
||||
set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com")
|
||||
set(CPACK_PACKAGE_CONTACT "Zach Halpern <zahalpern+github@gmail.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME})
|
||||
set(CPACK_PACKAGE_VENDOR "Cockatrice Development Team")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
||||
|
||||
# Create a version string suitable for file names
|
||||
string(REPLACE " " "_" PROJECT_VERSION_SAFE "${PROJECT_VERSION}")
|
||||
string(REPLACE "(" "" PROJECT_VERSION_SAFE "${PROJECT_VERSION_SAFE}")
|
||||
string(REPLACE ")" "" PROJECT_VERSION_SAFE "${PROJECT_VERSION_SAFE}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_VERSION_FILENAME}")
|
||||
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
@@ -186,24 +189,40 @@ if(UNIX)
|
||||
set(CPACK_DMG_FORMAT "UDBZ")
|
||||
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME}")
|
||||
set(CPACK_SYSTEM_NAME "OSX")
|
||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-osx_git-${PROJECT_VERSION_SAFE}")
|
||||
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/cockatrice/resources/appicon.icns")
|
||||
else()
|
||||
# linux
|
||||
set(CPACK_GENERATOR DEB ${CPACK_GENERATOR})
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}/${PROJECT_VERSION_SAFE}")
|
||||
set(CPACK_STRIP_FILES "bin/${PROJECT_NAME}")
|
||||
set(CPACK_SOURCE_STRIP_FILES "")
|
||||
IF(CPACK_GENERATOR STREQUAL "RPM")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "protobuf, qt5-qttools, qt5-qtsvg, qt5-qtmultimedia")
|
||||
set(CPACK_RPM_PACKAGE_GROUP "Amusements/Games")
|
||||
set(CPACK_RPM_PACKAGE_URL "http://github.com/Cockatrice/Cockatrice")
|
||||
ELSE()
|
||||
set(CPACK_GENERATOR DEB)
|
||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "games")
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://github.com/Cockatrice/Cockatrice")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5multimedia5-plugins, libqt5svg5")
|
||||
ENDIF()
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR})
|
||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_win32_git-${PROJECT_VERSION_SAFE}")
|
||||
if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
|
||||
set(TRICE_IS_64_BIT 1)
|
||||
else()
|
||||
set(TRICE_IS_64_BIT 0)
|
||||
endif()
|
||||
|
||||
# Configure file with custom definitions for NSIS.
|
||||
configure_file(
|
||||
${CMAKE_MODULE_PATH}/NSIS.definitions.nsh.in
|
||||
${PROJECT_BINARY_DIR}/NSIS.definitions.nsh
|
||||
)
|
||||
|
||||
# include vcredist into the package; NSIS will take care of running it
|
||||
if(VCREDISTRUNTIME_FOUND)
|
||||
INSTALL(FILES "${VCREDISTRUNTIME_FILE}" DESTINATION ./)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
@@ -213,21 +232,26 @@ option(WITH_SERVER "build servatrice" OFF)
|
||||
add_subdirectory(common)
|
||||
if(WITH_SERVER)
|
||||
add_subdirectory(servatrice)
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "servatrice;servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "Servatrice;Servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
endif()
|
||||
|
||||
# Compile cockatrice (default on)
|
||||
option(WITH_CLIENT "build cockatrice" ON)
|
||||
if(WITH_CLIENT)
|
||||
add_subdirectory(cockatrice)
|
||||
add_subdirectory(sounds)
|
||||
add_subdirectory(zonebg)
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "cockatrice;cockatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "Cockatrice;Cockatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
endif()
|
||||
|
||||
# Compile oracle (default on)
|
||||
option(WITH_ORACLE "build oracle" ON)
|
||||
if(WITH_ORACLE)
|
||||
add_subdirectory(oracle)
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "release/oracle.app;oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
SET(CPACK_INSTALL_CMAKE_PROJECTS "Oracle;Oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||
endif()
|
||||
|
||||
# Compile tests (default off)
|
||||
option(TEST "build tests" OFF)
|
||||
if(TEST)
|
||||
include(CTest)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
210
CONTRIBUTING.md
@@ -1,210 +0,0 @@
|
||||
# Style Guide #
|
||||
|
||||
### Compatibility ###
|
||||
|
||||
Cockatrice is written in C++-03, so do not use C++11 constructs such as `auto`.
|
||||
|
||||
Cockatrice support both Qt 4 and Qt 5, so make sure that your code compiles
|
||||
with both. If there have been breaking changes between Qt 4 and 5, use a
|
||||
statement such as
|
||||
|
||||
#if QT_VERSION >= 0x500000
|
||||
doSomethingWithQt5();
|
||||
#else
|
||||
doSomethingWithQt4();
|
||||
#endif
|
||||
|
||||
For consistency, use Qt data structures where possible, such as `QString` over
|
||||
`std::string` or `QList` over `std::vector`.
|
||||
|
||||
### Header files ###
|
||||
|
||||
Use header files with the extension `.h` and source files with the extension
|
||||
`.cpp`.
|
||||
|
||||
Use header guards in the form of `FILE_NAME_H`.
|
||||
|
||||
Simple functions, such as getters, may be written inline in the header file,
|
||||
but other functions should be written in the source file.
|
||||
|
||||
Keep library includes and project includes grouped together. So this is okay:
|
||||
|
||||
// Good:
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include "card.h"
|
||||
#include "deck.h"
|
||||
|
||||
// Good:
|
||||
#include "card.h"
|
||||
#include "deck.h"
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
|
||||
// Bad:
|
||||
#include <QList>
|
||||
#include "card.h"
|
||||
#include <QString>
|
||||
#include "deck.h"
|
||||
|
||||
### Naming ###
|
||||
|
||||
Use `UpperCamelCase` for classes, structs, enums, etc. and `lowerCamelCase` for
|
||||
function and variable names.
|
||||
|
||||
Member variables aren't decorated in any way. Don't prefix or suffix with
|
||||
underscores, etc.
|
||||
|
||||
For arguments to constructors which have the same names as member variables,
|
||||
prefix those arguments with underscores:
|
||||
|
||||
MyClass::MyClass(int _myData)
|
||||
: myData(_myData)
|
||||
{}
|
||||
|
||||
Pointers and references should be denoted with the `*` or `&` going with the
|
||||
variable name:
|
||||
|
||||
// Good:
|
||||
Foo *foo1 = new Foo;
|
||||
Foo &foo2 = *foo1;
|
||||
|
||||
// Bad:
|
||||
Bar* bar1 = new Bar;
|
||||
Bar& bar2 = *bar1;
|
||||
|
||||
Use `0` instead of `NULL` (or `nullptr`) for null pointers.
|
||||
|
||||
### Braces ###
|
||||
|
||||
Use K&R-style braces. Braces for function implementations go on their own
|
||||
lines, but they go on the same line everywhere else:
|
||||
|
||||
int main()
|
||||
{
|
||||
if (someCondition) {
|
||||
doSomething();
|
||||
} else {
|
||||
while (someOtherCondition) {
|
||||
doSomethingElse();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Braces can be omitted for single-statement if's and the like, as long as it is
|
||||
still legible.
|
||||
|
||||
### Tabs ###
|
||||
|
||||
Use only spaces. Four spaces per tab.
|
||||
|
||||
### Lines ###
|
||||
|
||||
Do not have trailing whitespace in your lines.
|
||||
|
||||
Lines should be 80 characters or less, as a soft limit.
|
||||
|
||||
### Memory Management ###
|
||||
|
||||
New code should be written using references over pointers and stack allocation
|
||||
over heap allocation wherever possible.
|
||||
|
||||
// Good: uses stack allocation and references
|
||||
void showCard(const Card &card);
|
||||
int main()
|
||||
{
|
||||
Card card;
|
||||
showCard(card);
|
||||
}
|
||||
|
||||
// Bad: relies on manual memory management and doesn't give us much
|
||||
// null-safety.
|
||||
void showCard(const Card *card);
|
||||
int main()
|
||||
{
|
||||
Card *card = new Card;
|
||||
showCard(card);
|
||||
delete card;
|
||||
}
|
||||
|
||||
(Remember to pass by `const` reference wherever possible, to avoid accidentally
|
||||
mutating objects.)
|
||||
|
||||
When pointers can't be avoided, try to use a smart pointer of some sort, such
|
||||
as `QScopedPointer`, or, less preferably, `QSharedPointer`.
|
||||
|
||||
### Translations: introduction ###
|
||||
|
||||
Basic workflow for translations:
|
||||
1. developer adds a `tr("foo")` string in the code;
|
||||
2. every few days, a maintainer updates the `*_en.ts files` adding the new strings;
|
||||
3. Transifex picks up the new files from github every 24 hours;
|
||||
4. translators translate the new untraslated strings on Transifex;
|
||||
5. before a release, a maintainer fetches the updated translations from Transifex.
|
||||
|
||||
### Translations (for developers) ###
|
||||
|
||||
All the user-interface strings inside Cockatrice's source code must be written in
|
||||
english language. Translations to other languages are managed using [Transifex](https://www.transifex.com/projects/p/cockatrice/).
|
||||
|
||||
If you're about to propose a change that adds or modifies any translatable string
|
||||
in the code, you don't need to take care of adding the new strings to the
|
||||
translation files. Every few days, or when a lot of new strings have been added,
|
||||
someone from the development team will take care of extracing all the new strings,
|
||||
adding them to the english translation files and making them available to
|
||||
translators on Transifex.
|
||||
|
||||
### Translations (for maintainers) ###
|
||||
|
||||
#### Step 2: updating *_en.ts files ####
|
||||
|
||||
When new translatable strings have been added to the code, it would be nice to
|
||||
make them available to translators on Transifex. Every few days, or when a lot
|
||||
of new strings have been added, a maintainer should take care of extracing all
|
||||
the new strings and add them to the english translation files.
|
||||
|
||||
To update the english translation files, re-run cmake enabling the appropriate
|
||||
parameter and then run make:
|
||||
|
||||
cd cockatrice/build
|
||||
cmake .. -DUPDATE_TRANSLATIONS=ON
|
||||
make
|
||||
|
||||
If the parameter has been enabled correctly, when running "make" you should see
|
||||
a line similar to this one (the numbers may vary):
|
||||
|
||||
[ 76%] Generating ../../cockatrice/translations/cockatrice_en.ts
|
||||
Updating '../../cockatrice/translations/cockatrice_en.ts'...
|
||||
Found 857 source text(s) (8 new and 849 already existing)
|
||||
|
||||
You should then notice that the following files have uncommitted changes:
|
||||
|
||||
cockatrice/translations/cockatrice_en.ts
|
||||
oracle/translations/oracle_en.ts
|
||||
|
||||
It's now suggested to disable the parameter using:
|
||||
|
||||
cmake .. -DUPDATE_TRANSLATIONS=OFF
|
||||
|
||||
Now you are ready to propose your change. Once your change gets merged,
|
||||
Transifex will pick up the modified files automatically (checks every 24 hours)
|
||||
and update the interface where translators will be able to translate the new
|
||||
strings.
|
||||
|
||||
#### Step 5: fetch new translations from Transifex ####
|
||||
|
||||
Before rushing out a new release, it would be nice to fetch the most up to date
|
||||
translations from Transifex and commit them into the Cockatrice source code.
|
||||
This can be done manually from the Transifex web interface, but it's quite time
|
||||
consuming.
|
||||
|
||||
As an alternative, you can install the Transifex CLI:
|
||||
|
||||
http://docs.transifex.com/developer/client/
|
||||
|
||||
You'll then be able to use a git-like cli command to push and pull translations
|
||||
from Transifex to the source code and vice versa.
|
||||
|
||||
### Translations (for translators) ###
|
||||
|
||||
Please have a look at the specific [FAQ for translators](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ).
|
||||
29
Dockerfile
@@ -1,35 +1,24 @@
|
||||
FROM ubuntu:trusty
|
||||
MAINTAINER Gavin Bisesi <Daenyth@gmail.com>
|
||||
FROM ubuntu:bionic
|
||||
MAINTAINER Zach Halpern <zahalpern+github@gmail.com>
|
||||
|
||||
RUN apt-get update && apt-get install -y software-properties-common
|
||||
RUN apt-add-repository ppa:ubuntu-sdk-team/ppa
|
||||
RUN apt-get update && apt-get install -y\
|
||||
build-essential\
|
||||
cmake\
|
||||
git\
|
||||
libprotobuf-dev\
|
||||
libqt5svg5-dev\
|
||||
libqt5webkit5-dev\
|
||||
libsqlite3-dev\
|
||||
libqt5sql5-mysql\
|
||||
libqt5websockets5-dev\
|
||||
protobuf-compiler\
|
||||
qt5-default\
|
||||
qtbase5-dev\
|
||||
qtdeclarative5-dev\
|
||||
qtmultimedia5-dev\
|
||||
qttools5-dev-tools\
|
||||
qttools5-dev
|
||||
|
||||
ENV dir /home/servatrice/code
|
||||
WORKDIR $dir
|
||||
RUN mkdir oracle
|
||||
COPY COPYING COPYING
|
||||
COPY CMakeLists.txt CMakeLists.txt
|
||||
COPY cmake/ cmake/
|
||||
COPY common/ common/
|
||||
COPY servatrice/ servatrice/
|
||||
COPY README.md README.md
|
||||
COPY . /home/servatrice/code/
|
||||
WORKDIR /home/servatrice/code
|
||||
|
||||
WORKDIR build
|
||||
RUN cmake .. -DWITH_QT4=0 -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 &&\
|
||||
RUN cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 &&\
|
||||
make &&\
|
||||
make install
|
||||
|
||||
@@ -37,4 +26,4 @@ WORKDIR /home/servatrice
|
||||
|
||||
EXPOSE 4747
|
||||
|
||||
CMD servatrice
|
||||
CMD [ "servatrice", "--log-to-console" ]
|
||||
|
||||
163
README.md
@@ -1,62 +1,95 @@
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
||||
<p align='center'><img src=https://cloud.githubusercontent.com/assets/9874850/7516775/b00b8e36-f4d1-11e4-8da4-3df294d01f86.png></p>
|
||||
|
||||
- [Cockatrice](#cockatrice)
|
||||
- [Get Involved [](https://gitter.im/Cockatrice/Cockatrice)](#get-involved-)
|
||||
- [Community Resources](#community-resources)
|
||||
- [Translation Status [](https://www.transifex.com/projects/p/cockatrice/)](#translation-status-)
|
||||
- [Building [](https://travis-ci.org/Cockatrice/Cockatrice)](#building-)
|
||||
- [Building servatrice Docker container](#building-servatrice-docker-container)
|
||||
- [Running](#running)
|
||||
- [License](#license)
|
||||
---
|
||||
|
||||
<p align='center'>
|
||||
<a href="#cockatrice"><b>Cockatrice</b></a> <b>|</b>
|
||||
<a href="#download-">Download</a> <b>|</b>
|
||||
<a href="#get-involved-">Get Involved</a> <b>|</b>
|
||||
<a href="#community-resources">Community</a> <b>|</b>
|
||||
<a href="#translations-">Translations</a> <b>|</b>
|
||||
<a href="#build--">Build</a> <b>|</b>
|
||||
<a href="#run">Run</a> <b>|</b>
|
||||
<a href="#license-">License</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<br><pre>
|
||||
<b>To get started, ⇢ [view our webpage](https://cockatrice.github.io/)</b><br>
|
||||
<b>To get support or suggest changes ⇢ [file an issue](https://github.com/Cockatrice/Cockatrice/issues) ([How?](https://github.com/Cockatrice/Cockatrice/wiki/How-to-Create-a-GitHub-Ticket-Regarding-Cockatrice))</b>
|
||||
<b>To help with development, see how to [get involved](#get-involved-)</b>
|
||||
</pre><br>
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
# Cockatrice
|
||||
|
||||
Cockatrice is an open-source multiplatform software for playing card games,
|
||||
such as Magic: The Gathering, over a network. It is fully client-server based
|
||||
to prevent any kind of cheating, though it supports single-player games without
|
||||
a network interface as well. Both client and server are written in Qt, supporting both Qt4 and Qt5.
|
||||
Cockatrice is an open-source, multiplatform program for playing tabletop card games over a network. The program's server design prevents users from manipulating the game for unfair advantage. The client also provides a single-player mode, which allows users to brew while offline. This project uses C++ and the Qt5 libraries.<br>
|
||||
|
||||
# Get Involved [](https://gitter.im/Cockatrice/Cockatrice)
|
||||
|
||||
Chat with the Cockatrice developers on Gitter. Come here to talk about the application, features, or just to hang out. For support regarding specific servers, please contact that server's admin or forum for support rather than asking here.
|
||||
# Download [](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)
|
||||
|
||||
Downloads are available for full releases and the current beta version in development.<br>
|
||||
Full releases are checkpoints featuring major feature or UI enhancements - we recommend to use those. There is no strict schedule for new full releases.
|
||||
|
||||
The beta release contains the most recently added features and bugfixes, but can be unstable. They are released as we feel need.
|
||||
|
||||
- Latest `stable` release (**recommended**): [](https://github.com/cockatrice/cockatrice/releases/latest) [](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)<br>
|
||||
|
||||
- Latest `beta` release: [](https://github.com/cockatrice/cockatrice/releases) [](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)
|
||||
- Beta versions may be unstable and contain bugs.
|
||||
- To be a Cockatrice Beta Tester, use this version. Find more information [here](https://github.com/Cockatrice/Cockatrice/wiki/Release-Channels)!
|
||||
|
||||
|
||||
# Get Involved [](https://gitter.im/Cockatrice/Cockatrice)
|
||||
|
||||
[Chat](https://gitter.im/Cockatrice/Cockatrice) with the Cockatrice developers on Gitter. Come here to talk about the application, features, or just to hang out. For support regarding specific servers, please contact that server's admin or forum for support rather than asking here.<br>
|
||||
|
||||
To contribute code to the project, please review [the guidelines](https://github.com/Cockatrice/Cockatrice/blob/master/.github/CONTRIBUTING.md).
|
||||
We maintain two tags for contributors to find issues to work on:
|
||||
- [Good first issue](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Good%20first%20issue%22%20): issues tagged in this way provide a simple way to get started. They don't require much experience to be worked on.
|
||||
- [Help wanted](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Help%20Wanted%22%20): This tag is used for issues that we are looking for a contributor to work on. Often this is for feature suggestions we are willing to accept, but don't have the time to work on ourselves.
|
||||
|
||||
For both tags, we're willing to provide help to contributors in showing them where and how they can make changes, as well as code review for changes they submit.
|
||||
|
||||
Read the long-term project **roadmap** to see planned edits and milestones [here](https://docs.google.com/document/d/1Ewe5uSaRE2nR2pNPMaGmP6gVZdqgFbBgwSscGqIr4W0/edit).
|
||||
|
||||
We try to be responsive to new issues. We'll provide advice on how best to implement a feature; alternately, we can show you where the codebase is doing something similar before you get too far along.
|
||||
|
||||
Cockatrice uses the [Google Developer Documentation Style Guide](https://developers.google.com/style/) to ensure consistent documentation. We encourage you to improve the documentation by suggesting edits based on this guide.
|
||||
|
||||
|
||||
# Community Resources
|
||||
- [reddit r/Cockatrice](http://reddit.com/r/cockatrice)
|
||||
- [Woogerworks Server & Forums](http://www.woogerworks.com)
|
||||
|
||||
- [Cockatrice Official Site](https://cockatrice.github.io)
|
||||
- [Cockatrice Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki)
|
||||
- [Cockatrice Official Discord](https://discord.gg/3Z9yzmA)
|
||||
- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
|
||||
|
||||
# Translation Status [](https://www.transifex.com/projects/p/cockatrice/)
|
||||
|
||||
Cockatrice uses Transifex for translations. You can help us bring Cockatrice/Oracle to your language or edit single wordings by clicking on the associated charts below.<br>
|
||||
Our [project page](https://www.transifex.com/projects/p/cockatrice/) offers a detailed overview for contributors.
|
||||
# Translations [](https://www.transifex.com/projects/p/cockatrice/)
|
||||
|
||||
Language statistics for `Cockatrice` *(on the left)* and `Oracle` *(on the right)*:
|
||||
Cockatrice uses Transifex for translations. You can help us bring Cockatrice and Oracle to your language or just edit single wordings right from within your browser by visiting our [Transifex project page](https://www.transifex.com/projects/p/cockatrice/).<br>
|
||||
|
||||
[](https://www.transifex.com/projects/p/cockatrice/resource/cockatrice/) [](https://www.transifex.com/projects/p/cockatrice/resource/oracle/)
|
||||
| Cockatrice | Oracle |
|
||||
|:-:|:-:|
|
||||
| [](https://www.transifex.com/projects/p/cockatrice/) | [](https://www.transifex.com/projects/p/cockatrice/) |
|
||||
|
||||
Check out our [Translator FAQ](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ) for more information!
|
||||
Check out our [Translator FAQ](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ) for more information about contributing!<br>
|
||||
|
||||
# Building [](https://travis-ci.org/Cockatrice/Cockatrice)
|
||||
|
||||
**Detailed installation instructions are on the Cockatrice wiki under [Installing Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Installing-Cockatrice)**
|
||||
# Build [](https://travis-ci.org/Cockatrice/Cockatrice) [](https://ci.appveyor.com/project/Daenyth/cockatrice/branch/master)
|
||||
|
||||
Dependencies:
|
||||
**Detailed compiling instructions are on the Cockatrice wiki under [Compiling Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Compiling-Cockatrice)**
|
||||
|
||||
- [Qt](http://qt-project.org/)
|
||||
- [protobuf](http://code.google.com/p/protobuf/)
|
||||
- [CMake](http://www.cmake.org/)
|
||||
Dependencies: *(for minimum requirements search our [CMake file](https://github.com/Cockatrice/Cockatrice/blob/master/CMakeLists.txt))*
|
||||
- [Qt](https://www.qt.io/developers/)
|
||||
- [protobuf](https://github.com/google/protobuf)
|
||||
- [CMake](https://www.cmake.org/)
|
||||
|
||||
Oracle can optionally use zlib to load zipped files:
|
||||
|
||||
- [zlib](http://www.zlib.net/)
|
||||
|
||||
The server requires an additional dependency when compiled under Qt4:
|
||||
|
||||
- [libgcrypt](http://www.gnu.org/software/libgcrypt/)
|
||||
Oracle can optionally use zlib and xz to load compressed files:
|
||||
- [zlib](https://www.zlib.net/)
|
||||
- [xz](https://tukaani.org/xz/)
|
||||
|
||||
To compile:
|
||||
|
||||
@@ -64,26 +97,50 @@ To compile:
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
|
||||
You can then run
|
||||
|
||||
make install
|
||||
|
||||
to get a cockatrice installation inside the `release` folder, or:
|
||||
|
||||
make package
|
||||
|
||||
to create a system-specific installation package.
|
||||
|
||||
The following flags can be passed to `cmake`:
|
||||
|
||||
- `-DWITH_SERVER=1` Build the server
|
||||
- `-DWITH_CLIENT=0` Do not build the client
|
||||
- `-DWITH_ORACLE=0` Do not build Oracle
|
||||
- `-DWITH_QT4=1` Force compilation to use Qt4 instead of Qt5.
|
||||
- `-DCMAKE_BUILD_TYPE=Debug` Compile in debug mode. Enables extra logging output, debug symbols, and much more verbose compiler warnings.
|
||||
- `-DUPDATE_TRANSLATIONS=1` Configure `make` to update the translation .ts files for new strings in the source code. Note: Running `make clean` will remove the .ts files.
|
||||
- `-DWITH_SERVER=1` Whether to build the server (default 0 = no).
|
||||
- `-DWITH_CLIENT=0` Whether to build the client (default 1 = yes).
|
||||
- `-DWITH_ORACLE=0` Whether to build oracle (default 1 = yes).
|
||||
- `-DCMAKE_BUILD_TYPE=Debug` Compile in debug mode. Enables extra logging output, debug symbols, and much more verbose compiler warnings (default `Release`).
|
||||
- `-DWARNING_AS_ERROR=0` Whether to treat compilation warnings as errors in debug mode (default 1 = yes).
|
||||
- `-DUPDATE_TRANSLATIONS=1` Configure `make` to update the translation .ts files for new strings in the source code. Note: Running `make clean` will remove the .ts files (default 0 = no).
|
||||
- `-DTEST=1` Enable regression tests (default 0 = no). Note: needs googletest, will be downloaded on the fly if unavailable. To run tests: ```make test```.
|
||||
|
||||
# Building servatrice Docker container
|
||||
`docker build -t servatrice .`
|
||||
|
||||
# Running
|
||||
# Run
|
||||
|
||||
`oracle` fetches card data
|
||||
`cockatrice` is the game client
|
||||
`servatrice` is the server
|
||||
`Cockatrice` is the game client<br>
|
||||
`Oracle` fetches card data<br>
|
||||
`Servatrice` is the server<br>
|
||||
|
||||
# License
|
||||
|
||||
Cockatrice is free software, licensed under the GPLv2; see COPYING for details.
|
||||
**Servatrice Docker container**
|
||||
|
||||
You can run an instance of Servatrice (the Cockatrice server) using [Docker](https://www.docker.com/what-docker) and the Cockatrice Dockerfile.<br>
|
||||
|
||||
First, create an image from the Dockerfile<br>
|
||||
`cd /path/to/Cockatrice-Repo/`
|
||||
`docker build -t servatrice .`<br>
|
||||
And then run it<br>
|
||||
`docker run -i -p 4747:4747/tcp -t servatrice:latest`<br>
|
||||
|
||||
>Note: Running this command exposes the TCP port 4747 of the docker container<br>
|
||||
to permit connections to the server.
|
||||
|
||||
Find more information on how to use Servatrice with Docker in our [wiki](https://github.com/Cockatrice/Cockatrice/wiki/Setting-up-Servatrice#using-docker).
|
||||
|
||||
# License [](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE)
|
||||
|
||||
Cockatrice is free software, licensed under the [GPLv2](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE).
|
||||
|
||||
34
TODO.md
@@ -1,34 +0,0 @@
|
||||
#TODOs
|
||||
|
||||
This is an unordered list of possible todo items for Cockatrice.
|
||||
Note that "improve" and "write" always also means: "document and comment"
|
||||
|
||||
##Improve packaging:
|
||||
* Improve nsis file git hash extraction, it only works if the build directory is cleared as version_string.cpp does not seem to get updated by git pull/cmake
|
||||
* Create script/... for creating Linux packages (deb, rpm, ebuild, ...) or at least an official tarball/git tags; package maintainers dislike using git snapshots so much that they rather ignore software without stable tarballs.
|
||||
|
||||
##Scripts
|
||||
* Write example init script for servatrice.
|
||||
|
||||
##Improve usermanual:
|
||||
* Improve Layout, Text, Screenshots; nearly everything is still quick n dirty copy and paste.
|
||||
* Add missing TODOs
|
||||
* Translate the Documentation
|
||||
* Rename the picture filenames to something more meaningful.
|
||||
* Create an index, lists of tables/figures/...
|
||||
|
||||
##Create developer documentation:
|
||||
* Create developer manual
|
||||
* Add comments to code
|
||||
* Describe which components exist and how they work and interact
|
||||
* Describe the *.proto files
|
||||
* Comment and document servatrice.sql
|
||||
* Document everything!1!!
|
||||
|
||||
##Else
|
||||
|
||||
* Update SFMT library (http://www.math.sci.hiroshima-u.ac.jp/~m-mat@math.sci.hiroshima-u.ac.jp/MT/SFMT/) in common/sfmt and adapt common/rng_sfmt.cpp
|
||||
|
||||
* Move hardcoded URLs (especially from oracle and cockatrice) into a config file.
|
||||
|
||||
* Search git log for useful information/problems/bugs/...
|
||||
209
clangify.sh
Executable file
@@ -0,0 +1,209 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script will run clang-format on all modified, non-3rd-party C++/Header files.
|
||||
# Never, ever, should this recieve a path with a newline in it. Don't bother proofing it for that.
|
||||
|
||||
|
||||
# go to the project root directory, this file should be located in the project root directory
|
||||
cd "${BASH_SOURCE%/*}/" || exit 2 # could not find path, this could happen with special links etc.
|
||||
|
||||
# defaults
|
||||
include=("common" \
|
||||
"cockatrice/src" \
|
||||
"oracle/src" \
|
||||
"servatrice/src")
|
||||
exclude=("servatrice/src/smtp" \
|
||||
"common/sfmt" \
|
||||
"common/lib" \
|
||||
"oracle/src/zip" \
|
||||
"oracle/src/lzma" \
|
||||
"oracle/src/qt-json")
|
||||
exts=("cpp" "h")
|
||||
cf_cmd="clang-format"
|
||||
branch="origin/master"
|
||||
|
||||
# parse options
|
||||
while [[ $@ ]]; do
|
||||
case "$1" in
|
||||
'-b'|'--branch')
|
||||
branch=$2
|
||||
set_branch=1
|
||||
shift 2
|
||||
;;
|
||||
'-c'|'--color-diff')
|
||||
color=" --color=always"
|
||||
mode=diff
|
||||
shift
|
||||
;;
|
||||
'-d'|'--diff')
|
||||
mode=diff
|
||||
shift
|
||||
;;
|
||||
'-h'|'--help')
|
||||
cat <<EOM
|
||||
A bash script to automatically format your code using clang-format.
|
||||
|
||||
If no options are given, all dirty source files are edited in place.
|
||||
If <dir>s are given, all source files in those directories of the project root
|
||||
path are formatted. To only format changed files in these directories use the
|
||||
--branch option in combination. <dir> has to be a path relative to the project
|
||||
root path or a full path inside $PWD.
|
||||
. can not be specified as a dir, if you really want to format everything use */.
|
||||
|
||||
USAGE: $0 [option] [--branch <git branch or object>] [<dir> ...]
|
||||
|
||||
DEFAULTS:
|
||||
Current includes are:
|
||||
${include[@]/%/
|
||||
}
|
||||
Default excludes are:
|
||||
${exclude[@]/%/
|
||||
}
|
||||
OPTIONS:
|
||||
-b, --branch <branch>
|
||||
Compare to this git branch and format only files that differ.
|
||||
If unspecified it defaults to origin/master.
|
||||
To not compare to a branch this has to be explicitly set to "".
|
||||
When not comparing to a branch, git will not be used at all and every
|
||||
source file in the entire project will be parsed.
|
||||
|
||||
-c, --color-diff
|
||||
Display a colored diff. Implies --diff.
|
||||
Only available on systems which support 'diff --color'.
|
||||
|
||||
-d, --diff
|
||||
Display a diff. Implies --test.
|
||||
|
||||
-h, --help
|
||||
Display this message and exit.
|
||||
|
||||
-n, --names
|
||||
Display a list of filenames that require formatting. Implies --test.
|
||||
|
||||
-t, --test
|
||||
Do not edit files in place. Set exit code to 1 if changes are required.
|
||||
|
||||
--cf-version
|
||||
Print the version of clang-format being used before continuing.
|
||||
|
||||
EXIT CODES:
|
||||
0 on a successful format or if no files require formatting.
|
||||
1 if a file requires formatting.
|
||||
2 if given incorrect arguments.
|
||||
3 if clang-format could not be found.
|
||||
|
||||
EXAMPLES:
|
||||
$0 --test \$PWD || echo "code requires formatting"
|
||||
Tests if the source files in the current directory are correctly
|
||||
formatted and prints an error message if formatting is required.
|
||||
|
||||
$0 --branch $USER/patch-2 ${include[0]}
|
||||
Formats all changed files compared to the git branch "$USER/patch-2"
|
||||
in the directory ${include[0]}.
|
||||
EOM
|
||||
exit 0
|
||||
;;
|
||||
'-n'|'--names')
|
||||
mode=name
|
||||
shift
|
||||
;;
|
||||
'-t'|'--test')
|
||||
mode=code
|
||||
shift
|
||||
;;
|
||||
'--cf-version')
|
||||
print_version=1
|
||||
shift
|
||||
;;
|
||||
'--')
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
if next_dir=$(cd "$1" && pwd); then
|
||||
if [[ ${next_dir#$PWD/} == /* ]]; then
|
||||
echo "error in parsing arguments of $0: $next_dir is not in $PWD" >&2
|
||||
exit 2 # input error
|
||||
elif ! [[ $set_include ]]; then
|
||||
include=() # remove default includes
|
||||
set_include=1
|
||||
fi
|
||||
include+=("${next_dir#$PWD/}")
|
||||
else
|
||||
echo "error in parsing arguments of $0: $PWD/$1 is not a directory" >&2
|
||||
exit 2 # input error
|
||||
fi
|
||||
if ! [[ $set_branch ]]; then
|
||||
unset branch # unset branch if not set explicitly
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# check availability of clang-format
|
||||
if ! hash $cf_cmd 2>/dev/null; then
|
||||
echo "could not find $cf_cmd" >&2
|
||||
# find any clang-format-x.x in /usr/bin
|
||||
cf_cmd=$(find /usr/bin -regex '.*/clang-format-[0-9]+\.[0-9]+' -print -quit)
|
||||
if [[ $cf_cmd ]]; then
|
||||
echo "found $cf_cmd instead" >&2
|
||||
else
|
||||
exit 3 # special exit code for missing dependency
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $branch ]]; then
|
||||
# get all dirty files through git
|
||||
if ! base=$(git merge-base ${branch} HEAD); then
|
||||
echo "could not find git merge base" >&2
|
||||
exit 2 # input error
|
||||
fi
|
||||
declare -a reg
|
||||
for ex in ${exts[@]}; do
|
||||
reg+=(${include[@]/%/.*\\.$ex\$})
|
||||
done
|
||||
names=$(git diff --name-only $base | grep ${reg[@]/#/-e ^})
|
||||
else
|
||||
names=$(find ${include[@]} -type f -false ${exts[@]/#/-o -name *\\.})
|
||||
fi
|
||||
|
||||
# filter excludes
|
||||
names=$(<<<"$names" grep -v ${exclude[@]/#/-e ^})
|
||||
|
||||
if ! [[ $names ]]; then
|
||||
exit 0 # nothing to format means format is successful!
|
||||
fi
|
||||
|
||||
# optionally print version
|
||||
[[ $print_version ]] && $cf_cmd -version
|
||||
|
||||
# format
|
||||
case $mode in
|
||||
diff)
|
||||
declare -i code=0
|
||||
for name in ${names[@]}; do
|
||||
if ! $cf_cmd "$name" | diff "$name" - -p $color; then
|
||||
code=1
|
||||
fi
|
||||
done
|
||||
exit $code
|
||||
;;
|
||||
name)
|
||||
declare -i code=0
|
||||
for name in ${names[@]}; do
|
||||
if ! $cf_cmd "$name" | diff "$name" - -q >/dev/null; then
|
||||
echo "$name"
|
||||
code=1
|
||||
fi
|
||||
done
|
||||
exit $code
|
||||
;;
|
||||
code)
|
||||
for name in ${names[@]}; do
|
||||
$cf_cmd "$name" | diff "$name" - -q >/dev/null || exit 1
|
||||
done
|
||||
;;
|
||||
*)
|
||||
$cf_cmd -i $names
|
||||
;;
|
||||
esac
|
||||
18
cmake/FindLibexecinfo.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
# Find the LibExecinfo library - FreeBSD only
|
||||
|
||||
FIND_PATH(LIBEXECINFO_INCLUDE_DIR execinfo.h)
|
||||
FIND_LIBRARY(LIBEXECINFO_LIBRARY NAMES execinfo)
|
||||
|
||||
IF(LIBEXECINFO_INCLUDE_DIR AND LIBEXECINFO_LIBRARY)
|
||||
SET(LIBEXECINFO_FOUND TRUE)
|
||||
ENDIF()
|
||||
|
||||
IF(LIBEXECINFO_FOUND)
|
||||
IF(NOT LIBEXECINFO_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found LibExecinfo: ${EXECINFO_LIBRARY}")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF(LIBEXECINFO_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find LibExecinfo")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
@@ -1,46 +0,0 @@
|
||||
# -*- cmake -*-
|
||||
|
||||
# Copied from http://code.google.com/p/emeraldviewer/
|
||||
|
||||
# - Find libgcrypt
|
||||
# Find the libgcrypt includes and library
|
||||
# This module defines
|
||||
# LIBGCRYPT_INCLUDE_DIR, where to find gcrypt.h, etc.
|
||||
# LIBGCRYPT_LIBRARIES, the libraries needed to use libgcrypt.
|
||||
# LIBGCRYPT_FOUND, If false, do not try to use libgcrypt.
|
||||
# also defined, but not for general use are
|
||||
# LIBGCRYPT_LIBRARY, where to find the libgcrypt library.
|
||||
|
||||
FIND_PATH(LIBGCRYPT_INCLUDE_DIR gcrypt.h)
|
||||
|
||||
SET(LIBGCRYPT_NAMES ${LIBGCRYPT_NAMES} gcrypt)
|
||||
FIND_LIBRARY(LIBGCRYPT_LIBRARY
|
||||
NAMES ${LIBGCRYPT_NAMES}
|
||||
)
|
||||
|
||||
IF (LIBGCRYPT_LIBRARY AND LIBGCRYPT_INCLUDE_DIR)
|
||||
SET(LIBGCRYPT_LIBRARIES ${LIBGCRYPT_LIBRARY})
|
||||
SET(LIBGCRYPT_FOUND "YES")
|
||||
ELSE (LIBGCRYPT_LIBRARY AND LIBGCRYPT_INCLUDE_DIR)
|
||||
SET(LIBGCRYPT_FOUND "NO")
|
||||
ENDIF (LIBGCRYPT_LIBRARY AND LIBGCRYPT_INCLUDE_DIR)
|
||||
|
||||
|
||||
IF (LIBGCRYPT_FOUND)
|
||||
IF (NOT LIBGCRYPT_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found libgcrypt: '${LIBGCRYPT_LIBRARIES}' and header in '${LIBGCRYPT_INCLUDE_DIR}'")
|
||||
ENDIF (NOT LIBGCRYPT_FIND_QUIETLY)
|
||||
ELSE (LIBGCRYPT_FOUND)
|
||||
IF (LIBGCRYPT_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find libgcrypt library")
|
||||
ENDIF (LIBGCRYPT_FIND_REQUIRED)
|
||||
ENDIF (LIBGCRYPT_FOUND)
|
||||
|
||||
# Deprecated declarations.
|
||||
SET (NATIVE_LIBGCRYPT_INCLUDE_PATH ${LIBGCRYPT_INCLUDE_DIR} )
|
||||
GET_FILENAME_COMPONENT (NATIVE_LIBGCRYPT_LIB_PATH ${LIBGCRYPT_LIBRARY} PATH)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LIBGCRYPT_LIBRARY
|
||||
LIBGCRYPT_INCLUDE_DIR
|
||||
)
|
||||
@@ -1,158 +0,0 @@
|
||||
INCLUDE(FindQt4)
|
||||
|
||||
set(MOBILITY_CONFIG_MKSPECS_FILE "")
|
||||
IF(EXISTS "${QT_MKSPECS_DIR}/features/mobilityconfig.prf")
|
||||
set(MOBILITY_CONFIG_MKSPECS_FILE "${QT_MKSPECS_DIR}/features/mobilityconfig.prf")
|
||||
ELSEIF(EXISTS "${QT_MKSPECS_DIR}/features/mobility.prf")
|
||||
set(MOBILITY_CONFIG_MKSPECS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/mobilityconfig.prf")
|
||||
ENDIF()
|
||||
|
||||
macro(export_component component)
|
||||
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
|
||||
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS)
|
||||
STRING(TOLOWER ${component} _COMPONENT)
|
||||
IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*${_COMPONENT}.*")
|
||||
STRING(TOUPPER ${component} _COMPONENT)
|
||||
SET(QT_MOBILITY_${_COMPONENT}_FOUND 1)
|
||||
SET(QT_MOBILITY_${_COMPONENT}_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/Qt${component})
|
||||
SET(QT_MOBILITY_${_COMPONENT}_LIBRARY Qt${component})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
endmacro()
|
||||
|
||||
set(VERSION_INFO "")
|
||||
set(FEATURE_FILE_PREFIX "${QT_MKSPECS_DIR}/features/mobility")
|
||||
|
||||
if(DEFINED MOBILITY_VERSION)
|
||||
if(MOBILITY_VERSION STREQUAL "1.1" AND EXISTS "${FEATURE_FILE_PREFIX}11.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf")
|
||||
set(VERSION_INFO "1.1")
|
||||
elseif(MOBILITY_VERSION STREQUAL "1.2" AND EXISTS "${FEATURE_FILE_PREFIX}12.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf")
|
||||
set(VERSION_INFO "1.2")
|
||||
elseif(MOBILITY_VERSION STREQUAL "default" AND EXISTS "${FEATURE_FILE_PREFIX}.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf")
|
||||
set(VERSION_INFO "system's default")
|
||||
else()
|
||||
message(STATUS "Couldn't find QtMobility version: ${MOBILITY_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED MOBILITY_PRF_FILE)
|
||||
if(EXISTS "${FEATURE_FILE_PREFIX}.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf")
|
||||
set(VERSION_INFO "system's default")
|
||||
elseif(EXISTS "${FEATURE_FILE_PREFIX}12.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf")
|
||||
set(VERSION_INFO "1.2")
|
||||
elseif(EXISTS "${FEATURE_FILE_PREFIX}11.prf")
|
||||
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf")
|
||||
set(VERSION_INFO "1.1")
|
||||
else()
|
||||
message(FATAL_ERROR "Couldn't find any version of QtMobility.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "Using QtMobility version: ${VERSION_INFO}")
|
||||
|
||||
IF(DEFINED MOBILITY_PRF_FILE)
|
||||
FILE(READ ${MOBILITY_PRF_FILE} MOBILITY_FILE_CONTENTS)
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_PREFIX=([^\n]+)" QT_MOBILITY_PREFIX "${MOBILITY_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_PREFIX ${CMAKE_MATCH_1})
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_INCLUDE=([^\n]+)" QT_MOBILITY_INCLUDE_DIR "${MOBILITY_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_INCLUDE_DIR ${CMAKE_MATCH_1})
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_LIB=([^\n]+)" "\\1" QT_MOBILITY_LIBRARY "${MOBILITY_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_LIBRARY_DIR ${CMAKE_MATCH_1})
|
||||
|
||||
#VERSION
|
||||
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
|
||||
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_CONFIG_FILE_CONTENTS)
|
||||
STRING(REGEX MATCH "MOBILITY_VERSION = ([^\n]+)" QT_MOBILITY_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_VERSION ${CMAKE_MATCH_1})
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_MAJOR_VERSION = ([^\n]+)" QT_MOBILITY_MAJOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_MAJOR_VERSION ${CMAKE_MATCH_1})
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_MINOR_VERSION = ([^\n]+)" QT_MOBILITY_MINOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_MINOR_VERSION ${CMAKE_MATCH_1})
|
||||
|
||||
STRING(REGEX MATCH "MOBILITY_PATCH_VERSION = ([^\n]+)" QT_MOBILITY_PATCH_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
|
||||
SET(QT_MOBILITY_PATCH_VERSION ${CMAKE_MATCH_1})
|
||||
ELSE()
|
||||
SET(QT_MOBILITY_VERSION 1.0.0)
|
||||
SET(QT_MOBILITY_MAJOR_VERSION 1)
|
||||
SET(QT_MOBILITY_MINOR_VERSION 0)
|
||||
SET(QT_MOBILITY_PATCH_VERSION 0)
|
||||
ENDIF()
|
||||
|
||||
SET(QT_MOBILITY_PARENT_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR})
|
||||
SET(QT_MOBILITY_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR}/QtMobility)
|
||||
|
||||
IF(QtMobility_FIND_VERSION_EXACT)
|
||||
IF(QT_MOBILITY_VERSION VERSION_EQUAL QtMobility_FIND_VERSION)
|
||||
SET(QT_MOBILITY_FOUND TRUE)
|
||||
ELSE()
|
||||
SET(QT_MOBILITY_FOUND FALSE)
|
||||
IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION)
|
||||
SET(QT_MOBILITY_TOO_OLD TRUE)
|
||||
ELSE()
|
||||
SET(QT_MOBILITY_TOO_NEW TRUE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION)
|
||||
SET(QT_MOBILITY_FOUND FALSE)
|
||||
SET(QT_MOBILITY_TOO_OLD TRUE)
|
||||
ELSE()
|
||||
SET(QT_MOBILITY_FOUND TRUE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(QT_MOBILITY_FOUND NOTFOUND)
|
||||
SET(QT_MOBILITY_PREFIX NOTFOUND)
|
||||
SET(QT_MOBILITY_INCLUDE NOTFOUND)
|
||||
SET(QT_MOBILITY_LIB NOTFOUND)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT QT_MOBILITY_FOUND)
|
||||
if(QT_MOBILITY_TOO_OLD)
|
||||
MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too old, version ${QtMobility_FIND_VERSION} is required.")
|
||||
ELSEIF(QT_MOBILITY_TOO_NEW)
|
||||
MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too new, version ${QtMobility_FIND_VERSION} is required.")
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "QtMobility not found.")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
export_component(Bearer)
|
||||
export_component(Feedback)
|
||||
export_component(Gallery)
|
||||
export_component(PublishSubscribe)
|
||||
export_component(Location)
|
||||
export_component(Organizer)
|
||||
export_component(ServiceFramework)
|
||||
export_component(SystemInfo)
|
||||
export_component(Contacts)
|
||||
export_component(Messaging)
|
||||
export_component(Versit)
|
||||
export_component(Sensors)
|
||||
# VersitOrganizer
|
||||
if(${QT_MOBILITY_CONTACTS_FOUND} AND ${QT_MOBILITY_VERSIT_FOUND})
|
||||
SET(QT_MOBILITY_VERSITORGANIZER_FOUND 1)
|
||||
SET(QT_MOBILITY_VERSITORGANIZER_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtVersitOrganizer)
|
||||
SET(QT_MOBILITY_VERSITORGANIZER_LIBRARY QtVersitOrganizer)
|
||||
endif()
|
||||
|
||||
# MultimediaKit - it's just 'multimedia' in the .prf file.
|
||||
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
|
||||
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS)
|
||||
IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*multimedia.*")
|
||||
SET(QT_MOBILITY_MULTIMEDIAKIT_FOUND 1)
|
||||
SET(QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtMultimediaKit)
|
||||
SET(QT_MOBILITY_MULTIMEDIAKIT_LIBRARY QtMultimediaKit)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
36
cmake/FindVCredistRuntime.cmake
Normal file
@@ -0,0 +1,36 @@
|
||||
# Find the MS Visual Studio VC redistributable package
|
||||
|
||||
if (WIN32)
|
||||
set(VCREDISTRUNTIME_FOUND "NO")
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64-bit
|
||||
set(REDIST_ARCH x64)
|
||||
else()
|
||||
set(REDIST_ARCH x86)
|
||||
endif()
|
||||
|
||||
set(REDIST_FILE vcredist_${REDIST_ARCH}.exe)
|
||||
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
||||
# Check if the list contains minimum one element, to get the path from
|
||||
list(LENGTH CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS libsCount)
|
||||
if (libsCount GREATER 0)
|
||||
list(GET CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS 0 _path)
|
||||
|
||||
get_filename_component(_path ${_path} DIRECTORY)
|
||||
get_filename_component(_path ${_path}/../../ ABSOLUTE)
|
||||
|
||||
if (EXISTS "${_path}/${REDIST_FILE}") # VS 2017
|
||||
set(VCREDISTRUNTIME_FOUND "YES")
|
||||
set(VCREDISTRUNTIME_FILE ${_path}/${REDIST_FILE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(VCREDISTRUNTIME_FOUND)
|
||||
message(STATUS "Found VCredist ${VCREDISTRUNTIME_FILE}")
|
||||
else()
|
||||
message(WARNING "Could not find VCredist package. It's not required for compiling, but needs to be available at runtime.")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,52 +1,71 @@
|
||||
# Find the OpenSSL runtime libraries (.dll) for Windows that
|
||||
# will be needed by Qt in order to access https urls.
|
||||
|
||||
if (WIN32)
|
||||
# Get standard installation paths for OpenSSL under Windows
|
||||
|
||||
# http://www.slproweb.com/products/Win32OpenSSL.html
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
|
||||
set(_OPENSSL_ROOT_PATHS
|
||||
"${_programfiles}/OpenSSL"
|
||||
"${_programfiles}/OpenSSL-Win32"
|
||||
"${_programfiles}/OpenSSL-Win64"
|
||||
"C:/OpenSSL/"
|
||||
"C:/OpenSSL-Win32/"
|
||||
"C:/OpenSSL-Win64/"
|
||||
)
|
||||
unset(_programfiles)
|
||||
else ()
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
endif ()
|
||||
|
||||
set(_OPENSSL_ROOT_HINTS_AND_PATHS
|
||||
HINTS ${_OPENSSL_ROOT_HINTS}
|
||||
PATHS ${_OPENSSL_ROOT_PATHS}
|
||||
)
|
||||
|
||||
FIND_FILE(WIN32SSLRUNTIME_LIBEAY NAMES libeay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
|
||||
FIND_FILE(WIN32SSLRUNTIME_SSLEAY NAMES ssleay32.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
|
||||
|
||||
|
||||
IF(WIN32SSLRUNTIME_LIBEAY AND WIN32SSLRUNTIME_SSLEAY)
|
||||
SET(WIN32SSLRUNTIME_LIBRARIES "${WIN32SSLRUNTIME_LIBEAY}" "${WIN32SSLRUNTIME_SSLEAY}")
|
||||
SET(WIN32SSLRUNTIME_FOUND "YES")
|
||||
message(STATUS "Found OpenSSL ${WIN32SSLRUNTIME_LIBRARIES}")
|
||||
ELSE()
|
||||
SET(WIN32SSLRUNTIME_FOUND "NO")
|
||||
message(WARNING "Could not find OpenSSL runtime libraries. They are not required for compiling, but needs to be available at runtime.")
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
WIN32SSLRUNTIME_LIBEAY
|
||||
WIN32SSLRUNTIME_SSLEAY
|
||||
)
|
||||
# Find the OpenSSL runtime libraries (.dll) for Windows that
|
||||
# will be needed by Qt in order to access https urls.
|
||||
|
||||
if (WIN32)
|
||||
# Get standard installation paths for OpenSSL under Windows
|
||||
|
||||
# http://www.slproweb.com/products/Win32OpenSSL.html
|
||||
|
||||
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
||||
# target win64
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
|
||||
set(_OPENSSL_ROOT_PATHS
|
||||
"C:/Tools/vcpkg/installed/x64-windows/bin"
|
||||
"${_programfiles}/OpenSSL-Win64"
|
||||
"C:/OpenSSL-Win64/"
|
||||
)
|
||||
unset(_programfiles)
|
||||
else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
||||
# target win32
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
|
||||
set(_OPENSSL_ROOT_PATHS
|
||||
"C:/Tools/vcpkg/installed/x86-windows/bin"
|
||||
"${_programfiles}/OpenSSL"
|
||||
"${_programfiles}/OpenSSL-Win32"
|
||||
"C:/OpenSSL/"
|
||||
"C:/OpenSSL-Win32/"
|
||||
)
|
||||
unset(_programfiles)
|
||||
endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
||||
|
||||
else ()
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
endif ()
|
||||
|
||||
set(_OPENSSL_ROOT_HINTS_AND_PATHS
|
||||
HINTS ${_OPENSSL_ROOT_HINTS}
|
||||
PATHS ${_OPENSSL_ROOT_PATHS}
|
||||
)
|
||||
|
||||
# For OpenSSL < 1.1, they are named libeay32 and ssleay32 and even if the dll is 64bit, it's still suffixed as *32.dll
|
||||
# For OpenSSL >= 1.1, they are named libcrypto and libssl with no suffix
|
||||
FIND_FILE(WIN32SSLRUNTIME_LIBEAY NAMES libeay32.dll libcrypto.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
|
||||
FIND_FILE(WIN32SSLRUNTIME_SSLEAY NAMES ssleay32.dll libssl.dll ${_OPENSSL_ROOT_HINTS_AND_PATHS})
|
||||
|
||||
|
||||
IF(WIN32SSLRUNTIME_LIBEAY AND WIN32SSLRUNTIME_SSLEAY)
|
||||
SET(WIN32SSLRUNTIME_LIBRARIES "${WIN32SSLRUNTIME_LIBEAY}" "${WIN32SSLRUNTIME_SSLEAY}")
|
||||
SET(WIN32SSLRUNTIME_FOUND "YES")
|
||||
message(STATUS "Found OpenSSL ${WIN32SSLRUNTIME_LIBRARIES}")
|
||||
ELSE()
|
||||
SET(WIN32SSLRUNTIME_FOUND "NO")
|
||||
message(WARNING "Could not find OpenSSL runtime libraries. They are not required for compiling, but needs to be available at runtime.")
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
WIN32SSLRUNTIME_LIBEAY
|
||||
WIN32SSLRUNTIME_SSLEAY
|
||||
)
|
||||
|
||||
@@ -34,5 +34,7 @@
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
<key>NSRequiresAquaSystemAppearance</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
</plist>
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
!define NSIS_SOURCE_PATH "@PROJECT_SOURCE_DIR@"
|
||||
!define NSIS_SOURCE_PATH "@PROJECT_SOURCE_DIR@"
|
||||
!define NSIS_IS_64_BIT @TRICE_IS_64_BIT@
|
||||
@@ -1,14 +1,22 @@
|
||||
!include ..\..\..\NSIS.definitions.nsh
|
||||
!include "MUI2.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
|
||||
Name "@CPACK_PACKAGE_NAME@"
|
||||
BrandingText "@CPACK_PACKAGE_NAME@-@CPACK_PACKAGE_VERSION_MAJOR@"
|
||||
BrandingText "@CPACK_PACKAGE_FILE_NAME@"
|
||||
OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
|
||||
SetCompressor /SOLID lzma
|
||||
InstallDir "$PROGRAMFILES\Cockatrice"
|
||||
|
||||
!define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
|
||||
|
||||
RequestExecutionlevel highest
|
||||
SetCompressor LZMA
|
||||
|
||||
Var NormalDestDir
|
||||
Var PortableDestDir
|
||||
Var PortableMode
|
||||
|
||||
!include LogicLib.nsh
|
||||
!include FileFunc.nsh
|
||||
!include MUI2.nsh
|
||||
!include x64.nsh
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
|
||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
|
||||
@@ -16,12 +24,13 @@ InstallDir "$PROGRAMFILES\Cockatrice"
|
||||
!define MUI_HEADERIMAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
|
||||
!define MUI_HEADERIMAGE_UNBITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
|
||||
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Cockatrice.$\r$\n$\r$\nClick Next to continue."
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR/oracle.exe"
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Run 'Oracle' now to update your card database"
|
||||
!define MUI_FINISHPAGE_RUN_PARAMETERS "-dlsets"
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR/cockatrice.exe"
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Run 'Cockatrice' now"
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "${NSIS_SOURCE_PATH}\COPYING"
|
||||
!insertmacro MUI_PAGE_LICENSE "${NSIS_SOURCE_PATH}\LICENSE"
|
||||
Page Custom PortableModePageCreate PortableModePageLeave
|
||||
!define MUI_PAGE_CUSTOMFUNCTION_PRE componentsPagePre
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
@@ -32,58 +41,181 @@ InstallDir "$PROGRAMFILES\Cockatrice"
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
!insertmacro MUI_LANGUAGE English
|
||||
|
||||
Function .onInit
|
||||
|
||||
${If} ${NSIS_IS_64_BIT} == 1 #NSIS 64bit
|
||||
${IfNot} ${RunningX64}
|
||||
MessageBox MB_OK|MB_ICONSTOP "This version of Cockatrice requires a 64-bit Windows system."
|
||||
Abort
|
||||
${EndIf}
|
||||
StrCpy $NormalDestDir "$ProgramFiles64\Cockatrice"
|
||||
SetRegView 64
|
||||
${Else} #NSIS 32bit
|
||||
${If} ${RunningX64}
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
||||
"You are about to install a 32-bit version of Cockatrice on a 64-bit Windows system.$\n\
|
||||
We advise you to use the correct 64-bit installer instead to get around potential issues.$\n$\n\
|
||||
Download from our webpage: https://cockatrice.github.io"
|
||||
${EndIf}
|
||||
StrCpy $NormalDestDir "$ProgramFiles\Cockatrice"
|
||||
${EndIf}
|
||||
|
||||
StrCpy $PortableDestDir "$Desktop\CockatricePortable"
|
||||
|
||||
${GetParameters} $9
|
||||
|
||||
ClearErrors
|
||||
${GetOptions} $9 "/?" $8
|
||||
${IfNot} ${Errors}
|
||||
MessageBox MB_ICONINFORMATION|MB_SETFOREGROUND "\
|
||||
/PORTABLE : Install in portable mode$\n\
|
||||
/S : Silent install$\n\
|
||||
/D=%directory% : Specify destination directory$\n"
|
||||
Quit
|
||||
${EndIf}
|
||||
|
||||
ClearErrors
|
||||
${GetOptions} $9 "/PORTABLE" $8
|
||||
${IfNot} ${Errors}
|
||||
StrCpy $PortableMode 1
|
||||
StrCpy $0 $PortableDestDir
|
||||
${Else}
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $0 $NormalDestDir
|
||||
${If} ${Silent}
|
||||
Call RequireAdmin
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
|
||||
${If} $InstDir == ""
|
||||
; User did not use /D to specify a directory,
|
||||
; we need to set a default based on the install mode
|
||||
StrCpy $InstDir $0
|
||||
${EndIf}
|
||||
Call SetModeDestinationFromInstdir
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function un.onInit
|
||||
|
||||
${If} ${NSIS_IS_64_BIT} == 1
|
||||
SetRegView 64
|
||||
${EndIf}
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function RequireAdmin
|
||||
UserInfo::GetAccountType
|
||||
Pop $8
|
||||
${If} $8 != "admin"
|
||||
MessageBox MB_ICONSTOP "You need administrator rights to install Cockatrice"
|
||||
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||
Abort
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function SetModeDestinationFromInstdir
|
||||
${If} $PortableMode = 0
|
||||
StrCpy $NormalDestDir $InstDir
|
||||
${Else}
|
||||
StrCpy $PortableDestDir $InstDir
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function PortableModePageCreate
|
||||
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
|
||||
!insertmacro MUI_HEADER_TEXT "Install Mode" "Choose how you want to install Cockatrice."
|
||||
nsDialogs::Create 1018
|
||||
Pop $0
|
||||
${NSD_CreateLabel} 0 10u 100% 24u "Select install mode:"
|
||||
Pop $0
|
||||
${NSD_CreateRadioButton} 30u 50u -30u 8u "Normal installation"
|
||||
Pop $1
|
||||
${NSD_CreateRadioButton} 30u 70u -30u 8u "Portable mode (all files in a single folder)"
|
||||
Pop $2
|
||||
${If} $PortableMode = 0
|
||||
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${Else}
|
||||
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${EndIf}
|
||||
nsDialogs::Show
|
||||
FunctionEnd
|
||||
|
||||
Function PortableModePageLeave
|
||||
${NSD_GetState} $1 $0
|
||||
${If} $0 <> ${BST_UNCHECKED}
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $InstDir $NormalDestDir
|
||||
Call RequireAdmin
|
||||
${Else}
|
||||
StrCpy $PortableMode 1
|
||||
StrCpy $InstDir $PortableDestDir
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function componentsPagePre
|
||||
${If} $PortableMode = 0
|
||||
SetShellVarContext all
|
||||
|
||||
# uninstall 32bit version
|
||||
SetRegView 32
|
||||
|
||||
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString"
|
||||
StrCmp $R0 "" done32
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst32
|
||||
Abort
|
||||
|
||||
uninst32:
|
||||
ClearErrors
|
||||
ExecWait "$R0"
|
||||
|
||||
done32:
|
||||
|
||||
# uninstall 64bit version
|
||||
${If} ${NSIS_IS_64_BIT} == 1
|
||||
SetRegView 64
|
||||
|
||||
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString"
|
||||
StrCmp $R0 "" done64
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst64
|
||||
Abort
|
||||
|
||||
uninst64:
|
||||
ClearErrors
|
||||
ExecWait "$R0"
|
||||
|
||||
done64:
|
||||
${EndIf}
|
||||
|
||||
${Else}
|
||||
Abort
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Section "Application" SecApplication
|
||||
SetShellVarContext all
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
@CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
|
||||
@CPACK_NSIS_FULL_INSTALL@
|
||||
SetShellVarContext all
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
||||
IntFmt $0 "0x%08X" $0
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayName" "Cockatrice"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayIcon" "$INSTDIR\cockatrice.exe"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "EstimatedSize" "$0"
|
||||
SectionEnd
|
||||
|
||||
Section "Update configuration" SecUpdateConfig
|
||||
SetShellVarContext current
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "carddatabase" "$LOCALAPPDATA\Cockatrice\cards.xml"
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "tokendatabase" "$LOCALAPPDATA\Cockatrice\tokens.xml"
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "decks" "$LOCALAPPDATA\Cockatrice\decks"
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\paths" "pics" "$LOCALAPPDATA\Cockatrice\pics"
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\replays" "pics" "$LOCALAPPDATA\Cockatrice\replays"
|
||||
WriteRegStr HKCU "Software\Cockatrice\Cockatrice\sound" "path" "$INSTDIR\sounds"
|
||||
SectionEnd
|
||||
|
||||
Section "Start menu item" SecStartMenu
|
||||
SetShellVarContext all
|
||||
createDirectory "$SMPROGRAMS\Cockatrice"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Servatrice.lnk" "$INSTDIR\servatrice.exe"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Usermanual.lnk" "$INSTDIR\Usermanual.pdf"
|
||||
SectionEnd
|
||||
|
||||
Section "un.Application" UnSecApplication
|
||||
SetShellVarContext all
|
||||
RMDir /r "$INSTDIR\zonebg"
|
||||
${If} $PortableMode = 1
|
||||
${AndIf} ${FileExists} "$INSTDIR\portable.dat"
|
||||
; upgrade portable mode
|
||||
RMDir /r "$INSTDIR\plugins"
|
||||
RMDir /r "$INSTDIR\sounds"
|
||||
RMDir /r "$INSTDIR\themes"
|
||||
RMDir /r "$INSTDIR\translations"
|
||||
Delete "$INSTDIR\uninstall.exe"
|
||||
Delete "$INSTDIR\cockatrice.exe"
|
||||
Delete "$INSTDIR\oracle.exe"
|
||||
Delete "$INSTDIR\servatrice.exe"
|
||||
Delete "$INSTDIR\Usermanual.pdf"
|
||||
Delete "$INSTDIR\libprotobuf.lib"
|
||||
Delete "$INSTDIR\Qt*.dll"
|
||||
Delete "$INSTDIR\libmysql.dll"
|
||||
Delete "$INSTDIR\icu*.dll"
|
||||
Delete "$INSTDIR\libeay32.dll"
|
||||
Delete "$INSTDIR\ssleay32.dll"
|
||||
@@ -91,7 +223,76 @@ Section "un.Application" UnSecApplication
|
||||
Delete "$INSTDIR\qdebug.txt"
|
||||
Delete "$INSTDIR\servatrice.sql"
|
||||
Delete "$INSTDIR\servatrice.ini.example"
|
||||
Delete "$INSTDIR\zlib1.dll"
|
||||
Delete "$INSTDIR\zlib*.dll"
|
||||
RMDir "$INSTDIR"
|
||||
${EndIf}
|
||||
|
||||
@CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
|
||||
@CPACK_NSIS_FULL_INSTALL@
|
||||
|
||||
${If} $PortableMode = 0
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
||||
IntFmt $0 "0x%08X" $0
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayIcon" "$INSTDIR\cockatrice.exe"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayName" "Cockatrice"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayVersion" "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "EstimatedSize" "$0"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "InstallLocation" "$INSTDIR"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "NoModify" "1"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "NoRepair" "1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "Publisher" "Cockatrice team"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "VersionMajor" "@CPACK_PACKAGE_VERSION_MAJOR@"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "VersionMinor" "@CPACK_PACKAGE_VERSION_MINOR@"
|
||||
|
||||
IfFileExists "$INSTDIR\vcredist_x86.exe" VcRedist86Exists PastVcRedist86Check
|
||||
VcRedist86Exists:
|
||||
ExecWait '"$INSTDIR\vcredist_x86.exe" /passive /norestart'
|
||||
DetailPrint "Sleep to ensure unlock of vc_redist file after installation..."
|
||||
Sleep 3000
|
||||
Delete "$INSTDIR\vcredist_x86.exe"
|
||||
PastVcRedist86Check:
|
||||
|
||||
IfFileExists "$INSTDIR\vcredist_x64.exe" VcRedist64Exists PastVcRedist64Check
|
||||
VcRedist64Exists:
|
||||
ExecWait '"$INSTDIR\vcredist_x64.exe" /passive /norestart'
|
||||
DetailPrint "Sleep to ensure unlock of vc_redist file after installation..."
|
||||
Sleep 3000
|
||||
Delete "$INSTDIR\vcredist_x64.exe"
|
||||
PastVcRedist64Check:
|
||||
|
||||
${Else}
|
||||
; Create the file the application uses to detect portable mode
|
||||
FileOpen $0 "$INSTDIR\portable.dat" w
|
||||
FileWrite $0 "PORTABLE"
|
||||
FileClose $0
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
Section "Start menu item" SecStartMenu
|
||||
${If} $PortableMode = 0
|
||||
SetShellVarContext all
|
||||
createDirectory "$SMPROGRAMS\Cockatrice"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
|
||||
createShortCut "$SMPROGRAMS\Cockatrice\Servatrice.lnk" "$INSTDIR\servatrice.exe"
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
Section "un.Application" UnSecApplication
|
||||
SetShellVarContext all
|
||||
RMDir /r "$INSTDIR\plugins"
|
||||
RMDir /r "$INSTDIR\sounds"
|
||||
RMDir /r "$INSTDIR\themes"
|
||||
RMDir /r "$INSTDIR\translations"
|
||||
Delete "$INSTDIR\*.exe"
|
||||
Delete "$INSTDIR\*.dll"
|
||||
Delete "$INSTDIR\qt.conf"
|
||||
Delete "$INSTDIR\qdebug.txt"
|
||||
Delete "$INSTDIR\servatrice.sql"
|
||||
Delete "$INSTDIR\servatrice.ini.example"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
RMDir "$SMPROGRAMS\Cockatrice"
|
||||
@@ -108,11 +309,9 @@ Section /o "un.Configurations, decks, cards, pics" UnSecConfiguration
|
||||
SectionEnd
|
||||
|
||||
LangString DESC_SecApplication ${LANG_ENGLISH} "Cockatrice program files"
|
||||
LangString DESC_SecUpdateConfig ${LANG_ENGLISH} "Update the paths in the application settings according to the installation paths."
|
||||
LangString DESC_SecStartMenu ${LANG_ENGLISH} "Create start menu items for Cockatrice and Oracle."
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecApplication} $(DESC_SecApplication)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecUpdateConfig} $(DESC_SecUpdateConfig)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(DESC_SecStartMenu)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
@@ -122,20 +321,3 @@ LangString DESC_UnSecConfiguration ${LANG_ENGLISH} "Configurations, decks, card
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UnSecApplication} $(DESC_UnSecApplication)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UnSecConfiguration} $(DESC_UnSecConfiguration)
|
||||
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
|
||||
|
||||
|
||||
Function .onInit
|
||||
SetShellVarContext all
|
||||
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString"
|
||||
StrCmp $R0 "" done
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst
|
||||
Abort
|
||||
|
||||
uninst:
|
||||
ClearErrors
|
||||
ExecWait "$R0"
|
||||
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
@@ -2,8 +2,12 @@ set(VERSION_STRING_CPP "${PROJECT_BINARY_DIR}/version_string.cpp")
|
||||
set(VERSION_STRING_H "${PROJECT_BINARY_DIR}/version_string.h")
|
||||
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
|
||||
|
||||
set( hstring "extern const char *VERSION_STRING\;\n" )
|
||||
set( cppstring "const char * VERSION_STRING = \"${PROJECT_VERSION}\"\;\n")
|
||||
set( hstring "extern const char *VERSION_STRING\;
|
||||
extern const char *VERSION_COMMIT\;
|
||||
extern const char *VERSION_DATE\;\n" )
|
||||
set( cppstring "const char *VERSION_STRING = \"${PROJECT_VERSION_FRIENDLY}\"\;
|
||||
const char *VERSION_COMMIT = \"${GIT_COMMIT_ID}\"\;
|
||||
const char *VERSION_DATE = \"${GIT_COMMIT_DATE_FRIENDLY}\"\;\n")
|
||||
|
||||
file(WRITE ${PROJECT_BINARY_DIR}/version_string.cpp.txt ${cppstring} )
|
||||
file(WRITE ${PROJECT_BINARY_DIR}/version_string.h.txt ${hstring} )
|
||||
|
||||
@@ -1,20 +1,223 @@
|
||||
find_package(Git)
|
||||
if(GIT_FOUND)
|
||||
# HELPER FUNCTIONS
|
||||
|
||||
function(get_commit_id)
|
||||
# get last commit hash
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} log -1 --date=short "--pretty=%h (%cd)"
|
||||
COMMAND ${GIT_EXECUTABLE} log -1 --abbrev=7 --date=short "--pretty=%h"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE res_var
|
||||
OUTPUT_VARIABLE GIT_COM_ID
|
||||
)
|
||||
if( NOT ${res_var} EQUAL 0 )
|
||||
set( GIT_COMMIT_ID "git commit id unknown")
|
||||
message( WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info." )
|
||||
if(NOT ${res_var} EQUAL 0)
|
||||
message(WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info.")
|
||||
return()
|
||||
endif()
|
||||
string( REPLACE "\n" "" GIT_COMMIT_ID "${GIT_COM_ID}" )
|
||||
|
||||
string(REPLACE "\n" "" GIT_COM_ID "${GIT_COM_ID}")
|
||||
set(GIT_COMMIT_ID "${GIT_COM_ID}" PARENT_SCOPE)
|
||||
set(PROJECT_VERSION_LABEL "custom(${GIT_COM_ID})" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(get_commit_date)
|
||||
# get last commit date
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} log -1 --date=short "--pretty=%cd"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE res_var
|
||||
OUTPUT_VARIABLE GIT_COM_DATE
|
||||
)
|
||||
if(NOT ${res_var} EQUAL 0)
|
||||
message(WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
string(REPLACE "\n" "" GIT_COM_DATE "${GIT_COM_DATE}")
|
||||
set(GIT_COMMIT_DATE_FRIENDLY "${GIT_COM_DATE}" PARENT_SCOPE)
|
||||
|
||||
string(REPLACE "-" "" GIT_COM_DATE "${GIT_COM_DATE}")
|
||||
set(GIT_COMMIT_DATE "${GIT_COM_DATE}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(clean_release_name name)
|
||||
# "name": "Cockatrice: Thopter Pie Network, Revision 2"
|
||||
|
||||
# Remove all double quotes
|
||||
STRING(REPLACE "\"" "" name "${name}")
|
||||
# Remove json prefix "name: "
|
||||
STRING(REPLACE " name: " "" name "${name}")
|
||||
# Remove "cockatrice" name
|
||||
STRING(REPLACE "Cockatrice" "" name "${name}")
|
||||
# Remove all unwanted chars
|
||||
STRING(REGEX REPLACE "[^A-Za-z0-9_ ]" "" name "${name}")
|
||||
# Strip (trim) whitespaces
|
||||
STRING(STRIP "${name}" name)
|
||||
# Replace all spaces with underscores
|
||||
STRING(REPLACE " " "_" name "${name}")
|
||||
|
||||
set(GIT_TAG_RELEASENAME "${name}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(get_tag_name commit)
|
||||
if(${commit} STREQUAL "unknown")
|
||||
return()
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --exact-match --tags ${commit}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE res_var
|
||||
OUTPUT_VARIABLE GIT_TAG
|
||||
ERROR_VARIABLE GIT_TAG_ERR
|
||||
)
|
||||
|
||||
if((NOT ${res_var} EQUAL 0) OR (${GIT_TAG_ERR} MATCHES "fatal: no tag exactly matches.*"))
|
||||
message(STATUS "Commit is not a release or prerelease (no git tag found)")
|
||||
return()
|
||||
endif()
|
||||
|
||||
string(REPLACE "\n" "" GIT_TAG "${GIT_TAG}")
|
||||
message(STATUS "Commit is a release or prerelease, git tag: ${GIT_TAG}")
|
||||
|
||||
# Extract information from tag:
|
||||
# YYYY-MM-DD-Release-MAJ.MIN.PATCH
|
||||
# YYYY-MM-DD-Development-MAJ.MIN.PATCH-beta.X
|
||||
string(REPLACE "-" ";" GIT_TAG_EXPLODED "${GIT_TAG}")
|
||||
string(REPLACE "." ";" GIT_TAG_EXPLODED "${GIT_TAG_EXPLODED}")
|
||||
|
||||
# Sanity checks: length
|
||||
list(LENGTH GIT_TAG_EXPLODED GIT_TAG_LISTCOUNT)
|
||||
if(${GIT_TAG_LISTCOUNT} LESS 7 OR ${GIT_TAG_LISTCOUNT} GREATER 9)
|
||||
message(WARNING "Invalid tag format, got ${GIT_TAG_LISTCOUNT} tokens")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Year
|
||||
list(GET GIT_TAG_EXPLODED 0 GIT_TAG_YEAR)
|
||||
if(${GIT_TAG_YEAR} LESS 2017 OR ${GIT_TAG_LISTCOUNT} GREATER 2100)
|
||||
message(WARNING "Invalid tag year ${GIT_TAG_YEAR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Month
|
||||
list(GET GIT_TAG_EXPLODED 1 GIT_TAG_MONTH)
|
||||
if(${GIT_TAG_MONTH} LESS 1 OR ${GIT_TAG_MONTH} GREATER 12)
|
||||
message(WARNING "Invalid tag month ${GIT_TAG_MONTH}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Day
|
||||
list(GET GIT_TAG_EXPLODED 2 GIT_TAG_DAY)
|
||||
if(${GIT_TAG_DAY} LESS 1 OR ${GIT_TAG_DAY} GREATER 31)
|
||||
message(WARNING "Invalid tag day ${GIT_TAG_DAY}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Type
|
||||
list(GET GIT_TAG_EXPLODED 3 GIT_TAG_TYPE)
|
||||
if(NOT(${GIT_TAG_TYPE} STREQUAL "Release" OR ${GIT_TAG_TYPE} STREQUAL "Development"))
|
||||
message(WARNING "Invalid tag type ${GIT_TAG_TYPE}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Major
|
||||
list(GET GIT_TAG_EXPLODED 4 GIT_TAG_MAJOR)
|
||||
if(${GIT_TAG_MAJOR} LESS 0 OR ${GIT_TAG_MAJOR} GREATER 99)
|
||||
message(WARNING "Invalid tag major version ${GIT_TAG_MAJOR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Minor
|
||||
list(GET GIT_TAG_EXPLODED 5 GIT_TAG_MINOR)
|
||||
if(${GIT_TAG_MINOR} LESS 0 OR ${GIT_TAG_MINOR} GREATER 99)
|
||||
message(WARNING "Invalid tag minor version ${GIT_TAG_MINOR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Patch
|
||||
list(GET GIT_TAG_EXPLODED 6 GIT_TAG_PATCH)
|
||||
if(${GIT_TAG_PATCH} LESS 0 OR ${GIT_TAG_PATCH} GREATER 99)
|
||||
message(WARNING "Invalid tag patch version ${GIT_TAG_PATCH}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Label
|
||||
# 7 = Stable release
|
||||
# 8 = Dev release, first beta so only "beta" attached
|
||||
# 9 = Dev release, subsequent beta so "beta.N" attached (N>=2)
|
||||
if(${GIT_TAG_LISTCOUNT} EQUAL 8)
|
||||
list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL)
|
||||
elseif(${GIT_TAG_LISTCOUNT} EQUAL 9)
|
||||
list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL)
|
||||
list(GET GIT_TAG_EXPLODED 8 GIT_TAG_LABEL_NUM)
|
||||
set(GIT_TAG_LABEL ${GIT_TAG_LABEL} ${GIT_TAG_LABEL_NUM})
|
||||
string(REPLACE ";" "." GIT_TAG_LABEL "${GIT_TAG_LABEL}")
|
||||
else()
|
||||
SET(GIT_TAG_LABEL "")
|
||||
endif()
|
||||
|
||||
# Override hardcoded version with the informations from the tag
|
||||
set(PROJECT_VERSION_MAJOR ${GIT_TAG_MAJOR} PARENT_SCOPE)
|
||||
set(PROJECT_VERSION_MINOR ${GIT_TAG_MINOR} PARENT_SCOPE)
|
||||
set(PROJECT_VERSION_PATCH ${GIT_TAG_PATCH} PARENT_SCOPE)
|
||||
set(PROJECT_VERSION_LABEL ${GIT_TAG_LABEL} PARENT_SCOPE)
|
||||
|
||||
if(${GIT_TAG_TYPE} STREQUAL "Development")
|
||||
set(PROJECT_VERSION_LABEL ${GIT_TAG_LABEL} PARENT_SCOPE)
|
||||
elseif(${GIT_TAG_TYPE} STREQUAL "Release")
|
||||
set(PROJECT_VERSION_LABEL "" PARENT_SCOPE)
|
||||
|
||||
# get version name from github
|
||||
set(GIT_TAG_TEMP_FILE "${PROJECT_BINARY_DIR}/tag_informations.txt")
|
||||
set(GIT_TAG_TEMP_URL "https://api.github.com/repos/Cockatrice/Cockatrice/releases/tags/${GIT_TAG}")
|
||||
message(STATUS "Fetching tag informations from ${GIT_TAG_TEMP_URL}")
|
||||
file(REMOVE "${GIT_TAG_TEMP_FILE}")
|
||||
file(DOWNLOAD "${GIT_TAG_TEMP_URL}" "${GIT_TAG_TEMP_FILE}" STATUS status LOG log INACTIVITY_TIMEOUT 30 TIMEOUT 300 SHOW_PROGRESS)
|
||||
list(GET status 0 err)
|
||||
list(GET status 1 msg)
|
||||
if(err)
|
||||
message(WARNING "Download failed with error ${msg}: ${log}")
|
||||
return()
|
||||
endif()
|
||||
file(STRINGS "${GIT_TAG_TEMP_FILE}" GIT_TAG_RAW_RELEASENAME REGEX "\"name\": \"" LIMIT_COUNT 1)
|
||||
|
||||
clean_release_name("${GIT_TAG_RAW_RELEASENAME}")
|
||||
set(PROJECT_VERSION_RELEASENAME "${GIT_TAG_RELEASENAME}" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
# START OF MAIN
|
||||
|
||||
# fallback defaults
|
||||
set(GIT_COMMIT_ID "unknown")
|
||||
set(GIT_COMMIT_DATE "unknown")
|
||||
set(GIT_COMMIT_DATE_FRIENDLY "unknown")
|
||||
set(PROJECT_VERSION_LABEL "custom(unknown)")
|
||||
set(PROJECT_VERSION_RELEASENAME "")
|
||||
|
||||
find_package(Git)
|
||||
if(GIT_FOUND)
|
||||
get_commit_id()
|
||||
get_commit_date()
|
||||
get_tag_name(${GIT_COMMIT_ID})
|
||||
else()
|
||||
set( GIT_COMMIT_ID "unknown (git not found!)")
|
||||
message( WARNING "Git not found. Build will not contain git revision info." )
|
||||
endif()
|
||||
|
||||
set(PROJECT_VERSION_MAJOR ${GIT_COMMIT_ID})
|
||||
set(PROJECT_VERSION ${GIT_COMMIT_ID} )
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||
if(PROJECT_VERSION_LABEL)
|
||||
set(PROJECT_VERSION "${PROJECT_VERSION}-${PROJECT_VERSION_LABEL}")
|
||||
endif()
|
||||
|
||||
set(PROJECT_VERSION_FRIENDLY "${PROJECT_VERSION} (${GIT_COMMIT_DATE_FRIENDLY})")
|
||||
|
||||
# Format: <program name>[-ReleaseName]-MAJ.MIN.PATCH[-prerelease_label]
|
||||
set(PROJECT_VERSION_FILENAME "${PROJECT_NAME}")
|
||||
if(PROJECT_VERSION_RELEASENAME)
|
||||
set(PROJECT_VERSION_FILENAME "${PROJECT_VERSION_FILENAME}-${PROJECT_VERSION_RELEASENAME}")
|
||||
endif()
|
||||
set(PROJECT_VERSION_FILENAME "${PROJECT_VERSION_FILENAME}-${PROJECT_VERSION}")
|
||||
|
||||
message(STATUS "Project version: ${PROJECT_VERSION}")
|
||||
message(STATUS "Friendly project version: ${PROJECT_VERSION_FRIENDLY}")
|
||||
message(STATUS "Project version filename: ${PROJECT_VERSION_FILENAME}")
|
||||
|
||||
15
cmake/gtest-CMakeLists.txt.in
Normal file
@@ -0,0 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
|
||||
project(gtest-download LANGUAGES NONE)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
URL https://github.com/google/googletest/archive/release-1.7.0.zip
|
||||
URL_HASH SHA1=f89bc9f55477df2fde082481e2d709bfafdb057b
|
||||
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
|
||||
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
3
cmake/launch-c.in
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
export CCACHE_CPP2=true
|
||||
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_C_COMPILER}" "$@"
|
||||
3
cmake/launch-cxx.in
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
export CCACHE_CPP2=true
|
||||
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_CXX_COMPILER}" "$@"
|
||||
@@ -2,41 +2,51 @@
|
||||
#
|
||||
# provides the cockatrice binary
|
||||
|
||||
PROJECT(cockatrice)
|
||||
PROJECT(Cockatrice VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||
|
||||
SET(cockatrice_SOURCES
|
||||
src/abstractcounter.cpp
|
||||
src/counter_general.cpp
|
||||
src/dlg_creategame.cpp
|
||||
src/abstractcounter.cpp
|
||||
src/counter_general.cpp
|
||||
src/dlg_creategame.cpp
|
||||
src/dlg_filter_games.cpp
|
||||
src/dlg_connect.cpp
|
||||
src/dlg_create_token.cpp
|
||||
src/dlg_connect.cpp
|
||||
src/dlg_create_token.cpp
|
||||
src/dlg_edit_avatar.cpp
|
||||
src/dlg_edit_password.cpp
|
||||
src/dlg_edit_tokens.cpp
|
||||
src/dlg_register.cpp
|
||||
src/abstractclient.cpp
|
||||
src/remoteclient.cpp
|
||||
src/main.cpp
|
||||
src/window_main.cpp
|
||||
src/gamesmodel.cpp
|
||||
src/player.cpp
|
||||
src/playertarget.cpp
|
||||
src/cardzone.cpp
|
||||
src/selectzone.cpp
|
||||
src/cardlist.cpp
|
||||
src/abstractcarditem.cpp
|
||||
src/carditem.cpp
|
||||
src/tablezone.cpp
|
||||
src/handzone.cpp
|
||||
src/handcounter.cpp
|
||||
src/carddatabase.cpp
|
||||
src/dlg_edit_user.cpp
|
||||
src/dlg_forgotpasswordrequest.cpp
|
||||
src/dlg_forgotpasswordreset.cpp
|
||||
src/dlg_forgotpasswordchallenge.cpp
|
||||
src/dlg_register.cpp
|
||||
src/dlg_tip_of_the_day.cpp
|
||||
src/tip_of_the_day.cpp
|
||||
src/dlg_update.cpp
|
||||
src/dlg_viewlog.cpp
|
||||
src/abstractclient.cpp
|
||||
src/remoteclient.cpp
|
||||
src/main.cpp
|
||||
src/window_main.cpp
|
||||
src/gamesmodel.cpp
|
||||
src/player.cpp
|
||||
src/playertarget.cpp
|
||||
src/cardzone.cpp
|
||||
src/selectzone.cpp
|
||||
src/cardlist.cpp
|
||||
src/abstractcarditem.cpp
|
||||
src/carditem.cpp
|
||||
src/tablezone.cpp
|
||||
src/handzone.cpp
|
||||
src/handcounter.cpp
|
||||
src/carddatabase.cpp
|
||||
src/keysignals.cpp
|
||||
src/gameview.cpp
|
||||
src/gameselector.cpp
|
||||
src/decklistmodel.cpp
|
||||
src/deck_loader.cpp
|
||||
src/dlg_load_deck_from_clipboard.cpp
|
||||
src/dlg_load_remote_deck.cpp
|
||||
src/cardinfowidget.cpp
|
||||
src/gameview.cpp
|
||||
src/gameselector.cpp
|
||||
src/decklistmodel.cpp
|
||||
src/deck_loader.cpp
|
||||
src/dlg_load_deck_from_clipboard.cpp
|
||||
src/dlg_load_remote_deck.cpp
|
||||
src/cardinfowidget.cpp
|
||||
src/cardframe.cpp
|
||||
src/cardinfopicture.cpp
|
||||
src/cardinfotext.cpp
|
||||
@@ -44,65 +54,86 @@ SET(cockatrice_SOURCES
|
||||
src/cardfilter.cpp
|
||||
src/filtertreemodel.cpp
|
||||
src/filtertree.cpp
|
||||
src/messagelogwidget.cpp
|
||||
src/zoneviewzone.cpp
|
||||
src/zoneviewwidget.cpp
|
||||
src/pilezone.cpp
|
||||
src/stackzone.cpp
|
||||
src/carddragitem.cpp
|
||||
src/carddatabasemodel.cpp
|
||||
src/setsmodel.cpp
|
||||
src/window_sets.cpp
|
||||
src/abstractgraphicsitem.cpp
|
||||
src/abstractcarddragitem.cpp
|
||||
src/dlg_settings.cpp
|
||||
src/dlg_cardsearch.cpp
|
||||
src/phasestoolbar.cpp
|
||||
src/gamescene.cpp
|
||||
src/arrowitem.cpp
|
||||
src/arrowtarget.cpp
|
||||
src/tab.cpp
|
||||
src/tab_server.cpp
|
||||
src/tab_room.cpp
|
||||
src/tab_message.cpp
|
||||
src/tab_game.cpp
|
||||
src/tab_deck_storage.cpp
|
||||
src/tab_replays.cpp
|
||||
src/tab_supervisor.cpp
|
||||
src/tab_admin.cpp
|
||||
src/tab_userlists.cpp
|
||||
src/messagelogwidget.cpp
|
||||
src/zoneviewzone.cpp
|
||||
src/zoneviewwidget.cpp
|
||||
src/pilezone.cpp
|
||||
src/stackzone.cpp
|
||||
src/carddragitem.cpp
|
||||
src/carddatabasemodel.cpp
|
||||
src/setsmodel.cpp
|
||||
src/window_sets.cpp
|
||||
src/abstractgraphicsitem.cpp
|
||||
src/abstractcarddragitem.cpp
|
||||
src/dlg_settings.cpp
|
||||
src/phasestoolbar.cpp
|
||||
src/gamescene.cpp
|
||||
src/arrowitem.cpp
|
||||
src/arrowtarget.cpp
|
||||
src/tab.cpp
|
||||
src/tab_server.cpp
|
||||
src/tab_room.cpp
|
||||
src/tab_message.cpp
|
||||
src/tab_game.cpp
|
||||
src/tab_deck_storage.cpp
|
||||
src/tab_replays.cpp
|
||||
src/tab_supervisor.cpp
|
||||
src/tab_admin.cpp
|
||||
src/tab_userlists.cpp
|
||||
src/tab_deck_editor.cpp
|
||||
src/tab_logs.cpp
|
||||
src/replay_timeline_widget.cpp
|
||||
src/deckstats_interface.cpp
|
||||
src/chatview.cpp
|
||||
src/userlist.cpp
|
||||
src/userinfobox.cpp
|
||||
src/tappedout_interface.cpp
|
||||
src/chatview/chatview.cpp
|
||||
src/chatview/userlistProxy.h
|
||||
src/userlist.cpp
|
||||
src/userinfobox.cpp
|
||||
src/user_context_menu.cpp
|
||||
src/remotedecklist_treewidget.cpp
|
||||
src/remotereplaylist_treewidget.cpp
|
||||
src/deckview.cpp
|
||||
src/playerlistwidget.cpp
|
||||
src/pixmapgenerator.cpp
|
||||
src/settingscache.cpp
|
||||
src/localserver.cpp
|
||||
src/localserverinterface.cpp
|
||||
src/localclient.cpp
|
||||
src/priceupdater.cpp
|
||||
src/qt-json/json.cpp
|
||||
src/remotedecklist_treewidget.cpp
|
||||
src/remotereplaylist_treewidget.cpp
|
||||
src/deckview.cpp
|
||||
src/playerlistwidget.cpp
|
||||
src/pixmapgenerator.cpp
|
||||
src/settingscache.cpp
|
||||
src/thememanager.cpp
|
||||
src/localserver.cpp
|
||||
src/localserverinterface.cpp
|
||||
src/localclient.cpp
|
||||
src/soundengine.cpp
|
||||
src/pending_command.cpp
|
||||
src/pictureloader.cpp
|
||||
src/shortcutssettings.cpp
|
||||
src/sequenceEdit/sequenceedit.cpp
|
||||
src/sequenceEdit/shortcutstab.cpp
|
||||
src/lineeditcompleter.cpp
|
||||
src/settings/settingsmanager.cpp
|
||||
src/settings/carddatabasesettings.cpp
|
||||
src/settings/serverssettings.cpp
|
||||
src/settings/messagesettings.cpp
|
||||
src/settings/gamefilterssettings.cpp
|
||||
src/settings/layoutssettings.cpp
|
||||
src/settings/downloadsettings.cpp
|
||||
src/update_downloader.cpp
|
||||
src/logger.cpp
|
||||
src/releasechannel.cpp
|
||||
src/userconnection_information.cpp
|
||||
src/spoilerbackgroundupdater.cpp
|
||||
src/handle_public_servers.cpp
|
||||
src/carddbparser/carddatabaseparser.cpp
|
||||
src/carddbparser/cockatricexml3.cpp
|
||||
src/carddbparser/cockatricexml4.cpp
|
||||
${VERSION_STRING_CPP}
|
||||
)
|
||||
)
|
||||
|
||||
if (UNIX AND NOT APPLE)
|
||||
set_source_files_properties(src/main.cpp PROPERTIES COMPILE_FLAGS -DTRANSLATION_PATH=\\"${CMAKE_INSTALL_PREFIX}/share/cockatrice/translations\\")
|
||||
endif (UNIX AND NOT APPLE)
|
||||
add_subdirectory(sounds)
|
||||
add_subdirectory(themes)
|
||||
|
||||
set(cockatrice_RESOURCES cockatrice.qrc)
|
||||
|
||||
IF(UPDATE_TRANSLATIONS)
|
||||
FILE(GLOB_RECURSE translate_cockatrice_SRCS ${CMAKE_SOURCE_DIR}/cockatrice/src/*.cpp ${CMAKE_SOURCE_DIR}/cockatrice/src/*.h)
|
||||
FILE(GLOB_RECURSE translate_common_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/common/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/common/*.h)
|
||||
FILE(GLOB_RECURSE translate_common_SRCS ${CMAKE_SOURCE_DIR}/common/*.cpp ${CMAKE_SOURCE_DIR}/common/*.h)
|
||||
SET(translate_SRCS ${translate_cockatrice_SRCS} ${translate_common_SRCS})
|
||||
SET(cockatrice_TS "${CMAKE_CURRENT_SOURCE_DIR}/translations/cockatrice_en.ts")
|
||||
ELSE()
|
||||
@@ -119,94 +150,31 @@ if(APPLE)
|
||||
set(cockatrice_SOURCES ${cockatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
|
||||
ENDIF(APPLE)
|
||||
|
||||
set(COCKATRICE_LIBS)
|
||||
# Qt5
|
||||
find_package(Qt5 COMPONENTS Concurrent Multimedia Network PrintSupport Svg WebSockets Widgets REQUIRED)
|
||||
set(COCKATRICE_QT_MODULES Qt5::Concurrent Qt5::Multimedia Qt5::Network Qt5::PrintSupport Qt5::Svg Qt5::Widgets Qt5::WebSockets)
|
||||
|
||||
# Qt4 stuff
|
||||
if(Qt4_FOUND)
|
||||
if (NOT QT_QTMULTIMEDIA_FOUND)
|
||||
FIND_PACKAGE(QtMobility REQUIRED)
|
||||
# Qt5LinguistTools
|
||||
find_package(Qt5LinguistTools)
|
||||
if(Qt5LinguistTools_FOUND)
|
||||
list(APPEND COCKATRICE_LIBS Qt5::LinguistTools)
|
||||
|
||||
if(NOT Qt5_LRELEASE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lrelease not found.")
|
||||
endif()
|
||||
|
||||
SET(QT_USE_QTNETWORK TRUE)
|
||||
SET(QT_USE_QTMULTIMEDIA TRUE)
|
||||
SET(QT_USE_QTSVG TRUE)
|
||||
|
||||
# Include directories
|
||||
INCLUDE(${QT_USE_FILE})
|
||||
INCLUDE_DIRECTORIES(${QT_INCLUDES})
|
||||
INCLUDE_DIRECTORIES(${QT_MOBILITY_INCLUDE_DIR})
|
||||
INCLUDE_DIRECTORIES(${QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR})
|
||||
LIST(APPEND COCKATRICE_LIBS ${QT_LIBRARIES})
|
||||
LIST(APPEND COCKATRICE_LIBS ${QT_QTMAIN_LIBRARY})
|
||||
LIST(APPEND COCKATRICE_LIBS ${QT_MOBILITY_MULTIMEDIAKIT_LIBRARY})
|
||||
|
||||
# Let cmake chew Qt4's translations and resource files
|
||||
# Note: header files are MOC-ed automatically by cmake
|
||||
IF(UPDATE_TRANSLATIONS)
|
||||
QT4_CREATE_TRANSLATION(cockatrice_QM ${translate_SRCS} ${cockatrice_TS})
|
||||
ELSE(UPDATE_TRANSLATIONS)
|
||||
QT4_ADD_TRANSLATION(cockatrice_QM ${cockatrice_TS})
|
||||
ENDIF(UPDATE_TRANSLATIONS)
|
||||
|
||||
QT4_ADD_RESOURCES(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
endif()
|
||||
|
||||
# qt5 stuff
|
||||
if(Qt5Widgets_FOUND)
|
||||
include_directories(${Qt5Widgets_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS Widgets)
|
||||
|
||||
# QtNetwork
|
||||
find_package(Qt5Network)
|
||||
if(Qt5Network_FOUND)
|
||||
include_directories(${Qt5Network_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS Network)
|
||||
endif()
|
||||
|
||||
# QtMultimedia
|
||||
find_package(Qt5Multimedia)
|
||||
if(Qt5Multimedia_FOUND)
|
||||
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS Multimedia)
|
||||
endif()
|
||||
|
||||
# QtPrinter
|
||||
find_package(Qt5PrintSupport)
|
||||
if(Qt5PrintSupport_FOUND)
|
||||
include_directories(${Qt5PrintSupport_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS PrintSupport)
|
||||
endif()
|
||||
|
||||
# QtSvg
|
||||
find_package(Qt5Svg)
|
||||
if(Qt5Svg_FOUND)
|
||||
include_directories(${Qt5Svg_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS Svg)
|
||||
endif()
|
||||
|
||||
# Qt5LinguistTools
|
||||
find_package(Qt5LinguistTools)
|
||||
if(Qt5LinguistTools_FOUND)
|
||||
include_directories(${Qt5LinguistTools_INCLUDE_DIRS})
|
||||
list(APPEND COCKATRICE_LIBS LinguistTools)
|
||||
endif()
|
||||
|
||||
# Let cmake chew Qt5's translations and resource files
|
||||
# Note: header files are MOC-ed automatically by cmake
|
||||
IF(UPDATE_TRANSLATIONS)
|
||||
if(UPDATE_TRANSLATIONS)
|
||||
if(NOT Qt5_LUPDATE_EXECUTABLE)
|
||||
MESSAGE(WARNING "Qt's lupdate not found.")
|
||||
endif()
|
||||
QT5_CREATE_TRANSLATION(cockatrice_QM ${translate_SRCS} ${cockatrice_TS})
|
||||
ELSE()
|
||||
else()
|
||||
QT5_ADD_TRANSLATION(cockatrice_QM ${cockatrice_TS})
|
||||
ENDIF()
|
||||
|
||||
QT5_ADD_RESOURCES(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
|
||||
# guess plugins and libraries directory
|
||||
set(QT_PLUGINS_DIR "${Qt5Widgets_DIR}/../../../plugins")
|
||||
get_target_property(QT_LIBRARY_DIR Qt5::Core LOCATION)
|
||||
get_filename_component(QT_LIBRARY_DIR ${QT_LIBRARY_DIR} PATH)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
QT5_ADD_RESOURCES(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
|
||||
|
||||
# Declare path variables
|
||||
set(ICONDIR share/icons CACHE STRING "icon dir")
|
||||
set(DESKTOPDIR share/applications CACHE STRING "desktop file destination")
|
||||
@@ -220,29 +188,17 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
|
||||
# Build cockatrice binary and link it
|
||||
ADD_EXECUTABLE(cockatrice WIN32 MACOSX_BUNDLE ${cockatrice_SOURCES} ${cockatrice_QM} ${cockatrice_RESOURCES_RCC} ${cockatrice_MOC_SRCS})
|
||||
|
||||
if(Qt4_FOUND)
|
||||
if(MSVC)
|
||||
set(QT_USE_QTMAIN true)
|
||||
endif()
|
||||
TARGET_LINK_LIBRARIES(cockatrice cockatrice_common ${COCKATRICE_LIBS})
|
||||
endif()
|
||||
if(Qt5Widgets_FOUND)
|
||||
if(MSVC)
|
||||
TARGET_LINK_LIBRARIES(cockatrice cockatrice_common Qt5::WinMain)
|
||||
else()
|
||||
TARGET_LINK_LIBRARIES(cockatrice cockatrice_common)
|
||||
endif()
|
||||
qt5_use_modules(cockatrice ${COCKATRICE_LIBS})
|
||||
endif()
|
||||
TARGET_LINK_LIBRARIES(cockatrice cockatrice_common ${COCKATRICE_QT_MODULES})
|
||||
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
|
||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
|
||||
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
|
||||
set(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}")
|
||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
|
||||
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
|
||||
|
||||
set_target_properties(cockatrice PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/Info.plist)
|
||||
|
||||
INSTALL(TARGETS cockatrice BUNDLE DESTINATION ./)
|
||||
@@ -264,13 +220,20 @@ if(APPLE)
|
||||
# these needs to be relative to CMAKE_INSTALL_PREFIX
|
||||
set(plugin_dest_dir cockatrice.app/Contents/Plugins)
|
||||
set(qtconf_dest_dir cockatrice.app/Contents/Resources)
|
||||
get_filename_component(QT_LIBRARY_DIR "${QT_LIBRARY_DIR}/.." ABSOLUTE)
|
||||
|
||||
# qt4: codecs, iconengines, imageformats, phonon_backend
|
||||
# qt5: audio, iconengines, imageformats, platforms, printsupport
|
||||
|
||||
# qt5 plugins: audio, iconengines, imageformats, platforms, printsupport
|
||||
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
|
||||
FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|phonon_backend|platforms|printsupport)/.*\\.dylib"
|
||||
REGEX ".*_debug\\.dylib" EXCLUDE)
|
||||
FILES_MATCHING
|
||||
PATTERN "*.dSYM" EXCLUDE
|
||||
PATTERN "*_debug.dylib" EXCLUDE
|
||||
PATTERN "audio/*.dylib"
|
||||
PATTERN "iconengines/*.dylib"
|
||||
PATTERN "imageformats/*.dylib"
|
||||
PATTERN "platforms/*.dylib"
|
||||
PATTERN "printsupport/*.dylib"
|
||||
PATTERN "styles/*.dylib"
|
||||
)
|
||||
|
||||
install(CODE "
|
||||
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
|
||||
@@ -293,11 +256,11 @@ if(WIN32)
|
||||
set(plugin_dest_dir Plugins)
|
||||
set(qtconf_dest_dir .)
|
||||
|
||||
# qt4: codecs, iconengines, imageformats, phonon_backend
|
||||
# qt5: audio, iconengines, imageformats, platforms, printsupport
|
||||
install(DIRECTORY "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${CMAKE_BUILD_TYPE}/" DESTINATION ./ FILES_MATCHING PATTERN "*.dll")
|
||||
|
||||
# qt5 plugins: audio, iconengines, imageformats, platforms, printsupport
|
||||
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
|
||||
FILES_MATCHING REGEX "(audio|codecs|iconengines|imageformats|phonon_backend|platforms|printsupport)/.*[^d]\\.dll")
|
||||
FILES_MATCHING REGEX "(audio|iconengines|imageformats|platforms|printsupport)/.*[^d]\\.dll")
|
||||
|
||||
install(CODE "
|
||||
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
|
||||
@@ -311,10 +274,10 @@ Data = Resources\")
|
||||
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dll\")
|
||||
set(BU_CHMOD_BUNDLE_ITEMS ON)
|
||||
include(BundleUtilities)
|
||||
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/cockatrice.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
|
||||
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/Cockatrice.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
|
||||
" COMPONENT Runtime)
|
||||
|
||||
if(WIN32SSLRUNTIME_FOUND)
|
||||
install(FILES ${WIN32SSLRUNTIME_LIBRARIES} DESTINATION ./)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,337 +1,363 @@
|
||||
<RCC>
|
||||
<qresource prefix="/" >
|
||||
<file alias="back.svg" >resources/back.svg</file>
|
||||
<file>resources/lock.svg</file>
|
||||
<file>resources/icon_delete.svg</file>
|
||||
<file>resources/icon_tab_changed.svg</file>
|
||||
<file>resources/icon_config_general.svg</file>
|
||||
<file>resources/icon_config_appearance.svg</file>
|
||||
<file>resources/icon_config_interface.svg</file>
|
||||
<file>resources/icon_config_messages.svg</file>
|
||||
<file>resources/icon_config_deckeditor.svg</file>
|
||||
<file>resources/icon_config_sound.svg</file>
|
||||
<file>resources/phases/icon_phase_untap.svg</file>
|
||||
<file>resources/phases/icon_phase_upkeep.svg</file>
|
||||
<file>resources/phases/icon_phase_draw.svg</file>
|
||||
<file>resources/phases/icon_phase_main1.svg</file>
|
||||
<file>resources/phases/icon_phase_combat_start.svg</file>
|
||||
<file>resources/phases/icon_phase_combat_attackers.svg</file>
|
||||
<file>resources/phases/icon_phase_combat_blockers.svg</file>
|
||||
<file>resources/phases/icon_phase_combat_damage.svg</file>
|
||||
<file>resources/phases/icon_phase_combat_end.svg</file>
|
||||
<file>resources/phases/icon_phase_main2.svg</file>
|
||||
<file>resources/phases/icon_phase_cleanup.svg</file>
|
||||
<file>resources/phases/icon_phase_nextturn.svg</file>
|
||||
<file>resources/icon_settings.svg</file>
|
||||
<file>resources/hand.svg</file>
|
||||
<file>resources/pencil.svg</file>
|
||||
<file>resources/icon_search_black.svg</file>
|
||||
<file>resources/icon_clearsearch.svg</file>
|
||||
<file>resources/icon_update.png</file>
|
||||
<file>resources/icon_view.svg</file>
|
||||
<file>resources/hr.jpg</file>
|
||||
<file alias="resources/appicon.svg">resources/cockatrice.svg</file>
|
||||
|
||||
<file>resources/add_to_sideboard.svg</file>
|
||||
<file>resources/decrement.svg</file>
|
||||
<file>resources/increment.svg</file>
|
||||
<file>resources/remove_row.svg</file>
|
||||
<file>resources/arrow_left_green.svg</file>
|
||||
<file>resources/arrow_right_green.svg</file>
|
||||
<qresource prefix="/" >
|
||||
<file>resources/cardback.svg</file>
|
||||
<file>resources/cockatrice.svg</file>
|
||||
<file>resources/hand.svg</file>
|
||||
<file>resources/hr.jpg</file>
|
||||
|
||||
<file>resources/arrow_top_green.svg</file>
|
||||
<file>resources/arrow_up_green.svg</file>
|
||||
<file>resources/arrow_down_green.svg</file>
|
||||
<file>resources/arrow_bottom_green.svg</file>
|
||||
|
||||
<file>resources/icon_ready_start.svg</file>
|
||||
<file>resources/icon_not_ready_start.svg</file>
|
||||
<file>resources/icon_conceded.svg</file>
|
||||
<file>resources/icon_player.svg</file>
|
||||
<file>resources/icon_spectator.svg</file>
|
||||
<file>resources/icons/arrow_bottom_green.svg</file>
|
||||
<file>resources/icons/arrow_down_green.svg</file>
|
||||
<file>resources/icons/arrow_left_green.svg</file>
|
||||
<file>resources/icons/arrow_right_blue.svg</file>
|
||||
<file>resources/icons/arrow_right_green.svg</file>
|
||||
<file>resources/icons/arrow_top_green.svg</file>
|
||||
<file>resources/icons/arrow_up_green.svg</file>
|
||||
<file>resources/icons/clearsearch.svg</file>
|
||||
<file>resources/icons/conceded.svg</file>
|
||||
<file>resources/icons/decrement.svg</file>
|
||||
<file>resources/icons/delete.svg</file>
|
||||
<file>resources/icons/forgot_password.svg</file>
|
||||
<file>resources/icons/increment.svg</file>
|
||||
<file>resources/icons/lock.svg</file>
|
||||
<file>resources/icons/not_ready_start.svg</file>
|
||||
<file>resources/icons/pencil.svg</file>
|
||||
<file>resources/icons/player.svg</file>
|
||||
<file>resources/icons/ready_start.svg</file>
|
||||
<file>resources/icons/remove_row.svg</file>
|
||||
<file>resources/icons/search.svg</file>
|
||||
<file>resources/icons/settings.svg</file>
|
||||
<file>resources/icons/spectator.svg</file>
|
||||
<file>resources/icons/sync.svg</file>
|
||||
<file>resources/icons/tab_changed.svg</file>
|
||||
<file>resources/icons/update.png</file>
|
||||
<file>resources/icons/view.svg</file>
|
||||
|
||||
<file>resources/replay_start.svg</file>
|
||||
<file>resources/replay_fastforward.svg</file>
|
||||
<file>resources/replay_pause.svg</file>
|
||||
<file>resources/config/general.svg</file>
|
||||
<file>resources/config/appearance.svg</file>
|
||||
<file>resources/config/interface.svg</file>
|
||||
<file>resources/config/messages.svg</file>
|
||||
<file>resources/config/deckeditor.svg</file>
|
||||
<file>resources/config/shorcuts.svg</file>
|
||||
<file>resources/config/sound.svg</file>
|
||||
|
||||
<file>resources/genders/male.svg</file>
|
||||
<file>resources/genders/female.svg</file>
|
||||
<file>resources/genders/unknown.svg</file>
|
||||
<file>resources/counters/w.svg</file>
|
||||
<file>resources/counters/w_highlight.svg</file>
|
||||
<file>resources/counters/u.svg</file>
|
||||
<file>resources/counters/u_highlight.svg</file>
|
||||
<file>resources/counters/b.svg</file>
|
||||
<file>resources/counters/b_highlight.svg</file>
|
||||
<file>resources/counters/r.svg</file>
|
||||
<file>resources/counters/r_highlight.svg</file>
|
||||
<file>resources/counters/g.svg</file>
|
||||
<file>resources/counters/g_highlight.svg</file>
|
||||
<file>resources/counters/storm.svg</file>
|
||||
<file>resources/counters/storm_highlight.svg</file>
|
||||
<file>resources/counters/general.svg</file>
|
||||
<file>resources/counters/general_highlight.svg</file>
|
||||
|
||||
<file>resources/countries/ad.svg</file>
|
||||
<file>resources/countries/ae.svg</file>
|
||||
<file>resources/countries/af.svg</file>
|
||||
<file>resources/countries/ag.svg</file>
|
||||
<file>resources/countries/ai.svg</file>
|
||||
<file>resources/countries/al.svg</file>
|
||||
<file>resources/countries/am.svg</file>
|
||||
<file>resources/countries/ao.svg</file>
|
||||
<file>resources/countries/aq.svg</file>
|
||||
<file>resources/countries/ar.svg</file>
|
||||
<file>resources/countries/as.svg</file>
|
||||
<file>resources/countries/at.svg</file>
|
||||
<file>resources/countries/au.svg</file>
|
||||
<file>resources/countries/aw.svg</file>
|
||||
<file>resources/countries/ax.svg</file>
|
||||
<file>resources/countries/az.svg</file>
|
||||
<file>resources/countries/ba.svg</file>
|
||||
<file>resources/countries/bb.svg</file>
|
||||
<file>resources/countries/bd.svg</file>
|
||||
<file>resources/countries/be.svg</file>
|
||||
<file>resources/countries/bf.svg</file>
|
||||
<file>resources/countries/bg.svg</file>
|
||||
<file>resources/countries/bh.svg</file>
|
||||
<file>resources/countries/bi.svg</file>
|
||||
<file>resources/countries/bj.svg</file>
|
||||
<file>resources/countries/bl.svg</file>
|
||||
<file>resources/countries/bm.svg</file>
|
||||
<file>resources/countries/bn.svg</file>
|
||||
<file>resources/countries/bo.svg</file>
|
||||
<file>resources/countries/bq.svg</file>
|
||||
<file>resources/countries/br.svg</file>
|
||||
<file>resources/countries/bs.svg</file>
|
||||
<file>resources/countries/bt.svg</file>
|
||||
<file>resources/countries/bv.svg</file>
|
||||
<file>resources/countries/bw.svg</file>
|
||||
<file>resources/countries/by.svg</file>
|
||||
<file>resources/countries/bz.svg</file>
|
||||
<file>resources/countries/ca.svg</file>
|
||||
<file>resources/countries/cc.svg</file>
|
||||
<file>resources/countries/cd.svg</file>
|
||||
<file>resources/countries/cf.svg</file>
|
||||
<file>resources/countries/cg.svg</file>
|
||||
<file>resources/countries/ch.svg</file>
|
||||
<file>resources/countries/ci.svg</file>
|
||||
<file>resources/countries/ck.svg</file>
|
||||
<file>resources/countries/cl.svg</file>
|
||||
<file>resources/countries/cm.svg</file>
|
||||
<file>resources/countries/cn.svg</file>
|
||||
<file>resources/countries/co.svg</file>
|
||||
<file>resources/countries/cr.svg</file>
|
||||
<file>resources/countries/cu.svg</file>
|
||||
<file>resources/countries/cv.svg</file>
|
||||
<file>resources/countries/cw.svg</file>
|
||||
<file>resources/countries/cx.svg</file>
|
||||
<file>resources/countries/cy.svg</file>
|
||||
<file>resources/countries/cz.svg</file>
|
||||
<file>resources/countries/de.svg</file>
|
||||
<file>resources/countries/dj.svg</file>
|
||||
<file>resources/countries/dk.svg</file>
|
||||
<file>resources/countries/dm.svg</file>
|
||||
<file>resources/countries/do.svg</file>
|
||||
<file>resources/countries/dz.svg</file>
|
||||
<file>resources/countries/ec.svg</file>
|
||||
<file>resources/countries/ee.svg</file>
|
||||
<file>resources/countries/eg.svg</file>
|
||||
<file>resources/countries/eh.svg</file>
|
||||
<file>resources/countries/er.svg</file>
|
||||
<file>resources/countries/es.svg</file>
|
||||
<file>resources/countries/et.svg</file>
|
||||
<file>resources/countries/fi.svg</file>
|
||||
<file>resources/countries/fj.svg</file>
|
||||
<file>resources/countries/fk.svg</file>
|
||||
<file>resources/countries/fm.svg</file>
|
||||
<file>resources/countries/fo.svg</file>
|
||||
<file>resources/countries/fr.svg</file>
|
||||
<file>resources/countries/ga.svg</file>
|
||||
<file>resources/countries/gb.svg</file>
|
||||
<file>resources/countries/gd.svg</file>
|
||||
<file>resources/countries/ge.svg</file>
|
||||
<file>resources/countries/gf.svg</file>
|
||||
<file>resources/countries/gg.svg</file>
|
||||
<file>resources/countries/gh.svg</file>
|
||||
<file>resources/countries/gi.svg</file>
|
||||
<file>resources/countries/gl.svg</file>
|
||||
<file>resources/countries/gm.svg</file>
|
||||
<file>resources/countries/gn.svg</file>
|
||||
<file>resources/countries/gp.svg</file>
|
||||
<file>resources/countries/gq.svg</file>
|
||||
<file>resources/countries/gr.svg</file>
|
||||
<file>resources/countries/gs.svg</file>
|
||||
<file>resources/countries/gt.svg</file>
|
||||
<file>resources/countries/gu.svg</file>
|
||||
<file>resources/countries/gw.svg</file>
|
||||
<file>resources/countries/gy.svg</file>
|
||||
<file>resources/countries/hk.svg</file>
|
||||
<file>resources/countries/hm.svg</file>
|
||||
<file>resources/countries/hn.svg</file>
|
||||
<file>resources/countries/hr.svg</file>
|
||||
<file>resources/countries/ht.svg</file>
|
||||
<file>resources/countries/hu.svg</file>
|
||||
<file>resources/countries/id.svg</file>
|
||||
<file>resources/countries/ie.svg</file>
|
||||
<file>resources/countries/il.svg</file>
|
||||
<file>resources/countries/im.svg</file>
|
||||
<file>resources/countries/in.svg</file>
|
||||
<file>resources/countries/io.svg</file>
|
||||
<file>resources/countries/iq.svg</file>
|
||||
<file>resources/countries/ir.svg</file>
|
||||
<file>resources/countries/is.svg</file>
|
||||
<file>resources/countries/it.svg</file>
|
||||
<file>resources/countries/je.svg</file>
|
||||
<file>resources/countries/jm.svg</file>
|
||||
<file>resources/countries/jo.svg</file>
|
||||
<file>resources/countries/jp.svg</file>
|
||||
<file>resources/countries/ke.svg</file>
|
||||
<file>resources/countries/kg.svg</file>
|
||||
<file>resources/countries/kh.svg</file>
|
||||
<file>resources/countries/ki.svg</file>
|
||||
<file>resources/countries/km.svg</file>
|
||||
<file>resources/countries/kn.svg</file>
|
||||
<file>resources/countries/kp.svg</file>
|
||||
<file>resources/countries/kr.svg</file>
|
||||
<file>resources/countries/kw.svg</file>
|
||||
<file>resources/countries/ky.svg</file>
|
||||
<file>resources/countries/kz.svg</file>
|
||||
<file>resources/countries/la.svg</file>
|
||||
<file>resources/countries/lb.svg</file>
|
||||
<file>resources/countries/lc.svg</file>
|
||||
<file>resources/countries/li.svg</file>
|
||||
<file>resources/countries/lk.svg</file>
|
||||
<file>resources/countries/lr.svg</file>
|
||||
<file>resources/countries/ls.svg</file>
|
||||
<file>resources/countries/lt.svg</file>
|
||||
<file>resources/countries/lu.svg</file>
|
||||
<file>resources/countries/lv.svg</file>
|
||||
<file>resources/countries/ly.svg</file>
|
||||
<file>resources/countries/ma.svg</file>
|
||||
<file>resources/countries/mc.svg</file>
|
||||
<file>resources/countries/md.svg</file>
|
||||
<file>resources/countries/me.svg</file>
|
||||
<file>resources/countries/mf.svg</file>
|
||||
<file>resources/countries/mg.svg</file>
|
||||
<file>resources/countries/mh.svg</file>
|
||||
<file>resources/countries/mk.svg</file>
|
||||
<file>resources/countries/ml.svg</file>
|
||||
<file>resources/countries/mm.svg</file>
|
||||
<file>resources/countries/mn.svg</file>
|
||||
<file>resources/countries/mo.svg</file>
|
||||
<file>resources/countries/mp.svg</file>
|
||||
<file>resources/countries/mq.svg</file>
|
||||
<file>resources/countries/mr.svg</file>
|
||||
<file>resources/countries/ms.svg</file>
|
||||
<file>resources/countries/mt.svg</file>
|
||||
<file>resources/countries/mu.svg</file>
|
||||
<file>resources/countries/mv.svg</file>
|
||||
<file>resources/countries/mw.svg</file>
|
||||
<file>resources/countries/mx.svg</file>
|
||||
<file>resources/countries/my.svg</file>
|
||||
<file>resources/countries/mz.svg</file>
|
||||
<file>resources/countries/na.svg</file>
|
||||
<file>resources/countries/nc.svg</file>
|
||||
<file>resources/countries/ne.svg</file>
|
||||
<file>resources/countries/nf.svg</file>
|
||||
<file>resources/countries/ng.svg</file>
|
||||
<file>resources/countries/ni.svg</file>
|
||||
<file>resources/countries/nl.svg</file>
|
||||
<file>resources/countries/no.svg</file>
|
||||
<file>resources/countries/np.svg</file>
|
||||
<file>resources/countries/nr.svg</file>
|
||||
<file>resources/countries/nu.svg</file>
|
||||
<file>resources/countries/nz.svg</file>
|
||||
<file>resources/countries/om.svg</file>
|
||||
<file>resources/countries/pa.svg</file>
|
||||
<file>resources/countries/pe.svg</file>
|
||||
<file>resources/countries/pf.svg</file>
|
||||
<file>resources/countries/pg.svg</file>
|
||||
<file>resources/countries/ph.svg</file>
|
||||
<file>resources/countries/pk.svg</file>
|
||||
<file>resources/countries/pl.svg</file>
|
||||
<file>resources/countries/pm.svg</file>
|
||||
<file>resources/countries/pn.svg</file>
|
||||
<file>resources/countries/pr.svg</file>
|
||||
<file>resources/countries/ps.svg</file>
|
||||
<file>resources/countries/pt.svg</file>
|
||||
<file>resources/countries/pw.svg</file>
|
||||
<file>resources/countries/py.svg</file>
|
||||
<file>resources/countries/qa.svg</file>
|
||||
<file>resources/countries/re.svg</file>
|
||||
<file>resources/countries/ro.svg</file>
|
||||
<file>resources/countries/rs.svg</file>
|
||||
<file>resources/countries/ru.svg</file>
|
||||
<file>resources/countries/rw.svg</file>
|
||||
<file>resources/countries/sa.svg</file>
|
||||
<file>resources/countries/sb.svg</file>
|
||||
<file>resources/countries/sc.svg</file>
|
||||
<file>resources/countries/sd.svg</file>
|
||||
<file>resources/countries/se.svg</file>
|
||||
<file>resources/countries/sg.svg</file>
|
||||
<file>resources/countries/sh.svg</file>
|
||||
<file>resources/countries/si.svg</file>
|
||||
<file>resources/countries/sj.svg</file>
|
||||
<file>resources/countries/sk.svg</file>
|
||||
<file>resources/countries/sl.svg</file>
|
||||
<file>resources/countries/sm.svg</file>
|
||||
<file>resources/countries/sn.svg</file>
|
||||
<file>resources/countries/so.svg</file>
|
||||
<file>resources/countries/sr.svg</file>
|
||||
<file>resources/countries/ss.svg</file>
|
||||
<file>resources/countries/st.svg</file>
|
||||
<file>resources/countries/sv.svg</file>
|
||||
<file>resources/countries/sx.svg</file>
|
||||
<file>resources/countries/sy.svg</file>
|
||||
<file>resources/countries/sz.svg</file>
|
||||
<file>resources/countries/tc.svg</file>
|
||||
<file>resources/countries/td.svg</file>
|
||||
<file>resources/countries/tf.svg</file>
|
||||
<file>resources/countries/tg.svg</file>
|
||||
<file>resources/countries/th.svg</file>
|
||||
<file>resources/countries/tj.svg</file>
|
||||
<file>resources/countries/tk.svg</file>
|
||||
<file>resources/countries/tl.svg</file>
|
||||
<file>resources/countries/tm.svg</file>
|
||||
<file>resources/countries/tn.svg</file>
|
||||
<file>resources/countries/to.svg</file>
|
||||
<file>resources/countries/tr.svg</file>
|
||||
<file>resources/countries/tt.svg</file>
|
||||
<file>resources/countries/tv.svg</file>
|
||||
<file>resources/countries/tw.svg</file>
|
||||
<file>resources/countries/tz.svg</file>
|
||||
<file>resources/countries/ua.svg</file>
|
||||
<file>resources/countries/ug.svg</file>
|
||||
<file>resources/countries/um.svg</file>
|
||||
<file>resources/countries/us.svg</file>
|
||||
<file>resources/countries/uy.svg</file>
|
||||
<file>resources/countries/uz.svg</file>
|
||||
<file>resources/countries/va.svg</file>
|
||||
<file>resources/countries/vc.svg</file>
|
||||
<file>resources/countries/ve.svg</file>
|
||||
<file>resources/countries/vg.svg</file>
|
||||
<file>resources/countries/vi.svg</file>
|
||||
<file>resources/countries/vn.svg</file>
|
||||
<file>resources/countries/vu.svg</file>
|
||||
<file>resources/countries/wf.svg</file>
|
||||
<file>resources/countries/ws.svg</file>
|
||||
<file>resources/countries/ye.svg</file>
|
||||
<file>resources/countries/yt.svg</file>
|
||||
<file>resources/countries/za.svg</file>
|
||||
<file>resources/countries/zm.svg</file>
|
||||
<file>resources/countries/zw.svg</file>
|
||||
<file>resources/countries/ad.svg</file>
|
||||
<file>resources/countries/ae.svg</file>
|
||||
<file>resources/countries/af.svg</file>
|
||||
<file>resources/countries/ag.svg</file>
|
||||
<file>resources/countries/ai.svg</file>
|
||||
<file>resources/countries/al.svg</file>
|
||||
<file>resources/countries/am.svg</file>
|
||||
<file>resources/countries/ao.svg</file>
|
||||
<file>resources/countries/aq.svg</file>
|
||||
<file>resources/countries/ar.svg</file>
|
||||
<file>resources/countries/as.svg</file>
|
||||
<file>resources/countries/at.svg</file>
|
||||
<file>resources/countries/au.svg</file>
|
||||
<file>resources/countries/aw.svg</file>
|
||||
<file>resources/countries/ax.svg</file>
|
||||
<file>resources/countries/az.svg</file>
|
||||
<file>resources/countries/ba.svg</file>
|
||||
<file>resources/countries/bb.svg</file>
|
||||
<file>resources/countries/bd.svg</file>
|
||||
<file>resources/countries/be.svg</file>
|
||||
<file>resources/countries/bf.svg</file>
|
||||
<file>resources/countries/bg.svg</file>
|
||||
<file>resources/countries/bh.svg</file>
|
||||
<file>resources/countries/bi.svg</file>
|
||||
<file>resources/countries/bj.svg</file>
|
||||
<file>resources/countries/bl.svg</file>
|
||||
<file>resources/countries/bm.svg</file>
|
||||
<file>resources/countries/bn.svg</file>
|
||||
<file>resources/countries/bo.svg</file>
|
||||
<file>resources/countries/bq.svg</file>
|
||||
<file>resources/countries/br.svg</file>
|
||||
<file>resources/countries/bs.svg</file>
|
||||
<file>resources/countries/bt.svg</file>
|
||||
<file>resources/countries/bv.svg</file>
|
||||
<file>resources/countries/bw.svg</file>
|
||||
<file>resources/countries/by.svg</file>
|
||||
<file>resources/countries/bz.svg</file>
|
||||
<file>resources/countries/ca.svg</file>
|
||||
<file>resources/countries/cc.svg</file>
|
||||
<file>resources/countries/cd.svg</file>
|
||||
<file>resources/countries/cf.svg</file>
|
||||
<file>resources/countries/cg.svg</file>
|
||||
<file>resources/countries/ch.svg</file>
|
||||
<file>resources/countries/ci.svg</file>
|
||||
<file>resources/countries/ck.svg</file>
|
||||
<file>resources/countries/cl.svg</file>
|
||||
<file>resources/countries/cm.svg</file>
|
||||
<file>resources/countries/cn.svg</file>
|
||||
<file>resources/countries/co.svg</file>
|
||||
<file>resources/countries/cr.svg</file>
|
||||
<file>resources/countries/cu.svg</file>
|
||||
<file>resources/countries/cv.svg</file>
|
||||
<file>resources/countries/cw.svg</file>
|
||||
<file>resources/countries/cx.svg</file>
|
||||
<file>resources/countries/cy.svg</file>
|
||||
<file>resources/countries/cz.svg</file>
|
||||
<file>resources/countries/de.svg</file>
|
||||
<file>resources/countries/dj.svg</file>
|
||||
<file>resources/countries/dk.svg</file>
|
||||
<file>resources/countries/dm.svg</file>
|
||||
<file>resources/countries/do.svg</file>
|
||||
<file>resources/countries/dz.svg</file>
|
||||
<file>resources/countries/ec.svg</file>
|
||||
<file>resources/countries/ee.svg</file>
|
||||
<file>resources/countries/eg.svg</file>
|
||||
<file>resources/countries/eh.svg</file>
|
||||
<file>resources/countries/er.svg</file>
|
||||
<file>resources/countries/es.svg</file>
|
||||
<file>resources/countries/et.svg</file>
|
||||
<file>resources/countries/fi.svg</file>
|
||||
<file>resources/countries/fj.svg</file>
|
||||
<file>resources/countries/fk.svg</file>
|
||||
<file>resources/countries/fm.svg</file>
|
||||
<file>resources/countries/fo.svg</file>
|
||||
<file>resources/countries/fr.svg</file>
|
||||
<file>resources/countries/ga.svg</file>
|
||||
<file>resources/countries/gb.svg</file>
|
||||
<file>resources/countries/gd.svg</file>
|
||||
<file>resources/countries/ge.svg</file>
|
||||
<file>resources/countries/gf.svg</file>
|
||||
<file>resources/countries/gg.svg</file>
|
||||
<file>resources/countries/gh.svg</file>
|
||||
<file>resources/countries/gi.svg</file>
|
||||
<file>resources/countries/gl.svg</file>
|
||||
<file>resources/countries/gm.svg</file>
|
||||
<file>resources/countries/gn.svg</file>
|
||||
<file>resources/countries/gp.svg</file>
|
||||
<file>resources/countries/gq.svg</file>
|
||||
<file>resources/countries/gr.svg</file>
|
||||
<file>resources/countries/gs.svg</file>
|
||||
<file>resources/countries/gt.svg</file>
|
||||
<file>resources/countries/gu.svg</file>
|
||||
<file>resources/countries/gw.svg</file>
|
||||
<file>resources/countries/gy.svg</file>
|
||||
<file>resources/countries/hk.svg</file>
|
||||
<file>resources/countries/hm.svg</file>
|
||||
<file>resources/countries/hn.svg</file>
|
||||
<file>resources/countries/hr.svg</file>
|
||||
<file>resources/countries/ht.svg</file>
|
||||
<file>resources/countries/hu.svg</file>
|
||||
<file>resources/countries/id.svg</file>
|
||||
<file>resources/countries/ie.svg</file>
|
||||
<file>resources/countries/il.svg</file>
|
||||
<file>resources/countries/im.svg</file>
|
||||
<file>resources/countries/in.svg</file>
|
||||
<file>resources/countries/io.svg</file>
|
||||
<file>resources/countries/iq.svg</file>
|
||||
<file>resources/countries/ir.svg</file>
|
||||
<file>resources/countries/is.svg</file>
|
||||
<file>resources/countries/it.svg</file>
|
||||
<file>resources/countries/je.svg</file>
|
||||
<file>resources/countries/jm.svg</file>
|
||||
<file>resources/countries/jo.svg</file>
|
||||
<file>resources/countries/jp.svg</file>
|
||||
<file>resources/countries/ke.svg</file>
|
||||
<file>resources/countries/kg.svg</file>
|
||||
<file>resources/countries/kh.svg</file>
|
||||
<file>resources/countries/ki.svg</file>
|
||||
<file>resources/countries/km.svg</file>
|
||||
<file>resources/countries/kn.svg</file>
|
||||
<file>resources/countries/kp.svg</file>
|
||||
<file>resources/countries/kr.svg</file>
|
||||
<file>resources/countries/kw.svg</file>
|
||||
<file>resources/countries/ky.svg</file>
|
||||
<file>resources/countries/kz.svg</file>
|
||||
<file>resources/countries/la.svg</file>
|
||||
<file>resources/countries/lb.svg</file>
|
||||
<file>resources/countries/lc.svg</file>
|
||||
<file>resources/countries/li.svg</file>
|
||||
<file>resources/countries/lk.svg</file>
|
||||
<file>resources/countries/lr.svg</file>
|
||||
<file>resources/countries/ls.svg</file>
|
||||
<file>resources/countries/lt.svg</file>
|
||||
<file>resources/countries/lu.svg</file>
|
||||
<file>resources/countries/lv.svg</file>
|
||||
<file>resources/countries/ly.svg</file>
|
||||
<file>resources/countries/ma.svg</file>
|
||||
<file>resources/countries/mc.svg</file>
|
||||
<file>resources/countries/md.svg</file>
|
||||
<file>resources/countries/me.svg</file>
|
||||
<file>resources/countries/mf.svg</file>
|
||||
<file>resources/countries/mg.svg</file>
|
||||
<file>resources/countries/mh.svg</file>
|
||||
<file>resources/countries/mk.svg</file>
|
||||
<file>resources/countries/ml.svg</file>
|
||||
<file>resources/countries/mm.svg</file>
|
||||
<file>resources/countries/mn.svg</file>
|
||||
<file>resources/countries/mo.svg</file>
|
||||
<file>resources/countries/mp.svg</file>
|
||||
<file>resources/countries/mq.svg</file>
|
||||
<file>resources/countries/mr.svg</file>
|
||||
<file>resources/countries/ms.svg</file>
|
||||
<file>resources/countries/mt.svg</file>
|
||||
<file>resources/countries/mu.svg</file>
|
||||
<file>resources/countries/mv.svg</file>
|
||||
<file>resources/countries/mw.svg</file>
|
||||
<file>resources/countries/mx.svg</file>
|
||||
<file>resources/countries/my.svg</file>
|
||||
<file>resources/countries/mz.svg</file>
|
||||
<file>resources/countries/na.svg</file>
|
||||
<file>resources/countries/nc.svg</file>
|
||||
<file>resources/countries/ne.svg</file>
|
||||
<file>resources/countries/nf.svg</file>
|
||||
<file>resources/countries/ng.svg</file>
|
||||
<file>resources/countries/ni.svg</file>
|
||||
<file>resources/countries/nl.svg</file>
|
||||
<file>resources/countries/no.svg</file>
|
||||
<file>resources/countries/np.svg</file>
|
||||
<file>resources/countries/nr.svg</file>
|
||||
<file>resources/countries/nu.svg</file>
|
||||
<file>resources/countries/nz.svg</file>
|
||||
<file>resources/countries/om.svg</file>
|
||||
<file>resources/countries/pa.svg</file>
|
||||
<file>resources/countries/pe.svg</file>
|
||||
<file>resources/countries/pf.svg</file>
|
||||
<file>resources/countries/pg.svg</file>
|
||||
<file>resources/countries/ph.svg</file>
|
||||
<file>resources/countries/pk.svg</file>
|
||||
<file>resources/countries/pl.svg</file>
|
||||
<file>resources/countries/pm.svg</file>
|
||||
<file>resources/countries/pn.svg</file>
|
||||
<file>resources/countries/pr.svg</file>
|
||||
<file>resources/countries/ps.svg</file>
|
||||
<file>resources/countries/pt.svg</file>
|
||||
<file>resources/countries/pw.svg</file>
|
||||
<file>resources/countries/py.svg</file>
|
||||
<file>resources/countries/qa.svg</file>
|
||||
<file>resources/countries/re.svg</file>
|
||||
<file>resources/countries/ro.svg</file>
|
||||
<file>resources/countries/rs.svg</file>
|
||||
<file>resources/countries/ru.svg</file>
|
||||
<file>resources/countries/rw.svg</file>
|
||||
<file>resources/countries/sa.svg</file>
|
||||
<file>resources/countries/sb.svg</file>
|
||||
<file>resources/countries/sc.svg</file>
|
||||
<file>resources/countries/sd.svg</file>
|
||||
<file>resources/countries/se.svg</file>
|
||||
<file>resources/countries/sg.svg</file>
|
||||
<file>resources/countries/sh.svg</file>
|
||||
<file>resources/countries/si.svg</file>
|
||||
<file>resources/countries/sj.svg</file>
|
||||
<file>resources/countries/sk.svg</file>
|
||||
<file>resources/countries/sl.svg</file>
|
||||
<file>resources/countries/sm.svg</file>
|
||||
<file>resources/countries/sn.svg</file>
|
||||
<file>resources/countries/so.svg</file>
|
||||
<file>resources/countries/sr.svg</file>
|
||||
<file>resources/countries/ss.svg</file>
|
||||
<file>resources/countries/st.svg</file>
|
||||
<file>resources/countries/sv.svg</file>
|
||||
<file>resources/countries/sx.svg</file>
|
||||
<file>resources/countries/sy.svg</file>
|
||||
<file>resources/countries/sz.svg</file>
|
||||
<file>resources/countries/tc.svg</file>
|
||||
<file>resources/countries/td.svg</file>
|
||||
<file>resources/countries/tf.svg</file>
|
||||
<file>resources/countries/tg.svg</file>
|
||||
<file>resources/countries/th.svg</file>
|
||||
<file>resources/countries/tj.svg</file>
|
||||
<file>resources/countries/tk.svg</file>
|
||||
<file>resources/countries/tl.svg</file>
|
||||
<file>resources/countries/tm.svg</file>
|
||||
<file>resources/countries/tn.svg</file>
|
||||
<file>resources/countries/to.svg</file>
|
||||
<file>resources/countries/tr.svg</file>
|
||||
<file>resources/countries/tt.svg</file>
|
||||
<file>resources/countries/tv.svg</file>
|
||||
<file>resources/countries/tw.svg</file>
|
||||
<file>resources/countries/tz.svg</file>
|
||||
<file>resources/countries/ua.svg</file>
|
||||
<file>resources/countries/ug.svg</file>
|
||||
<file>resources/countries/um.svg</file>
|
||||
<file>resources/countries/us.svg</file>
|
||||
<file>resources/countries/uy.svg</file>
|
||||
<file>resources/countries/uz.svg</file>
|
||||
<file>resources/countries/va.svg</file>
|
||||
<file>resources/countries/vc.svg</file>
|
||||
<file>resources/countries/ve.svg</file>
|
||||
<file>resources/countries/vg.svg</file>
|
||||
<file>resources/countries/vi.svg</file>
|
||||
<file>resources/countries/vn.svg</file>
|
||||
<file>resources/countries/vu.svg</file>
|
||||
<file>resources/countries/wf.svg</file>
|
||||
<file>resources/countries/ws.svg</file>
|
||||
<file>resources/countries/ye.svg</file>
|
||||
<file>resources/countries/yt.svg</file>
|
||||
<file>resources/countries/za.svg</file>
|
||||
<file>resources/countries/zm.svg</file>
|
||||
<file>resources/countries/zw.svg</file>
|
||||
|
||||
<file>resources/counters/w.svg</file>
|
||||
<file>resources/counters/w_highlight.svg</file>
|
||||
<file>resources/counters/u.svg</file>
|
||||
<file>resources/counters/u_highlight.svg</file>
|
||||
<file>resources/counters/b.svg</file>
|
||||
<file>resources/counters/b_highlight.svg</file>
|
||||
<file>resources/counters/r.svg</file>
|
||||
<file>resources/counters/r_highlight.svg</file>
|
||||
<file>resources/counters/g.svg</file>
|
||||
<file>resources/counters/g_highlight.svg</file>
|
||||
<file>resources/counters/storm.svg</file>
|
||||
<file>resources/counters/storm_highlight.svg</file>
|
||||
<file>resources/counters/general.svg</file>
|
||||
<file>resources/counters/general_highlight.svg</file>
|
||||
<file>resources/genders/male.svg</file>
|
||||
<file>resources/genders/female.svg</file>
|
||||
<file>resources/genders/unknown.svg</file>
|
||||
|
||||
<file>resources/userlevels/normal.svg</file>
|
||||
<file>resources/userlevels/registered.svg</file>
|
||||
<file>resources/userlevels/registered_buddy.svg</file>
|
||||
<file>resources/userlevels/moderator.svg</file>
|
||||
<file>resources/userlevels/moderator_buddy.svg</file>
|
||||
<file>resources/userlevels/admin.svg</file>
|
||||
<file>resources/userlevels/admin_buddy.svg</file>
|
||||
<file>resources/phases/untap.svg</file>
|
||||
<file>resources/phases/upkeep.svg</file>
|
||||
<file>resources/phases/draw.svg</file>
|
||||
<file>resources/phases/main1.svg</file>
|
||||
<file>resources/phases/combat_start.svg</file>
|
||||
<file>resources/phases/combat_attackers.svg</file>
|
||||
<file>resources/phases/combat_blockers.svg</file>
|
||||
<file>resources/phases/combat_damage.svg</file>
|
||||
<file>resources/phases/combat_end.svg</file>
|
||||
<file>resources/phases/main2.svg</file>
|
||||
<file>resources/phases/cleanup.svg</file>
|
||||
<file>resources/phases/nextturn.svg</file>
|
||||
|
||||
<file>resources/news/exclamation_mark.svg</file>
|
||||
<file>resources/news/question_mark.svg</file>
|
||||
</qresource>
|
||||
<file>resources/replay/start.svg</file>
|
||||
<file>resources/replay/fastforward.svg</file>
|
||||
<file>resources/replay/pause.svg</file>
|
||||
|
||||
<file>resources/userlevels/normal.svg</file>
|
||||
<file>resources/userlevels/registered.svg</file>
|
||||
<file>resources/userlevels/registered_buddy.svg</file>
|
||||
<file>resources/userlevels/registered_vip.svg</file>
|
||||
<file>resources/userlevels/registered_vip_buddy.svg</file>
|
||||
<file>resources/userlevels/registered_donator.svg</file>
|
||||
<file>resources/userlevels/registered_donator_buddy.svg</file>
|
||||
|
||||
<file>resources/userlevels/moderator.svg</file>
|
||||
<file>resources/userlevels/moderator_buddy.svg</file>
|
||||
<file>resources/userlevels/moderator_vip.svg</file>
|
||||
<file>resources/userlevels/moderator_vip_buddy.svg</file>
|
||||
|
||||
<file>resources/userlevels/admin.svg</file>
|
||||
<file>resources/userlevels/admin_buddy.svg</file>
|
||||
<file>resources/userlevels/admin_vip.svg</file>
|
||||
<file>resources/userlevels/admin_vip_buddy.svg</file>
|
||||
|
||||
<!-- ADD TIP OF THE DAY IMAGES HERE -->
|
||||
<file>resources/tips/tips_of_the_day.xml</file>
|
||||
<file>resources/tips/images/accounts_tab.png</file>
|
||||
<file>resources/tips/images/arrows.png</file>
|
||||
<file>resources/tips/images/cockatrice_register.png</file>
|
||||
<file>resources/tips/images/cockatrice_wiki.png</file>
|
||||
<file>resources/tips/images/coin_flip.png</file>
|
||||
<file>resources/tips/images/counter_expression.png</file>
|
||||
<file>resources/tips/images/face_down.png</file>
|
||||
<file>resources/tips/images/filter_games.png</file>
|
||||
<file>resources/tips/images/github_logo.png</file>
|
||||
<file>resources/tips/images/gitter.png</file>
|
||||
<file>resources/tips/images/themes.png</file>
|
||||
<file>resources/tips/images/tip_of_the_day.png</file>
|
||||
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
161
cockatrice/resources/config/shorcuts.svg
Normal file
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="500"
|
||||
height="500"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="icon_config_shorcuts.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:path-effect
|
||||
effect="bend_path"
|
||||
id="path-effect3618"
|
||||
is_visible="true"
|
||||
bendpath="m 142.49072,814.69439 c 81.91729,17.90777 153.31508,14.77655 218.89021,0"
|
||||
prop_scale="1"
|
||||
scale_y_rel="false"
|
||||
vertical="false"
|
||||
bendpath-nodetypes="cc" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective4226"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6464"
|
||||
id="linearGradient6470"
|
||||
x1="32.090908"
|
||||
y1="1.8181819"
|
||||
x2="31.09091"
|
||||
y2="62.909088"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-0.1818182)" />
|
||||
<linearGradient
|
||||
id="linearGradient6464">
|
||||
<stop
|
||||
style="stop-color:#0061ff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6466" />
|
||||
<stop
|
||||
style="stop-color:#001c4c;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop6468" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6482"
|
||||
id="linearGradient6488"
|
||||
x1="32.18182"
|
||||
y1="3.2835093"
|
||||
x2="32.18182"
|
||||
y2="13.02554"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)" />
|
||||
<linearGradient
|
||||
id="linearGradient6482">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6484" />
|
||||
<stop
|
||||
style="stop-color:#00ff00;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6486" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="13.02554"
|
||||
x2="32.18182"
|
||||
y1="3.2835093"
|
||||
x1="32.18182"
|
||||
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4241"
|
||||
xlink:href="#linearGradient6482"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.42293617"
|
||||
inkscape:cx="401.93458"
|
||||
inkscape:cy="251.13063"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="745"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-552.36218)">
|
||||
<g
|
||||
transform="matrix(7.8163235,0,0,7.8163235,-0.83292805,550.81868)"
|
||||
id="g4214">
|
||||
<rect
|
||||
ry="5.6363635"
|
||||
y="1.6363637"
|
||||
x="1.2727273"
|
||||
height="61.090908"
|
||||
width="61.636364"
|
||||
id="rect6462"
|
||||
style="fill:url(#linearGradient6470);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1" />
|
||||
<rect
|
||||
ry="4.7325583"
|
||||
y="2.7380548"
|
||||
x="2.1926003"
|
||||
height="13.251164"
|
||||
width="59.796619"
|
||||
id="rect6472"
|
||||
style="fill:url(#linearGradient4241);fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
</g>
|
||||
<image
|
||||
width="330.20697"
|
||||
height="335.80368"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAAB4CAYAAAAnrQZhAAAABmJLR0QA/wD/AP+gvaeTAAALCklE QVR4nO2dbWgcZR7Af/Oyu91umlfTNtFYxabVbg4xGmkqGAiUXoViWq4UvFMOPxz4wfOoekhR6CEn fqig/eCHgyLY3kXxgzmLePZDvdpcyhlSriW2tmI0TXurl43ZtG422ezO3Ic44+xm9mWyEyedPD94 2Hl2Zp59dn77f55nXleiPCLANmAtUAtUlbmewD2mgQQwAZwBJhdbUAD4LfBPYBbQRVo2KQP8G/gD sNpenz17gG+WwRcQqXT6H/A7QLIKzMkwH6V/YT5SF6AoCqtWrUKWZbvZBZFlGVVVkWXZ8bp26Lpe cRlLUZZd2Zqmoes62Wy24s9KpVJkMplCs/8B7AOuQ65YFegFfmVduq6ujnvuuYeWlhaqq6vLroQs y2zfvp27774bVVWd1N8WYwOVSj/Hck4IhUI0NDSwbt06rl27xuDgIMPDwyXLURQFVVXNFAgEUFWV VCrF119/zeDgIFeuXMlfrR/4JZC0iv0zcMBaoW3btrFx40ZHXwSgra2NHTt2OF6vGDerWANJkmhq auKuu+7i22+/5Z133iEWi5nzDZGGwPxXu+mLFy/y1ltvMTExYf2ovwK/McT+AhhivikmEomwa9cu 1qxZ4/gLdHV10dHR4XoTd7OLNaiurqatrQ1d1+nt7WV0dLSkwPxp6+v09DQvvPACIyMj1o/ZaYg9 Bvwa5pvQ3bt3U19f77jSnZ2dPPTQQ0vSb/lFLEBVVRXt7e1omsb7779PPB4vKdCuWTZeJycn2bt3 L9evXzc+4l8KsAY4wo/RGo1G2bRpk+PK1tbWsnv37iWRCuUPcrxazgnpdJq5uTkaGxu58847icVi rF69mqqqKqqqqohEIkQiEXO60HvhcJhgMEhNTQ3BYJD+/n7jI1pUoB3LvtDmzZsXVdk9e/agaVrF X3qlEIvFuPXWW4lEIrS3tzM6Olq0Xw0EAkhS/k7MTzz66KMcOnTIGDVLKrDBmCnLMnV1dY4rGQqF qK+vX7Jo9SO6rnPt2jU2bdpES0sLyWQSRVFypBYTmU9NTQ1NTU2MjY0BIAM1xsxQKOSoMIOtW7cK qYsgHo+j6zqqqrJ+/Xqqq6sJh8Mlo7MQDQ0N5nTlRwuADRs2lF5IsIB0Os3s7CwAwWCw4vKsPwZX xK5e7ehwpcCCIVZRFFfLdUWsG0eWVipzc3MArhxqteJuaYJlgxDrU4RYnyLE+hQh1qcsq+Gspmmc Pn2agYEBhoaGiMfjfP/99yiKQm1tLa2trdx3333s3LmT5uZmr6u7rFk2Yk+cOMHrr7+ef/rJJJVK EYvF+PTTTzl8+DAPP/wwzz77LLfffvvPXNObA8/FZrNZXn31VY4ePZrzfnV1NdFo1Dx9GI/HuXTp EolEAl3XOXXqFAMDA3z88ceLOr7tdzwXe/DgQd577z0z39HRwdNPP80DDzyQs9OuaRrZbJbz58/z 9ttvc+LECebm5swdfEEung6e+vr6cqQ+9dRTHD16lAcffND2SIwsy9x7770cOnSI3t5eWlpafs7q 3lR4FrHpdJrXXnvNzPf09PDMM8+Uvf6WLVt49913XT/G6hc8E9vX18f4+DgA4XCYAwcOlFhjIZFI xLXLVfyGZ03xyZMnzeldu3Y5urRVUBpPxGqaxtDQkJnv7Oz0ohq+xhOx4+Pj3Lhxw8xHo1EvquFr PBGbSCRy8rW1tV5Uw9d4IjaZTObkI5GIF9XwNZ6IzReZL1pQOZ6IzW9685tmQeV4IraxsTHnvqDP P//ci2r4Gk/EyrLM/fffb+bPnDnjRTV8jWcHKLq7u83p48ePW28oEriAZ2J7enq45ZZbgPlzra+8 8orjMpLJpHldriAXz8QGg0Gee+45M9/X18fhw4fLXv/ChQvs27dPDLwK4Olpu56eHvbu3Wvm33zz TZ544gkGBwdt79zTNI1z587x/PPP89hjj5k3IAkWsixOtIdCIY4dOwbAZ599xuOPP05NTQ3RaNS8 OmJiYoIvvvgiJ0JDoZAr97z4Ec/FKorCiy++SEdHB2+88YZ5zdPU1BQDAwO268iyTHd3N/v376eu rk6ctrPBc7EGO3bsYPv27Zw+fZr+/n7Onj3L+Pg4iUTCvG+3tbWV9vZ2HnnkEdavXy/OxRZh2YiF +Ujs6uqiq6trwbyleBaEnxEXjPsUIdanCLE+RYj1KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1 KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKs TxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKsTxFifYorYiVJcqMYgYu4InZmZsaNYlYkoVAImP/z RjdxRewPP/zgRjErkmUtdnh42I1iVhxVVVXmQz7dbvUqFitJEpcuXRL97CIwHsS9FH+XWrFY4+9A L1++XHFlVhLBYND8m9R4PE4mk3G1/IrEyrJsplOnTokHVzrgjjvuQFEUkskkU1NTZLNZV+UuWqwk STliNU2jr69PNMll0NTURHNzM7Ozs4yMjJhSs9msa4OoRYu1SjVSIpHgk08+EXKL0NzcTGtrK8lk kosXL5JOp02pmUyGTCZj+9h8pyxKrKIotmJlWebq1at88MEHpFIpIdhCKBRiy5YtbNy4katXr3L2 7FmSyWSOVCNis9lsxd2a4wdR5zfBdml6epoPP/yQ2267jba2NtasWbMi+99AIEBNTQ21tbWEw2HG x8cZHh4mnU4TCARQVRVJknISYE6r6uKfE+5oTUmSikZrfvruu++Ix+MoioKiKKxatcocRS8li/0R uf3j03WdK1eukMlkUFXVlBkIBBYItUvAouU6WssQ5lSwIXOlHXq0dkXZbLakRGve2M7GtnZK2WKt kpxKlWV5RTbFVjRNKyk3X7Lxaoh2Qlli7fpVJ1ErmKccsdZILSS9HMoSayerXKliZJxLJpNxFKnW 5KS/LblkKXGlBIP7g5KbBV3XbX/YxeSWSuX2t0XFltq1KTVfYI+u6zlyofDAqVBzXYqiYsuNVruo FU3wPIWiVtO0HLnWbVasOZYkydxdKkZBseWOdgtFreAnCsktd5RcSG4xbMWWamJL9bH5X0pQGEMu 5EZqqea41GDKdo7TfVTrrk/+L1OSJCG3CLquF4xcKNwclxpMLRDrVGp+1NpVXFAca39bTqTmi7fb 7q6IFf1qaQr1swZWuVA6Uu1G0FZcEyuonEoGU/n9bU7OyaBJ7No4p1TUgnO5YH/BvisRK3CPYoOp Us2x9coLFbhuZGZnZx1HrcAZ5URtOWeCYOGBjMnJSbMMFRgzMtlslqmpKRobG0UT7DFOzwRNT08T i8XM9WXgLGCeAb9w4YKI1mVC/vVQ+Re9Wa+T+uijj3IuOpeBBHDceGNoaIhEIuGKVLEPa4+T7VJI rlXwxMQER44csa42aBy2+AZ4EpA1TWNkZIRoNEo4HDavV7ImEa3uUG5Xlt8vW5vjmZkZXnrpJcbG xqyr/N4Q+1+gHtgKkEqlGB4eZt26daxdu3aBWIE7OBFrLG8dPH355Ze8/PLLjIyMWBfvAw5aSw4B fwd2WJfasGEDnZ2dbN68mYaGBkcDJtEUF8fp4FNVVVKpFF999RX9/f2cP38+fxv/B+gGJvNLDgN/ A3rsCg6Hw0QikbIqIaSWhxO5MzMzxe5FHmDe23ixMp78cQFdpGWfbgB/BMruIyPAfuAcoC2DLyBS broM/AlosJNXbjuwDugC1jIvXOANKWAC6AdGiy34f92AFnOZ6uyjAAAAAElFTkSuQmCC "
|
||||
id="image4221"
|
||||
x="89.958641"
|
||||
y="628.24109" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 106 KiB |
176
cockatrice/resources/countries/eu.svg
Normal file
@@ -0,0 +1,176 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="640"
|
||||
height="480"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="eu.svg">
|
||||
<metadata
|
||||
id="metadata43">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview41"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.35308642"
|
||||
inkscape:cx="405"
|
||||
inkscape:cy="229.84832"
|
||||
inkscape:window-x="695"
|
||||
inkscape:window-y="86"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<desc
|
||||
id="desc4">European flag</desc>
|
||||
<defs
|
||||
id="defs6">
|
||||
<g
|
||||
id="s">
|
||||
<g
|
||||
id="c">
|
||||
<path
|
||||
id="t"
|
||||
d="M 0,0 0,1 0.5,1 Z"
|
||||
transform="matrix(0.95105652,0.30901699,-0.30901699,0.95105652,0,-1)"
|
||||
inkscape:connector-curvature="0" />
|
||||
<use
|
||||
xlink:href="#t"
|
||||
transform="scale(-1,1)"
|
||||
id="use11"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</g>
|
||||
<g
|
||||
id="a">
|
||||
<use
|
||||
xlink:href="#c"
|
||||
transform="matrix(0.30901699,0.95105652,-0.95105652,0.30901699,0,0)"
|
||||
id="use14"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#c"
|
||||
transform="matrix(-0.80901699,0.58778525,-0.58778525,-0.80901699,0,0)"
|
||||
id="use16"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</g>
|
||||
<use
|
||||
xlink:href="#a"
|
||||
transform="scale(-1,1)"
|
||||
id="use18"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</g>
|
||||
</defs>
|
||||
<rect
|
||||
width="642.9021"
|
||||
height="483.35666"
|
||||
id="rect20"
|
||||
x="2.8321679"
|
||||
y="2.3076911"
|
||||
style="fill:#003399" />
|
||||
<g
|
||||
transform="matrix(23.811189,0,0,23.981809,322.28322,245.88665)"
|
||||
id="g22"
|
||||
style="fill:#ffcc00">
|
||||
<use
|
||||
xlink:href="#s"
|
||||
y="-6"
|
||||
id="use24"
|
||||
x="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#s"
|
||||
y="6"
|
||||
id="use26"
|
||||
x="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<g
|
||||
id="l">
|
||||
<use
|
||||
xlink:href="#s"
|
||||
x="-6"
|
||||
id="use29"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#s"
|
||||
transform="matrix(-0.80901699,-0.58778525,0.58778525,-0.80901699,-3,-5.1961524)"
|
||||
id="use31"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#s"
|
||||
transform="matrix(-0.80901699,0.58778525,-0.58778525,-0.80901699,-5.1961524,-3)"
|
||||
id="use33"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#s"
|
||||
transform="matrix(0.30901699,0.95105652,-0.95105652,0.30901699,-5.1961524,3)"
|
||||
id="use35"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
<use
|
||||
xlink:href="#s"
|
||||
transform="matrix(0.30901699,0.95105652,-0.95105652,0.30901699,-3,5.1961524)"
|
||||
id="use37"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</g>
|
||||
<use
|
||||
xlink:href="#l"
|
||||
transform="scale(-1,1)"
|
||||
id="use39"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
6
cockatrice/resources/icons/forgot_password.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48pt" height="48pt" viewBox="0 0 48 48" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 24 2 C 17.398438 2 12 7.398438 12 14 L 12 16 C 9.789063 16 8 17.789063 8 20 L 8 40 C 8 42.210938 9.789063 44 12 44 L 36 44 C 38.210938 44 40 42.210938 40 40 L 40 20 C 40 17.789063 38.210938 16 36 16 L 36 14 C 36 7.398438 30.601563 2 24 2 Z M 24 6 C 28.4375 6 32 9.5625 32 14 L 32 16 L 16 16 L 16 14 C 16 9.5625 19.554688 6 24 6 Z M 23.9375 19.9375 C 29.929688 19.9375 30 24.398438 30 25.25 C 30 29.71875 25.125 29.96875 25.375 33.875 L 21.875 33.875 C 21.578125 28.632813 26.0625 28.398438 26.0625 25.4375 C 26.0625 23.3125 24.632813 23.125 23.9375 23.125 C 21.859375 23.125 21.757813 25.09375 21.75 25.5 L 17.8125 25.5 C 17.820313 24.554688 18.015625 19.9375 23.9375 19.9375 Z M 23.6875 35.9375 C 25.671875 35.9375 25.875 37.765625 25.875 38.0625 C 25.875 38.351563 25.671875 40.125 23.6875 40.125 C 21.632813 40.125 21.5 38.351563 21.5 38.0625 C 21.5 37.765625 21.671875 35.9375 23.6875 35.9375 Z "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
6
cockatrice/resources/icons/sync.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="520pt" height="520pt" viewBox="0 0 520 520" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:#000000;fill-opacity:1;" d="M 240 0 L 240 45 C 130.078125 55.234375 43.75 147.421875 43.75 260 C 43.75 318.671875 67.03125 371.640625 105 410.625 L 159.375 361.875 C 133.203125 335.859375 116.875 299.765625 116.875 260 C 116.875 187.8125 170.46875 127.96875 240 118.125 L 240 160 L 368.125 80 Z M 415 109.375 L 361.25 158.125 C 387.421875 184.140625 403.125 220.3125 403.125 260 C 403.125 332.265625 349.609375 391.484375 280 401.25 L 280 360 L 151.875 440 L 280 520 L 280 475 C 389.921875 464.765625 476.25 372.578125 476.25 260 C 476.25 201.328125 452.96875 148.359375 415 109.375 Z "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -1,75 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="icon_tab_changed.svg">
|
||||
<defs
|
||||
id="defs2860">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2866" />
|
||||
<inkscape:perspective
|
||||
id="perspective2853"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5"
|
||||
inkscape:cx="4.1"
|
||||
inkscape:cy="49.523097"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2863">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-952.36218)">
|
||||
<path
|
||||
style="font-size:253.89010620000001950px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#e50000;fill-opacity:1;stroke:#000000;stroke-width:2.39700006999999982;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;font-family:Century Schoolbook L;-inkscape-font-specification:Century Schoolbook L Medium"
|
||||
d="m 53.225642,1018.5513 c 0.486911,-13.2677 1.704142,-22.64046 4.016877,-30.55249 3.895149,-13.38951 4.138607,-14.48503 4.138607,-19.23224 0,-7.66855 -4.260334,-12.17232 -11.320268,-12.17232 -7.181659,0 -11.441984,4.50377 -11.441984,12.17232 0,3.16481 0.60863,7.18167 1.704135,10.83336 4.868924,16.06746 5.720972,21.30157 6.45134,38.95137 l 6.451293,0 m -3.286511,6.8165 c -6.207884,0 -11.320257,5.1124 -11.320257,11.3204 0,6.2079 5.112373,11.4419 11.198528,11.4419 6.451342,0 11.563724,-5.1124 11.563724,-11.4419 0,-6.208 -5.112382,-11.3204 -11.441995,-11.3204"
|
||||
id="text3838" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,105 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2858"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="exclamation_mark.svg">
|
||||
<defs
|
||||
id="defs2860">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3795">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3797" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3799" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective2866" />
|
||||
<inkscape:perspective
|
||||
id="perspective2853"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3795"
|
||||
id="linearGradient3801"
|
||||
x1="29.834375"
|
||||
y1="999.20284"
|
||||
x2="72.173357"
|
||||
y2="999.20284"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5"
|
||||
inkscape:cx="24.413577"
|
||||
inkscape:cy="49.523097"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2863">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-952.36218)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:129.98471069px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#e00000;fill-opacity:1;stroke:#000000;stroke-width:1.78699994;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Rachana;-inkscape-font-specification:Rachana"
|
||||
x="18.646267"
|
||||
y="1045.775"
|
||||
id="text3791"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3793"
|
||||
x="18.646267"
|
||||
y="1045.775"
|
||||
style="fill:#e00000;fill-opacity:1;stroke-width:1.78699994;stroke-miterlimit:4;stroke-dasharray:none">?</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -1,100 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="32px"
|
||||
height="32px"
|
||||
id="svg3320"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
sodipodi:docname="replay_stop.svg">
|
||||
<defs
|
||||
id="defs3322">
|
||||
<linearGradient
|
||||
id="linearGradient2237">
|
||||
<stop
|
||||
style="stop-color:#006000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2239" />
|
||||
<stop
|
||||
style="stop-color:#48ff00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2241" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3207"
|
||||
id="linearGradient3998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8996584,0,0,0.8996584,543.08369,-117.97095)"
|
||||
x1="293.33597"
|
||||
y1="423.03891"
|
||||
x2="330.00668"
|
||||
y2="472.74878" />
|
||||
<linearGradient
|
||||
id="linearGradient3207">
|
||||
<stop
|
||||
id="stop3209"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3211"
|
||||
offset="1"
|
||||
style="stop-color:#48ff00;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="22.395604"
|
||||
inkscape:cx="12.669812"
|
||||
inkscape:cy="27.464311"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1099"
|
||||
inkscape:window-height="800"
|
||||
inkscape:window-x="128"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2990" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3325">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
style="fill:#b60000;fill-opacity:1;fill-rule:nonzero;stroke:#3f0000;stroke-opacity:1;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect2994"
|
||||
width="20.271835"
|
||||
height="20.271835"
|
||||
x="5.8940139"
|
||||
y="5.2983313" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.8 KiB |
BIN
cockatrice/resources/tips/images/accounts_tab.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
cockatrice/resources/tips/images/arrows.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
cockatrice/resources/tips/images/cockatrice_register.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
cockatrice/resources/tips/images/cockatrice_wiki.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
cockatrice/resources/tips/images/coin_flip.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
cockatrice/resources/tips/images/counter_expression.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
cockatrice/resources/tips/images/face_down.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
cockatrice/resources/tips/images/filter_games.png
Normal file
|
After Width: | Height: | Size: 227 KiB |
BIN
cockatrice/resources/tips/images/github_logo.png
Normal file
|
After Width: | Height: | Size: 21 KiB |