Compare commits
508 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aae5024b28 | ||
|
|
69d3414594 | ||
|
|
9ef41062d3 | ||
|
|
c2ff27793a | ||
|
|
2f7563767d | ||
|
|
f4822cf558 | ||
|
|
8c6b5caa57 | ||
|
|
31ba2828af | ||
|
|
7b44d107c9 | ||
|
|
2379812890 | ||
|
|
570ab663b7 | ||
|
|
2feaa85ed9 | ||
|
|
49111814e4 | ||
|
|
0d58f1c9fa | ||
|
|
86b9927965 | ||
|
|
aa4968faaa | ||
|
|
bdde198f52 | ||
|
|
c89c98183d | ||
|
|
c209aedb22 | ||
|
|
90a1cea515 | ||
|
|
dba5c75ef1 | ||
|
|
0b13ee7f7d | ||
|
|
484ec06b0c | ||
|
|
b095091d03 | ||
|
|
735f7709b9 | ||
|
|
df290605f4 | ||
|
|
7b583596ec | ||
|
|
09bc3eefdb | ||
|
|
49e286b04c | ||
|
|
deb76f38d7 | ||
|
|
13feafad2f | ||
|
|
15db48b0cc | ||
|
|
759fa14759 | ||
|
|
b831adbadd | ||
|
|
30a3e7b78b | ||
|
|
eb120e2f5d | ||
|
|
cdff0ea9c7 | ||
|
|
c5b8ddabac | ||
|
|
7ea364e611 | ||
|
|
5dfbec17cd | ||
|
|
1ed57238a7 | ||
|
|
fc5dbc6003 | ||
|
|
0c2d8f1b6e | ||
|
|
bf5356fd91 | ||
|
|
c3b807d483 | ||
|
|
b054c3e7e6 | ||
|
|
fdabdc3626 | ||
|
|
fe73251d8e | ||
|
|
9ba3b11c96 | ||
|
|
12b18829f0 | ||
|
|
ae7529004d | ||
|
|
f38e9763b6 | ||
|
|
36d3dcd6d8 | ||
|
|
4c7f8a4bbb | ||
|
|
39a8df8383 | ||
|
|
4f718aeead | ||
|
|
e8bf5bb5ce | ||
|
|
568325f201 | ||
|
|
a7906f14ed | ||
|
|
01c79f917e | ||
|
|
2c0b852dad | ||
|
|
d5b8fc703e | ||
|
|
6022fa790e | ||
|
|
aa88ee6d88 | ||
|
|
8cdf8d5edc | ||
|
|
bba511409f | ||
|
|
71fc7a1b4e | ||
|
|
a9ff9ac501 | ||
|
|
3ac33e4c1c | ||
|
|
1be6d968e0 | ||
|
|
0063edb14f | ||
|
|
48f67d27f1 | ||
|
|
b1606821c0 | ||
|
|
2dbaee4fe1 | ||
|
|
b42ba1a7a3 | ||
|
|
1de9352f3a | ||
|
|
ab16e8e083 | ||
|
|
b8684af537 | ||
|
|
18805a5ef8 | ||
|
|
ba6373a0ae | ||
|
|
b3f8e27661 | ||
|
|
c4a0bc1fd5 | ||
|
|
ce7621fbd9 | ||
|
|
9ad5b8ff90 | ||
|
|
03da4a5680 | ||
|
|
1ea42116d2 | ||
|
|
a13042ac6a | ||
|
|
4b8a42fafd | ||
|
|
f643b5f725 | ||
|
|
dc49f7e6dc | ||
|
|
ad8b0387f3 | ||
|
|
f0322cd107 | ||
|
|
36b9911995 | ||
|
|
455d113955 | ||
|
|
4b618aeb6c | ||
|
|
ffc65f7da4 | ||
|
|
4881981cf6 | ||
|
|
3c0ee9fa20 | ||
|
|
e36a66b971 | ||
|
|
55900bbd3d | ||
|
|
e27a8fe058 | ||
|
|
483d4e5a4e | ||
|
|
66c0d51f96 | ||
|
|
38a744fe5b | ||
|
|
9636617798 | ||
|
|
b88f0108ad | ||
|
|
13fe0b6272 | ||
|
|
d5bd9fa54d | ||
|
|
a091e73686 | ||
|
|
2fb2fa9661 | ||
|
|
b8c11f3d8c | ||
|
|
ca3419ef24 | ||
|
|
c305246d21 | ||
|
|
fcfb268677 | ||
|
|
48d790de5e | ||
|
|
f8cc134bd6 | ||
|
|
c279986493 | ||
|
|
2cefccc6eb | ||
|
|
e7ca405e8c | ||
|
|
c83e297554 | ||
|
|
d4b9b65724 | ||
|
|
11d31ffc84 | ||
|
|
ed715fb810 | ||
|
|
2f1ee6f1fa | ||
|
|
71f7aae948 | ||
|
|
98b947fbdf | ||
|
|
1a5ee99c8a | ||
|
|
9a78c94d7e | ||
|
|
13e8b60d6c | ||
|
|
6c46194009 | ||
|
|
ea854e5be3 | ||
|
|
d2291f5b17 | ||
|
|
e5ad35125c | ||
|
|
0bd2d951fb | ||
|
|
4bd55605d9 | ||
|
|
7b51383b3b | ||
|
|
9823615a84 | ||
|
|
0b5eb47b37 | ||
|
|
3f661cc028 | ||
|
|
d47e94ea4d | ||
|
|
da926d7f10 | ||
|
|
9f0d6e9fab | ||
|
|
99a8c93ac1 | ||
|
|
fec6a8dd96 | ||
|
|
46445e0542 | ||
|
|
5f33abd391 | ||
|
|
6777b20453 | ||
|
|
3a3207f15a | ||
|
|
f5b103cb89 | ||
|
|
1492571232 | ||
|
|
084b9ce4de | ||
|
|
95d8bb01ac | ||
|
|
6bf3dd10c1 | ||
|
|
07eab8555a | ||
|
|
14aa455164 | ||
|
|
1df1b9fb53 | ||
|
|
854bc9f84a | ||
|
|
cd33d855a4 | ||
|
|
fb99b9b547 | ||
|
|
fda8a38bfc | ||
|
|
229d15c492 | ||
|
|
aedb6206a5 | ||
|
|
75d54adfce | ||
|
|
ba5d9eda2d | ||
|
|
afc902a5cb | ||
|
|
fdd841e5c4 | ||
|
|
32169fa7bd | ||
|
|
b66acdd0dc | ||
|
|
5927e8272c | ||
|
|
1dc6d942cf | ||
|
|
fdd431dce9 | ||
|
|
7ac4c6e479 | ||
|
|
fdf16d0aea | ||
|
|
7aadaca62e | ||
|
|
3fb6bbeae4 | ||
|
|
7202ffca76 | ||
|
|
5c89dfad85 | ||
|
|
57b76e3f00 | ||
|
|
4e345ac688 | ||
|
|
a0584ea7a1 | ||
|
|
7bd0598555 | ||
|
|
3b300f23e1 | ||
|
|
3a5c0976bb | ||
|
|
8b704f9bd7 | ||
|
|
872e063501 | ||
|
|
3b327d9397 | ||
|
|
844e9b60dd | ||
|
|
cc95117e9b | ||
|
|
b5ad3e7724 | ||
|
|
3e3696298f | ||
|
|
b2aac8006c | ||
|
|
06689260e5 | ||
|
|
5838e320ae | ||
|
|
d27dd512c5 | ||
|
|
0c8125476a | ||
|
|
6fbd0d7deb | ||
|
|
6f1c1fd070 | ||
|
|
ddf483012b | ||
|
|
2b0e62dafe | ||
|
|
9979c220ce | ||
|
|
530b212f55 | ||
|
|
9fe64deea0 | ||
|
|
0ca0930066 | ||
|
|
8734ebe4c4 | ||
|
|
bc6e1e7a0d | ||
|
|
bb8aead078 | ||
|
|
9daf362df6 | ||
|
|
311678af80 | ||
|
|
a0f995b134 | ||
|
|
e9e9ea2d69 | ||
|
|
4bd34b35ae | ||
|
|
9d1b93fe50 | ||
|
|
9dee4e2d25 | ||
|
|
783269e256 | ||
|
|
f598bf0b42 | ||
|
|
039ed17683 | ||
|
|
62e0ced6a6 | ||
|
|
f377ac54fd | ||
|
|
9d98682089 | ||
|
|
efdf5f1767 | ||
|
|
8ca0b614d7 | ||
|
|
704dcc8d65 | ||
|
|
9f4d05b04c | ||
|
|
08cd7450ff | ||
|
|
4b684a4926 | ||
|
|
65a7f2e7d8 | ||
|
|
26a45885ff | ||
|
|
4cc46f1ffa | ||
|
|
fcb5292a4f | ||
|
|
1ca096e7ce | ||
|
|
2b2ac2e48f | ||
|
|
da14588235 | ||
|
|
60612635ef | ||
|
|
c2f58d3ab5 | ||
|
|
5937b24799 | ||
|
|
8e222d3501 | ||
|
|
c3463dec63 | ||
|
|
f2ef109940 | ||
|
|
91fb9917bc | ||
|
|
6ded5b74d0 | ||
|
|
91a6632a1b | ||
|
|
f1c2d4fe3d | ||
|
|
23d958e457 | ||
|
|
b84b1e71f7 | ||
|
|
e2f037537f | ||
|
|
a84c7e0b06 | ||
|
|
f7144a55e2 | ||
|
|
496faef0b3 | ||
|
|
50bf4dad36 | ||
|
|
0743e71ab6 | ||
|
|
c207a7c0d3 | ||
|
|
d83cf0e560 | ||
|
|
28032e5e0d | ||
|
|
7f77db8c7f | ||
|
|
f9d02740aa | ||
|
|
ec7a2dce2f | ||
|
|
6f672ecdc3 | ||
|
|
818f5cd004 | ||
|
|
147e8cc467 | ||
|
|
db322cc19a | ||
|
|
9bdcd08233 | ||
|
|
a954b459b4 | ||
|
|
f133210db3 | ||
|
|
ee8028cd53 | ||
|
|
f72cb979c0 | ||
|
|
49c4d35afa | ||
|
|
ee3e9af63a | ||
|
|
1980c1004e | ||
|
|
a3f19c073b | ||
|
|
388173f0ad | ||
|
|
7cffb0ef9d | ||
|
|
c8d2ac9583 | ||
|
|
6357529901 | ||
|
|
b5dcd84513 | ||
|
|
5b7f7ed70e | ||
|
|
c04f3a7048 | ||
|
|
32d93e2651 | ||
|
|
9cccea9a87 | ||
|
|
b0e1ae3948 | ||
|
|
70408f0e22 | ||
|
|
db2aa7000a | ||
|
|
02bc999bd5 | ||
|
|
5bdc0db9e2 | ||
|
|
ca1623f34a | ||
|
|
bbc516cf43 | ||
|
|
8128f851d1 | ||
|
|
742de6282f | ||
|
|
9d0ae61ee0 | ||
|
|
901a199035 | ||
|
|
775d5b6dcc | ||
|
|
c5c77ddb67 | ||
|
|
2f698de3b6 | ||
|
|
82aa64ca0a | ||
|
|
3bb9e8c7eb | ||
|
|
555fe70df3 | ||
|
|
05c95a0307 | ||
|
|
7bf2b607f9 | ||
|
|
23bab2aeb9 | ||
|
|
f5fdcc3af0 | ||
|
|
5c079b0bbd | ||
|
|
6bbcec0c23 | ||
|
|
0beec6e335 | ||
|
|
a88423a33f | ||
|
|
1a2b2c15c5 | ||
|
|
1210ba37c4 | ||
|
|
356e3c6907 | ||
|
|
3c5f8d08ad | ||
|
|
75de655642 | ||
|
|
3574a9c874 | ||
|
|
bcd0fe38f0 | ||
|
|
5171c0bd77 | ||
|
|
4fececb94f | ||
|
|
9c562931a2 | ||
|
|
38bef584e1 | ||
|
|
e62f727135 | ||
|
|
a0e7ef61fc | ||
|
|
fd8ae60dc1 | ||
|
|
093c2887c3 | ||
|
|
770678e32a | ||
|
|
07cc05f62e | ||
|
|
77719750ee | ||
|
|
fb2bbd87b7 | ||
|
|
6206b6f843 | ||
|
|
9e3fa2e4bc | ||
|
|
1f16d72667 | ||
|
|
6cf9157fb5 | ||
|
|
76ff9a562e | ||
|
|
ffeff09561 | ||
|
|
cc71bdce8f | ||
|
|
5d43df4f33 | ||
|
|
d29c3add79 | ||
|
|
4544b091a0 | ||
|
|
91244d5211 | ||
|
|
5cae7b3db1 | ||
|
|
702fe024c0 | ||
|
|
1ad0ff34df | ||
|
|
282c502b71 | ||
|
|
d6e989cad5 | ||
|
|
23388b5705 | ||
|
|
9ed56aa5d6 | ||
|
|
d9c5ab645c | ||
|
|
2cfb3c6755 | ||
|
|
e095c325b3 | ||
|
|
47f9978c46 | ||
|
|
2e1e13b843 | ||
|
|
7c2110c1f3 | ||
|
|
2a7ac6896c | ||
|
|
e13325ca22 | ||
|
|
e889a52f6f | ||
|
|
4d737b35da | ||
|
|
0fbd263562 | ||
|
|
f81f37505b | ||
|
|
58dd33d8a2 | ||
|
|
f24f27a13c | ||
|
|
87cc18aff8 | ||
|
|
b88219902f | ||
|
|
63090fb75f | ||
|
|
b5b520ab66 | ||
|
|
7a6052db81 | ||
|
|
a73520c9d8 | ||
|
|
55b63cd2e3 | ||
|
|
612ee18a93 | ||
|
|
ca5c9271a3 | ||
|
|
9feea4a724 | ||
|
|
3da99b6058 | ||
|
|
3b4dfa1381 | ||
|
|
1b1f9d9985 | ||
|
|
3f5eaa8f0a | ||
|
|
28a567986d | ||
|
|
68027fd23e | ||
|
|
2807c5ef19 | ||
|
|
0477bda929 | ||
|
|
d80b3fda7d | ||
|
|
a831c1703a | ||
|
|
e6cec49646 | ||
|
|
74d848311b | ||
|
|
c03df169b3 | ||
|
|
9b19cba161 | ||
|
|
9536a3c98e | ||
|
|
f0de8131ec | ||
|
|
aa18cb64bc | ||
|
|
7b36c91e0d | ||
|
|
fb0ceb110e | ||
|
|
20fbf0a655 | ||
|
|
46de86f1e4 | ||
|
|
05eabfd539 | ||
|
|
74942cd06e | ||
|
|
24da40ef05 | ||
|
|
e7fbcce9d9 | ||
|
|
ef5055f4f3 | ||
|
|
7cbc5ef902 | ||
|
|
03d96a32f2 | ||
|
|
5406c17158 | ||
|
|
29c6228616 | ||
|
|
3f4a44c828 | ||
|
|
327c9caed7 | ||
|
|
07560188cf | ||
|
|
2c64676415 | ||
|
|
29ddd88a5d | ||
|
|
543dc80b0b | ||
|
|
2008b1beea | ||
|
|
9aa597d6f0 | ||
|
|
1d85416434 | ||
|
|
bb64285c3a | ||
|
|
6a581830f4 | ||
|
|
f1d155c3f6 | ||
|
|
66e3b529b7 | ||
|
|
04cfd598e2 | ||
|
|
b94c8436eb | ||
|
|
dbfc555d9c | ||
|
|
5aacf867cd | ||
|
|
2f9db1d069 | ||
|
|
3c022b893a | ||
|
|
b74adc5311 | ||
|
|
ed8b237364 | ||
|
|
7170808d2b | ||
|
|
578a80dfb8 | ||
|
|
d72a5e0d3d | ||
|
|
2699af5d5a | ||
|
|
8298caddc3 | ||
|
|
1bcde1b55c | ||
|
|
5d492bfe93 | ||
|
|
655b3d7c50 | ||
|
|
e4278745d5 | ||
|
|
e266dc153b | ||
|
|
a482b744d2 | ||
|
|
d5bf742912 | ||
|
|
4346aecb61 | ||
|
|
bdfa080701 | ||
|
|
465a42a825 | ||
|
|
7d519990b2 | ||
|
|
19fd3a15e1 | ||
|
|
12250676f9 | ||
|
|
a1bb9cbb2b | ||
|
|
836df873f0 | ||
|
|
58cc8fc08b | ||
|
|
d1d5312ead | ||
|
|
f3595e379c | ||
|
|
5f8c2f90ff | ||
|
|
abc7b8364c | ||
|
|
627a105ba9 | ||
|
|
faef5d8af6 | ||
|
|
cf1dc3df78 | ||
|
|
a26e4eee18 | ||
|
|
efa4deef6a | ||
|
|
7e00930319 | ||
|
|
c08b2ae3df | ||
|
|
8ebbeb5274 | ||
|
|
c3b01d8573 | ||
|
|
43d8dedec4 | ||
|
|
cd97b649ff | ||
|
|
ac650b08fd | ||
|
|
e6c005dcba | ||
|
|
5acb7448b7 | ||
|
|
80168a58a7 | ||
|
|
ebae0d71b8 | ||
|
|
8c11e1724a | ||
|
|
d0597407d8 | ||
|
|
c3aa2abe11 | ||
|
|
3e0b2f5553 | ||
|
|
3d1275e19a | ||
|
|
d72d1aabe6 | ||
|
|
aac6d0df27 | ||
|
|
f700220ec1 | ||
|
|
04d9b93e17 | ||
|
|
989fad8554 | ||
|
|
2981a16e17 | ||
|
|
afff7634f9 | ||
|
|
95b2886bad | ||
|
|
d57905c2b3 | ||
|
|
ffe037f9f1 | ||
|
|
3a748e20c2 | ||
|
|
b0c2ed839d | ||
|
|
eee252bb74 | ||
|
|
59a8acc667 | ||
|
|
960f50824d | ||
|
|
63020ec302 | ||
|
|
71d4563b9d | ||
|
|
98bfd7370d | ||
|
|
45a81a5016 | ||
|
|
389fb0c4e9 | ||
|
|
fc72fe3a78 | ||
|
|
5f646dd125 | ||
|
|
6748233869 | ||
|
|
fef90ea363 | ||
|
|
0480611bf8 | ||
|
|
b4fbff0b6c | ||
|
|
5f5d5629f8 | ||
|
|
2d7f6fc2e7 | ||
|
|
5d6fd32496 | ||
|
|
48b24d12b2 | ||
|
|
f0dc912080 | ||
|
|
23f6044081 | ||
|
|
f52fe937ed | ||
|
|
97fe03e522 | ||
|
|
1ce2b5d946 | ||
|
|
c1003e39d1 | ||
|
|
b50073d281 | ||
|
|
37cdd78bda | ||
|
|
c13d637502 | ||
|
|
2298eed8bf | ||
|
|
8fab9167be | ||
|
|
965a01a4cd | ||
|
|
98bc7ce49b | ||
|
|
12873f8be0 | ||
|
|
6820b0b3b3 | ||
|
|
862093e1dd | ||
|
|
7751f383ca |
@@ -1,86 +0,0 @@
|
||||
@echo off
|
||||
|
||||
IF "%BUILD_DIR%"=="" SET BUILD_DIR=C:\TBuild
|
||||
SET LIB_DIR=%BUILD_DIR%\Libraries
|
||||
SET SRC_DIR=%BUILD_DIR%\tdesktop
|
||||
SET QT_VERSION=5_6_2
|
||||
|
||||
call:configureBuild
|
||||
call:getDependencies
|
||||
call:setupGYP
|
||||
cd %SRC_DIR%
|
||||
|
||||
echo Finished!
|
||||
|
||||
GOTO:EOF
|
||||
|
||||
:: FUNCTIONS
|
||||
:logInfo
|
||||
echo [INFO] %~1
|
||||
GOTO:EOF
|
||||
|
||||
:logError
|
||||
echo [ERROR] %~1
|
||||
GOTO:EOF
|
||||
|
||||
:getDependencies
|
||||
call:logInfo "Clone dependencies repository"
|
||||
git clone -q --depth 1 --branch master https://github.com/telegramdesktop/dependencies_windows.git %LIB_DIR%
|
||||
cd %LIB_DIR%
|
||||
|
||||
git clone --depth 1 --branch 0.9.1 https://github.com/ericniebler/range-v3
|
||||
|
||||
if exist prepare.bat (
|
||||
call prepare.bat
|
||||
) else (
|
||||
call:logError "Error cloning dependencies, trying again"
|
||||
rmdir %LIB_DIR% /S /Q
|
||||
call:getDependencies
|
||||
)
|
||||
GOTO:EOF
|
||||
|
||||
:setupGYP
|
||||
call:logInfo "Setup GYP/Ninja and generate VS solution"
|
||||
cd %LIB_DIR%
|
||||
git clone https://github.com/telegramdesktop/gyp.git
|
||||
cd gyp
|
||||
git checkout tdesktop
|
||||
SET PATH=%PATH%;%BUILD_DIR%\Libraries\gyp;%BUILD_DIR%\Libraries\ninja;
|
||||
cd %SRC_DIR%
|
||||
git submodule init
|
||||
git submodule update
|
||||
cd %SRC_DIR%\Telegram
|
||||
call gyp\refresh.bat --api-id 17349 --api-hash 344583e45741c457fe1862106095a5eb --ci-build
|
||||
GOTO:EOF
|
||||
|
||||
:configureBuild
|
||||
call:logInfo "Configuring build"
|
||||
call:logInfo "Build version: %BUILD_VERSION%"
|
||||
set TDESKTOP_BUILD_DEFINES=
|
||||
|
||||
echo %BUILD_VERSION% | findstr /C:"disable_register_custom_scheme">nul && (
|
||||
set TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES%,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME
|
||||
)
|
||||
|
||||
echo %BUILD_VERSION% | findstr /C:"disable_crash_reports">nul && (
|
||||
set TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES%,DESKTOP_APP_DISABLE_CRASH_REPORTS
|
||||
)
|
||||
|
||||
echo %BUILD_VERSION% | findstr /C:"disable_network_proxy">nul && (
|
||||
set TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES%,TDESKTOP_DISABLE_NETWORK_PROXY
|
||||
)
|
||||
|
||||
echo %BUILD_VERSION% | findstr /C:"disable_desktop_file_generation">nul && (
|
||||
set TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES%,TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION
|
||||
)
|
||||
|
||||
echo %BUILD_VERSION% | findstr /C:"disable_gtk_integration">nul && (
|
||||
set TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES%,TDESKTOP_DISABLE_GTK_INTEGRATION
|
||||
)
|
||||
|
||||
if not "%TDESKTOP_BUILD_DEFINES%" == "" (
|
||||
set "TDESKTOP_BUILD_DEFINES=%TDESKTOP_BUILD_DEFINES:~1%"
|
||||
)
|
||||
|
||||
call:logInfo "Build Defines: %TDESKTOP_BUILD_DEFINES%"
|
||||
GOTO:EOF
|
||||
2
.github/ISSUE_TEMPLATE/BUG_REPORT.md
vendored
@@ -8,7 +8,7 @@ about: Report errors or unexpected behavior.
|
||||
Thanks for reporting issues of Telegram Desktop!
|
||||
|
||||
To make it easier for us to help you please enter detailed information below.
|
||||
-->
|
||||
-->
|
||||
### Steps to reproduce
|
||||
1.
|
||||
2.
|
||||
|
||||
103
.github/workflows/issue_closer.yml
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
name: Issue closer.
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: opened
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get the latest version.
|
||||
run: |
|
||||
tag=$(git ls-remote --tags git://github.com/$GITHUB_REPOSITORY | cut -f 2 | tail -n1)
|
||||
echo $tag
|
||||
echo ::set-env name=LATEST_TAG::$tag
|
||||
|
||||
- name: Check a version from an issue.
|
||||
uses: actions/github-script@0.4.0
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
let errorStr = "Version not found.";
|
||||
|
||||
let item1 = "Version of Telegram Desktop";
|
||||
let item2 = "Used theme";
|
||||
let body = context.payload.issue.body;
|
||||
|
||||
console.log("Body of issue:\n" + body);
|
||||
let index1 = body.indexOf(item1);
|
||||
let index2 = body.indexOf(item2);
|
||||
index2 = (index2 == -1) ? Number.MAX_SAFE_INTEGER : index2;
|
||||
|
||||
console.log("Index 1: " + index1);
|
||||
console.log("Index 2: " + index2);
|
||||
|
||||
if (index1 == -1) {
|
||||
console.log(errorStr);
|
||||
return;
|
||||
}
|
||||
|
||||
function parseVersion(str) {
|
||||
let pattern = /[0-9]\.[0-9][0-9.]{0,}/g;
|
||||
return str.match(pattern);
|
||||
}
|
||||
function firstNum(version) {
|
||||
return version[0].split(".")[0];
|
||||
}
|
||||
|
||||
let issueVer = parseVersion(body.substring(index1 + item1.length, index2));
|
||||
|
||||
if (issueVer == undefined) {
|
||||
console.log(errorStr);
|
||||
return;
|
||||
}
|
||||
console.log("Version from issue: " + issueVer[0]);
|
||||
|
||||
let latestVer = parseVersion(process.env.LATEST_TAG);
|
||||
|
||||
if (latestVer == undefined) {
|
||||
console.log(errorStr);
|
||||
return;
|
||||
}
|
||||
console.log("Version from tags: " + latestVer[0]);
|
||||
|
||||
let issueNum = firstNum(issueVer);
|
||||
let latestNum = firstNum(latestVer);
|
||||
|
||||
if (issueNum <= latestNum && issueNum < 5) {
|
||||
console.log("Seems the version of this issue is fine!");
|
||||
return;
|
||||
}
|
||||
|
||||
let message = `
|
||||
Sorry, but according to the version you specify in this issue, \
|
||||
you are using the [Telegram for macOS](https://macos.telegram.org), \
|
||||
not the [Telegram Desktop](https://desktop.telegram.org).
|
||||
You can report your issue to [the group](https://t.me/macswift) \
|
||||
or to [the repository of Telegram for macOS](https://github.com/overtake/TelegramSwift).
|
||||
|
||||
If I made a mistake and closed your issue wrongly, please reopen it. Thanks!
|
||||
`;
|
||||
|
||||
let params = {
|
||||
owner: context.issue.owner,
|
||||
repo: context.issue.repo,
|
||||
issue_number: context.issue.number
|
||||
};
|
||||
|
||||
github.issues.createComment({
|
||||
...params,
|
||||
body: message
|
||||
});
|
||||
|
||||
github.issues.addLabels({
|
||||
...params,
|
||||
labels: ['TG macOS Swift']
|
||||
});
|
||||
|
||||
github.issues.update({
|
||||
...params,
|
||||
state: 'closed'
|
||||
});
|
||||
|
||||
538
.github/workflows/linux.yml
vendored
Normal file
@@ -0,0 +1,538 @@
|
||||
name: Linux.
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '*.md'
|
||||
|
||||
jobs:
|
||||
|
||||
linux:
|
||||
name: Ubuntu 14.04
|
||||
runs-on: ubuntu-latest
|
||||
container: ubuntu:trusty
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
defines:
|
||||
- ""
|
||||
- "DESKTOP_APP_DISABLE_DBUS_INTEGRATION"
|
||||
|
||||
env:
|
||||
GIT: "https://github.com"
|
||||
QT: "5_12_5"
|
||||
QT_PREFIX: "/usr/local/desktop-app/Qt-5.12.5"
|
||||
OPENSSL_VER: "1_1_1"
|
||||
OPENSSL_PREFIX: "/usr/local/desktop-app/openssl-1.1.1"
|
||||
CMAKE_VER: "3.17.0"
|
||||
UPLOAD_ARTIFACT: "false"
|
||||
ONLY_CACHE: "false"
|
||||
MANUAL_CACHING: "6"
|
||||
DOC_PATH: "docs/building-cmake.md"
|
||||
AUTO_CACHING: "1"
|
||||
|
||||
steps:
|
||||
- name: Get repository name.
|
||||
run: echo ::set-env name=REPO_NAME::${GITHUB_REPOSITORY##*/}
|
||||
|
||||
- name: Disable man for further package installs.
|
||||
run: |
|
||||
cfgFile="/etc/dpkg/dpkg.cfg.d/no_man"
|
||||
sudo touch $cfgFile
|
||||
p() {
|
||||
sudo echo "path-exclude=/usr/share/$1/*" >> $cfgFile
|
||||
}
|
||||
|
||||
p man
|
||||
p locale
|
||||
p doc
|
||||
|
||||
- name: Apt install.
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install software-properties-common -y && \
|
||||
sudo add-apt-repository ppa:git-core/ppa -y && \
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install git libexif-dev liblzma-dev libz-dev libssl-dev \
|
||||
libgtk2.0-dev libice-dev libsm-dev libicu-dev libdrm-dev dh-autoreconf \
|
||||
autoconf automake build-essential libxml2-dev libass-dev libfreetype6-dev \
|
||||
libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
|
||||
libvorbis-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev \
|
||||
libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libatspi2.0-dev \
|
||||
libxcb-render-util0-dev libxcb-util0-dev libxcb-xkb-dev libxrender-dev \
|
||||
libasound-dev libpulse-dev libxcb-sync0-dev libxcb-randr0-dev libegl1-mesa-dev \
|
||||
libx11-xcb-dev libffi-dev libncurses5-dev pkg-config texi2html bison yasm \
|
||||
zlib1g-dev xutils-dev python-xcbgen chrpath gperf wget -y --force-yes && \
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install gcc-8 g++-8 -y && \
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 && \
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 && \
|
||||
sudo update-alternatives --config gcc && \
|
||||
sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test -y
|
||||
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{ env.REPO_NAME }}
|
||||
|
||||
- name: First set up.
|
||||
shell: bash
|
||||
run: |
|
||||
gcc --version
|
||||
|
||||
gcc --version > CACHE_KEY.txt
|
||||
echo $MANUAL_CACHING >> CACHE_KEY.txt
|
||||
if [ "$AUTO_CACHING" == "1" ]; then
|
||||
thisFile=$REPO_NAME/.github/workflows/linux.yml
|
||||
echo `md5sum $thisFile | cut -c -32` >> CACHE_KEY.txt
|
||||
fi
|
||||
md5cache=$(md5sum CACHE_KEY.txt | cut -c -32)
|
||||
echo ::set-env name=CACHE_KEY::$md5cache
|
||||
|
||||
mkdir -p Libraries
|
||||
cd Libraries
|
||||
echo ::set-env name=LibrariesPath::`pwd`
|
||||
|
||||
- name: Range-v3.
|
||||
run: |
|
||||
echo "Find necessary branch from doc."
|
||||
cloneRange=$(grep -A 1 "range-v3" $REPO_NAME/$DOC_PATH | sed -n 1p)
|
||||
cd $LibrariesPath
|
||||
echo $cloneRange
|
||||
eval $cloneRange
|
||||
|
||||
- name: Patches.
|
||||
run: |
|
||||
echo "Find necessary commit from doc."
|
||||
checkoutCommit=$(grep -A 1 "cd patches" $REPO_NAME/$DOC_PATH | sed -n 2p)
|
||||
cd $LibrariesPath
|
||||
git clone $GIT/desktop-app/patches.git
|
||||
cd patches
|
||||
eval $checkoutCommit
|
||||
|
||||
- name: CMake.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
file=cmake-$CMAKE_VER-Linux-x86_64.sh
|
||||
wget $GIT/Kitware/CMake/releases/download/v$CMAKE_VER/$file
|
||||
sudo mkdir /opt/cmake
|
||||
sudo sh $file --prefix=/opt/cmake --skip-license
|
||||
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
|
||||
rm $file
|
||||
|
||||
cmake --version
|
||||
|
||||
- name: Opus cache.
|
||||
id: cache-opus
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/opus
|
||||
key: ${{ runner.OS }}-opus-${{ env.CACHE_KEY }}
|
||||
- name: Opus.
|
||||
if: steps.cache-opus.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b v1.3 --depth=1 $GIT/xiph/opus
|
||||
cd opus
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j$(nproc)
|
||||
- name: Opus install.
|
||||
run: |
|
||||
cd $LibrariesPath/opus
|
||||
sudo make install
|
||||
|
||||
- name: Libva.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone $GIT/01org/libva.git
|
||||
cd libva
|
||||
./autogen.sh --enable-static
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf libva
|
||||
|
||||
- name: Libvdpau.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b libvdpau-1.2 --depth=1 https://gitlab.freedesktop.org/vdpau/libvdpau.git
|
||||
cd libvdpau
|
||||
./autogen.sh --enable-static
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf libvdpau
|
||||
|
||||
- name: FFmpeg cache.
|
||||
id: cache-ffmpeg
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/ffmpeg-cache
|
||||
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}
|
||||
- name: FFmpeg build.
|
||||
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone --branch release/3.4 $GIT/FFmpeg/FFmpeg ffmpeg
|
||||
cd ffmpeg
|
||||
./configure --prefix=$LibrariesPath/ffmpeg-cache \
|
||||
--enable-protocol=file --enable-libopus \
|
||||
--disable-programs \
|
||||
--disable-doc \
|
||||
--disable-network \
|
||||
--disable-everything \
|
||||
--enable-hwaccel=h264_vaapi \
|
||||
--enable-hwaccel=h264_vdpau \
|
||||
--enable-hwaccel=mpeg4_vaapi \
|
||||
--enable-hwaccel=mpeg4_vdpau \
|
||||
--enable-decoder=aac \
|
||||
--enable-decoder=aac_at \
|
||||
--enable-decoder=aac_fixed \
|
||||
--enable-decoder=aac_latm \
|
||||
--enable-decoder=aasc \
|
||||
--enable-decoder=alac \
|
||||
--enable-decoder=alac_at \
|
||||
--enable-decoder=flac \
|
||||
--enable-decoder=gif \
|
||||
--enable-decoder=h264 \
|
||||
--enable-decoder=h264_vdpau \
|
||||
--enable-decoder=hevc \
|
||||
--enable-decoder=mp1 \
|
||||
--enable-decoder=mp1float \
|
||||
--enable-decoder=mp2 \
|
||||
--enable-decoder=mp2float \
|
||||
--enable-decoder=mp3 \
|
||||
--enable-decoder=mp3adu \
|
||||
--enable-decoder=mp3adufloat \
|
||||
--enable-decoder=mp3float \
|
||||
--enable-decoder=mp3on4 \
|
||||
--enable-decoder=mp3on4float \
|
||||
--enable-decoder=mpeg4 \
|
||||
--enable-decoder=mpeg4_vdpau \
|
||||
--enable-decoder=msmpeg4v2 \
|
||||
--enable-decoder=msmpeg4v3 \
|
||||
--enable-decoder=opus \
|
||||
--enable-decoder=pcm_alaw \
|
||||
--enable-decoder=pcm_alaw_at \
|
||||
--enable-decoder=pcm_f32be \
|
||||
--enable-decoder=pcm_f32le \
|
||||
--enable-decoder=pcm_f64be \
|
||||
--enable-decoder=pcm_f64le \
|
||||
--enable-decoder=pcm_lxf \
|
||||
--enable-decoder=pcm_mulaw \
|
||||
--enable-decoder=pcm_mulaw_at \
|
||||
--enable-decoder=pcm_s16be \
|
||||
--enable-decoder=pcm_s16be_planar \
|
||||
--enable-decoder=pcm_s16le \
|
||||
--enable-decoder=pcm_s16le_planar \
|
||||
--enable-decoder=pcm_s24be \
|
||||
--enable-decoder=pcm_s24daud \
|
||||
--enable-decoder=pcm_s24le \
|
||||
--enable-decoder=pcm_s24le_planar \
|
||||
--enable-decoder=pcm_s32be \
|
||||
--enable-decoder=pcm_s32le \
|
||||
--enable-decoder=pcm_s32le_planar \
|
||||
--enable-decoder=pcm_s64be \
|
||||
--enable-decoder=pcm_s64le \
|
||||
--enable-decoder=pcm_s8 \
|
||||
--enable-decoder=pcm_s8_planar \
|
||||
--enable-decoder=pcm_u16be \
|
||||
--enable-decoder=pcm_u16le \
|
||||
--enable-decoder=pcm_u24be \
|
||||
--enable-decoder=pcm_u24le \
|
||||
--enable-decoder=pcm_u32be \
|
||||
--enable-decoder=pcm_u32le \
|
||||
--enable-decoder=pcm_u8 \
|
||||
--enable-decoder=pcm_zork \
|
||||
--enable-decoder=vorbis \
|
||||
--enable-decoder=wavpack \
|
||||
--enable-decoder=wmalossless \
|
||||
--enable-decoder=wmapro \
|
||||
--enable-decoder=wmav1 \
|
||||
--enable-decoder=wmav2 \
|
||||
--enable-decoder=wmavoice \
|
||||
--enable-encoder=libopus \
|
||||
--enable-parser=aac \
|
||||
--enable-parser=aac_latm \
|
||||
--enable-parser=flac \
|
||||
--enable-parser=h264 \
|
||||
--enable-parser=hevc \
|
||||
--enable-parser=mpeg4video \
|
||||
--enable-parser=mpegaudio \
|
||||
--enable-parser=opus \
|
||||
--enable-parser=vorbis \
|
||||
--enable-demuxer=aac \
|
||||
--enable-demuxer=flac \
|
||||
--enable-demuxer=gif \
|
||||
--enable-demuxer=h264 \
|
||||
--enable-demuxer=hevc \
|
||||
--enable-demuxer=m4v \
|
||||
--enable-demuxer=mov \
|
||||
--enable-demuxer=mp3 \
|
||||
--enable-demuxer=ogg \
|
||||
--enable-demuxer=wav \
|
||||
--enable-muxer=ogg \
|
||||
--enable-muxer=opus
|
||||
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf ffmpeg
|
||||
- name: FFmpeg install.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
#List of files from cmake/external/ffmpeg/CMakeLists.txt.
|
||||
copyLib() {
|
||||
mkdir -p ffmpeg/$1
|
||||
yes | cp -i ffmpeg-cache/lib/$1.a ffmpeg/$1/$1.a
|
||||
}
|
||||
copyLib libavformat
|
||||
copyLib libavcodec
|
||||
copyLib libswresample
|
||||
copyLib libswscale
|
||||
copyLib libavutil
|
||||
|
||||
sudo cp -R ffmpeg-cache/. /usr/local/
|
||||
|
||||
- name: PortAudio.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone https://git.assembla.com/portaudio.git
|
||||
cd portaudio
|
||||
git checkout 396fe4b669
|
||||
./configure
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf portaudio
|
||||
|
||||
- name: OpenAL Soft.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b openal-soft-1.20.1 --depth=1 $GIT/kcat/openal-soft.git
|
||||
cd openal-soft/build
|
||||
cmake -D LIBTYPE:STRING=STATIC ..
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd -
|
||||
rm -rf openal-soft
|
||||
|
||||
- name: OpenSSL cache.
|
||||
id: cache-openssl
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/openssl-cache
|
||||
key: ${{ runner.OS }}-${{ env.OPENSSL_VER }}-${{ env.CACHE_KEY }}
|
||||
- name: OpenSSL build.
|
||||
if: steps.cache-openssl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
opensslDir=openssl_${OPENSSL_VER}
|
||||
git clone -b OpenSSL_${OPENSSL_VER}-stable --depth=1 \
|
||||
$GIT/openssl/openssl $opensslDir
|
||||
cd $opensslDir
|
||||
./config --prefix=$LibrariesPath/openssl-cache
|
||||
make -j$(nproc)
|
||||
sudo make install_sw
|
||||
cd ..
|
||||
rm -rf $opensslDir
|
||||
- name: OpenSSL install.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
sudo mkdir -p $OPENSSL_PREFIX
|
||||
sudo cp -R openssl-cache/. $OPENSSL_PREFIX/
|
||||
|
||||
- name: Libxkbcommon.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b xkbcommon-0.8.4 --depth=1 $GIT/xkbcommon/libxkbcommon.git
|
||||
cd libxkbcommon
|
||||
./autogen.sh
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf libxkbcommon
|
||||
|
||||
- name: Libwayland.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland
|
||||
cd wayland
|
||||
./autogen.sh --enable-static --disable-documentation
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf wayland
|
||||
|
||||
- name: Qt 5.12.5 cache.
|
||||
id: cache-qt
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/qt-cache
|
||||
key: ${{ runner.OS }}-qt-${{ env.CACHE_KEY }}-${{ hashFiles('**/qtbase_5_12_5.diff') }}
|
||||
- name: Qt 5.12.5 build.
|
||||
if: steps.cache-qt.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone -b v5.12.5 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT}
|
||||
cd qt_${QT}
|
||||
perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg
|
||||
git submodule update qtbase qtwayland qtimageformats qtsvg
|
||||
cd qtbase
|
||||
git apply ../../patches/qtbase_${QT}.diff
|
||||
cd src/plugins/platforminputcontexts
|
||||
git clone $GIT/desktop-app/fcitx.git
|
||||
git clone $GIT/desktop-app/hime.git
|
||||
git clone $GIT/desktop-app/nimf.git
|
||||
cd ../../../..
|
||||
|
||||
./configure -prefix "$LibrariesPath/qt-cache" \
|
||||
-release \
|
||||
-force-debug-info \
|
||||
-opensource \
|
||||
-confirm-license \
|
||||
-qt-zlib \
|
||||
-qt-libpng \
|
||||
-qt-libjpeg \
|
||||
-qt-harfbuzz \
|
||||
-qt-pcre \
|
||||
-qt-xcb \
|
||||
-system-freetype \
|
||||
-fontconfig \
|
||||
-no-gtk \
|
||||
-static \
|
||||
-dbus-runtime \
|
||||
-openssl-linked \
|
||||
-I "$OPENSSL_PREFIX/include" OPENSSL_LIBS="$OPENSSL_PREFIX/lib/libssl.a $OPENSSL_PREFIX/lib/libcrypto.a -ldl -lpthread" \
|
||||
-nomake examples \
|
||||
-nomake tests
|
||||
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd ..
|
||||
rm -rf qt_${QT}
|
||||
- name: Qt 5.12.5 install.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
sudo mkdir -p $QT_PREFIX
|
||||
sudo cp -R qt-cache/. $QT_PREFIX/
|
||||
|
||||
- name: Breakpad cache.
|
||||
id: cache-breakpad
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/breakpad-cache
|
||||
key: ${{ runner.OS }}-breakpad-${{ env.CACHE_KEY }}
|
||||
- name: Breakpad clone.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone https://chromium.googlesource.com/breakpad/breakpad
|
||||
cd breakpad
|
||||
git checkout bc8fb886
|
||||
git clone https://chromium.googlesource.com/linux-syscall-support src/third_party/lss
|
||||
cd src/third_party/lss
|
||||
git checkout a91633d1
|
||||
- name: Breakpad build.
|
||||
if: steps.cache-breakpad.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
BreakpadCache=$LibrariesPath/breakpad-cache
|
||||
|
||||
git clone https://chromium.googlesource.com/external/gyp
|
||||
cd gyp
|
||||
git checkout 9f2a7bb1
|
||||
git apply ../patches/gyp.diff
|
||||
cd ..
|
||||
|
||||
cd breakpad
|
||||
./configure --prefix=$BreakpadCache
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
cd src
|
||||
rm -r testing
|
||||
git clone $GIT/google/googletest testing
|
||||
cd tools
|
||||
sed -i 's/minidump_upload.m/minidump_upload.cc/' linux/tools_linux.gypi
|
||||
../../../gyp/gyp --depth=. --generator-output=.. -Goutput_dir=../out tools.gyp --format=cmake
|
||||
cd ../../out/Default
|
||||
cmake .
|
||||
make -j$(nproc) dump_syms
|
||||
|
||||
mv dump_syms $BreakpadCache/
|
||||
cd ..
|
||||
rm -rf gyp breakpad
|
||||
- name: Breakpad install.
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
sudo cp -R breakpad-cache/. /usr/local/
|
||||
mkdir -p breakpad/out/Default/
|
||||
cp breakpad-cache/dump_syms breakpad/out/Default/dump_syms
|
||||
|
||||
- name: Telegram Desktop build.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
run: |
|
||||
cd $REPO_NAME/Telegram
|
||||
|
||||
DEFINE=""
|
||||
if [ -n "${{ matrix.defines }}" ]; then
|
||||
DEFINE="-D ${{ matrix.defines }}=ON"
|
||||
echo Define from matrix: $DEFINE
|
||||
fi
|
||||
|
||||
./configure.sh \
|
||||
-D CMAKE_CXX_FLAGS="-s" \
|
||||
-D TDESKTOP_API_TEST=ON \
|
||||
-D DESKTOP_APP_USE_PACKAGED=OFF \
|
||||
$DEFINE
|
||||
|
||||
cd ../out/Debug
|
||||
make -j$(nproc)
|
||||
|
||||
- name: Check.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
run: |
|
||||
filePath="$REPO_NAME/out/Debug/bin/Telegram"
|
||||
if test -f "$filePath"; then
|
||||
echo "Build successfully done! :)"
|
||||
|
||||
size=$(stat -c %s "$filePath")
|
||||
echo "File size of ${filePath}: ${size} Bytes."
|
||||
else
|
||||
echo "Build error, output file does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Move artifact.
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
run: |
|
||||
cd $REPO_NAME/out/Debug/bin
|
||||
mkdir artifact
|
||||
mv Telegram artifact/
|
||||
- uses: actions/upload-artifact@master
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
name: Upload artifact.
|
||||
with:
|
||||
name: Telegram
|
||||
path: ${{ env.REPO_NAME }}/out/Debug/bin/artifact/
|
||||
67
.github/workflows/mac.yml
vendored
@@ -26,31 +26,29 @@ jobs:
|
||||
GIT: "https://github.com"
|
||||
PREFIX: "/usr/local/macos"
|
||||
MACOSX_DEPLOYMENT_TARGET: "10.12"
|
||||
XZ: "xz-5.0.5"
|
||||
XZ: "xz-5.2.4"
|
||||
QT: "5_12_5"
|
||||
OPENSSL_VER: "1_1_1"
|
||||
QT_PREFIX: "/usr/local/desktop-app/Qt-5.12.5"
|
||||
LIBICONV_VER: "libiconv-1.15"
|
||||
LIBICONV_VER: "libiconv-1.16"
|
||||
UPLOAD_ARTIFACT: "false"
|
||||
MANUAL_CACHING: "1"
|
||||
ONLY_CACHE: "false"
|
||||
MANUAL_CACHING: "2"
|
||||
DOC_PATH: "docs/building-xcode.md"
|
||||
AUTO_CACHING: "1"
|
||||
|
||||
steps:
|
||||
- name: Get repository name.
|
||||
run: echo ::set-env name=REPO_NAME::${GITHUB_REPOSITORY##*/}
|
||||
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{ env.REPO_NAME }}
|
||||
|
||||
- name: First set up.
|
||||
run: |
|
||||
cd ..
|
||||
mv $REPO_NAME temp
|
||||
mkdir $REPO_NAME
|
||||
mv temp $REPO_NAME/$REPO_NAME
|
||||
cd $REPO_NAME
|
||||
|
||||
brew install automake fdk-aac lame libass libtool libvorbis libvpx \
|
||||
ninja opus sdl shtool texi2html theora x264 xvid yasm pkg-config
|
||||
|
||||
@@ -60,6 +58,10 @@ jobs:
|
||||
echo $MIN_MAC >> CACHE_KEY.txt
|
||||
echo $PREFIX >> CACHE_KEY.txt
|
||||
echo $MANUAL_CACHING >> CACHE_KEY.txt
|
||||
if [ "$AUTO_CACHING" == "1" ]; then
|
||||
thisFile=$REPO_NAME/.github/workflows/mac.yml
|
||||
echo `md5 -q $thisFile` >> CACHE_KEY.txt
|
||||
fi
|
||||
echo ::set-env name=CACHE_KEY::`md5 -q CACHE_KEY.txt`
|
||||
|
||||
echo ::add-path::$PWD/Libraries/depot_tools
|
||||
@@ -102,7 +104,7 @@ jobs:
|
||||
|
||||
git clone $GIT/desktop-app/zlib.git
|
||||
cd zlib
|
||||
CFLAGS="$MIN_MAC $UNGUARDED" LDFLAGS="$MIN_MAC" ./configure
|
||||
CFLAGS="$MIN_MAC $UNGUARDED" LDFLAGS="$MIN_MAC" ./configure --prefix=$PREFIX
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
|
||||
@@ -117,8 +119,8 @@ jobs:
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
|
||||
git clone $GIT/openssl/openssl openssl_$OPENSSL_VER
|
||||
cd openssl_$OPENSSL_VER
|
||||
git clone $GIT/openssl/openssl openssl
|
||||
cd openssl
|
||||
git checkout OpenSSL_"$OPENSSL_VER"-stable
|
||||
./Configure \
|
||||
--prefix=$PREFIX \
|
||||
@@ -127,6 +129,15 @@ jobs:
|
||||
$MIN_MAC
|
||||
make build_libs -j$(nproc)
|
||||
|
||||
SSL_DIR=$LibrariesPath/openssl_${{ env.OPENSSL_VER }}
|
||||
mkdir -p $SSL_DIR/include
|
||||
copyLib() {
|
||||
cp $1.a $SSL_DIR/$1.a
|
||||
}
|
||||
copyLib libssl
|
||||
copyLib libcrypto
|
||||
sudo cp -R include/. $SSL_DIR/include/
|
||||
|
||||
- name: Opus cache.
|
||||
id: cache-opus
|
||||
uses: actions/cache@v1
|
||||
@@ -174,7 +185,7 @@ jobs:
|
||||
id: cache-ffmpeg
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/ffmpeg
|
||||
path: ${{ env.LibrariesPath }}/ffmpeg-cache
|
||||
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}
|
||||
- name: FFmpeg.
|
||||
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
|
||||
@@ -188,7 +199,7 @@ jobs:
|
||||
LDFLAGS=`freetype-config --libs`
|
||||
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
|
||||
|
||||
./configure --prefix=/usr/local \
|
||||
./configure --prefix=$LibrariesPath/ffmpeg-cache \
|
||||
--extra-cflags="$MIN_MAC $UNGUARDED" \
|
||||
--extra-cxxflags="$MIN_MAC $UNGUARDED" \
|
||||
--extra-ldflags="$MIN_MAC" \
|
||||
@@ -290,10 +301,23 @@ jobs:
|
||||
--enable-muxer=opus
|
||||
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
- name: FFmpeg install.
|
||||
run: |
|
||||
cd $LibrariesPath/ffmpeg
|
||||
sudo make install
|
||||
cd $LibrariesPath
|
||||
#List of files from cmake/external/ffmpeg/CMakeLists.txt.
|
||||
copyLib() {
|
||||
mkdir -p ffmpeg/$1
|
||||
\cp -fR ffmpeg-cache/lib/$1.a ffmpeg/$1/$1.a
|
||||
}
|
||||
copyLib libavformat
|
||||
copyLib libavcodec
|
||||
copyLib libswresample
|
||||
copyLib libswscale
|
||||
copyLib libavutil
|
||||
|
||||
sudo cp -R ffmpeg-cache/. /usr/local/
|
||||
sudo cp -R ffmpeg-cache/include/. ffmpeg/
|
||||
|
||||
- name: OpenAL Soft.
|
||||
run: |
|
||||
@@ -364,8 +388,8 @@ jobs:
|
||||
cd $LibrariesPath
|
||||
mv qt-cache Qt-5.12.5
|
||||
sudo mkdir -p $QT_PREFIX
|
||||
sudo mv -f Qt-5.12.5 /usr/local/desktop-app/
|
||||
- name: Build Qt 5.12.5.
|
||||
sudo mv -f Qt-5.12.5 "$(dirname "$QT_PREFIX")"/
|
||||
- name: Qt 5.12.5 build.
|
||||
if: steps.cache-qt.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $LibrariesPath
|
||||
@@ -400,7 +424,8 @@ jobs:
|
||||
make clean
|
||||
cp -r $QT_PREFIX $LibrariesPath/qt-cache
|
||||
|
||||
- name: Build Telegram Desktop.
|
||||
- name: Telegram Desktop build.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
run: |
|
||||
cd $REPO_NAME/Telegram
|
||||
|
||||
@@ -429,4 +454,4 @@ jobs:
|
||||
name: Upload artifact.
|
||||
with:
|
||||
name: Telegram
|
||||
path: $REPO_NAME\out\Debug\artifact\
|
||||
path: ${{ env.REPO_NAME }}/out/Debug/artifact/
|
||||
|
||||
106
.github/workflows/snap.yml
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
name: Snap.
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '*.md'
|
||||
|
||||
jobs:
|
||||
|
||||
linux:
|
||||
name: Ubuntu 18.04
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
env:
|
||||
UPLOAD_ARTIFACT: "false"
|
||||
ONLY_CACHE: "false"
|
||||
MANUAL_CACHING: "3"
|
||||
|
||||
steps:
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: First set up.
|
||||
run: |
|
||||
# Workaround for Heroku
|
||||
curl https://cli-assets.heroku.com/apt/release.key | sudo apt-key add -
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-8 g++-8 -y
|
||||
sudo snap install --classic snapcraft
|
||||
|
||||
# Workaround for snapcraft
|
||||
# See https://forum.snapcraft.io/t/13258
|
||||
sudo chown root:root /
|
||||
|
||||
md5() {
|
||||
md5cache=$(md5sum $1.txt | cut -c -32)
|
||||
echo ::set-env name=$1::$md5cache
|
||||
}
|
||||
keyFor() {
|
||||
keyName="${1^^}_CACHE_KEY"
|
||||
awk -v RS="" -v ORS="\n\n" '/^ '"$1"':/' snap/snapcraft.yaml > $keyName.txt
|
||||
md5 $keyName
|
||||
}
|
||||
|
||||
snapcraft --version > CACHE_KEY.txt
|
||||
gcc-8 --version >> CACHE_KEY.txt
|
||||
echo $MANUAL_CACHING >> CACHE_KEY.txt
|
||||
md5 CACHE_KEY
|
||||
|
||||
keyFor cmake
|
||||
keyFor ffmpeg
|
||||
|
||||
- name: CMake cache.
|
||||
id: cache-cmake
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: parts/cmake
|
||||
key: ${{ runner.OS }}-cmake-${{ env.CACHE_KEY }}-${{ env.CMAKE_CACHE_KEY }}
|
||||
|
||||
- name: CMake build.
|
||||
if: steps.cache-cmake.outputs.cache-hit != 'true'
|
||||
run: sudo snapcraft build --destructive-mode cmake
|
||||
|
||||
- name: FFmpeg cache.
|
||||
id: cache-ffmpeg
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: parts/ffmpeg
|
||||
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}-${{ env.FFMPEG_CACHE_KEY }}
|
||||
|
||||
- name: FFmpeg build.
|
||||
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
|
||||
run: sudo snapcraft build --destructive-mode ffmpeg
|
||||
|
||||
- name: Telegram Desktop snap build.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
run: sudo snapcraft --destructive-mode
|
||||
|
||||
- name: Move artifact.
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
run: |
|
||||
artifact_name=$(echo telegram-desktop_*.snap)
|
||||
echo ::set-env name=ARTIFACT_NAME::$artifact_name
|
||||
|
||||
mkdir artifact
|
||||
mv $artifact_name artifact
|
||||
|
||||
- uses: actions/upload-artifact@master
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
name: Upload artifact.
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_NAME }}
|
||||
path: artifact
|
||||
|
||||
- name: Remove unneeded directories for cache.
|
||||
run: |
|
||||
sudo rm -rf parts/{cmake,ffmpeg}/{build,src,ubuntu}
|
||||
sudo rm -rf parts/{cmake,ffmpeg}/state/{stage,prime}
|
||||
43
.github/workflows/win.yml
vendored
@@ -23,32 +23,29 @@ jobs:
|
||||
env:
|
||||
SDK: "10.0.18362.0"
|
||||
VC: "call vcvars32.bat && cd Libraries"
|
||||
PY2: 'C:\hostedtoolcache\windows\Python\2.7.16\x64'
|
||||
GIT: "https://github.com"
|
||||
QT: "5_12_5"
|
||||
OPENSSL_VER: "1_1_1"
|
||||
UPLOAD_ARTIFACT: "false"
|
||||
MANUAL_CACHING: "1"
|
||||
ONLY_CACHE: "false"
|
||||
MANUAL_CACHING: "2"
|
||||
DOC_PATH: "docs/building-msvc.md"
|
||||
AUTO_CACHING: "1"
|
||||
|
||||
steps:
|
||||
- name: Get repository name.
|
||||
shell: bash
|
||||
run: echo ::set-env name=REPO_NAME::${GITHUB_REPOSITORY##*/}
|
||||
|
||||
- name: Clone.
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
path: ${{ env.REPO_NAME }}
|
||||
|
||||
- name: Set up environment variables.
|
||||
shell: cmd
|
||||
run: |
|
||||
cd ..
|
||||
move %REPO_NAME% temp
|
||||
mkdir %REPO_NAME%
|
||||
move temp %REPO_NAME%/%REPO_NAME%
|
||||
cd %REPO_NAME%
|
||||
|
||||
echo ::add-path::C:\Strawberry\perl\bin\
|
||||
echo ::add-path::"%programfiles%\NASM"
|
||||
|
||||
@@ -69,6 +66,10 @@ jobs:
|
||||
- name: Generate cache key.
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "$AUTO_CACHING" == "1" ]; then
|
||||
thisFile=$REPO_NAME/.github/workflows/win.yml
|
||||
echo `md5sum $thisFile | awk '{ print $1 }'` >> CACHE_KEY.txt
|
||||
fi
|
||||
echo ::set-env name=CACHE_KEY::`md5sum CACHE_KEY.txt | awk '{ print $1 }'`
|
||||
|
||||
- name: Choco installs.
|
||||
@@ -135,6 +136,7 @@ jobs:
|
||||
move ossl_static.pdb out32
|
||||
|
||||
rmdir /S /Q test
|
||||
rmdir /S /Q .git
|
||||
|
||||
- name: Zlib.
|
||||
shell: cmd
|
||||
@@ -186,6 +188,16 @@ jobs:
|
||||
run: |
|
||||
cd %LibrariesPath%
|
||||
|
||||
echo Find any version of Python 2.
|
||||
for /D %%a in (C:\hostedtoolcache\windows\Python\2.*) do (
|
||||
SET PY2=%%a\x64
|
||||
)
|
||||
IF [%PY2%] == [] (
|
||||
echo Python 2 is not found.
|
||||
exit 1
|
||||
)
|
||||
echo Found %PY2%.
|
||||
|
||||
git clone %GIT%/telegramdesktop/gyp.git
|
||||
cd gyp
|
||||
SET PATH=%PY2%;%cd%;%PATH%
|
||||
@@ -217,6 +229,7 @@ jobs:
|
||||
path: ${{ env.LibrariesPath }}/opus
|
||||
key: ${{ runner.OS }}-opus-${{ env.CACHE_KEY }}
|
||||
- name: Opus.
|
||||
if: steps.cache-opus.outputs.cache-hit != 'true'
|
||||
shell: cmd
|
||||
run: |
|
||||
%VC%
|
||||
@@ -233,7 +246,7 @@ jobs:
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ env.LibrariesPath }}/ffmpeg
|
||||
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}-${{ hashFiles('**/build_ffmpeg_win.sh') }}
|
||||
key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }}-2-${{ hashFiles('**/build_ffmpeg_win.sh') }}
|
||||
- name: FFmpeg.
|
||||
if: steps.cache-ffmpeg.outputs.cache-hit != 'true'
|
||||
shell: cmd
|
||||
@@ -248,6 +261,8 @@ jobs:
|
||||
set MSYS2_PATH_TYPE=inherit
|
||||
call c:\tools\msys64\usr\bin\bash --login ../../%REPO_NAME%/Telegram/Patches/build_ffmpeg_win.sh
|
||||
|
||||
rmdir /S /Q .git
|
||||
|
||||
- name: Qt 5.12.5 cache.
|
||||
id: cache-qt
|
||||
uses: actions/cache@v1
|
||||
@@ -289,7 +304,7 @@ jobs:
|
||||
-nomake examples ^
|
||||
-nomake tests ^
|
||||
-platform win32-msvc
|
||||
- name: Build Qt 5.12.5.
|
||||
- name: Qt 5.12.5 build.
|
||||
if: steps.cache-qt.outputs.cache-hit != 'true'
|
||||
shell: cmd
|
||||
run: |
|
||||
@@ -312,7 +327,8 @@ jobs:
|
||||
fi
|
||||
echo "::set-env name=TDESKTOP_BUILD_DEFINE::$DEFINE"
|
||||
|
||||
- name: Build Telegram Desktop.
|
||||
- name: Telegram Desktop build.
|
||||
if: env.ONLY_CACHE == 'false'
|
||||
shell: cmd
|
||||
run: |
|
||||
cd %REPO_NAME%\Telegram
|
||||
@@ -329,6 +345,7 @@ jobs:
|
||||
|
||||
- name: Move artifact.
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
shell: cmd
|
||||
run: |
|
||||
cd %REPO_NAME%\out\Debug
|
||||
mkdir artifact
|
||||
@@ -339,4 +356,4 @@ jobs:
|
||||
if: env.UPLOAD_ARTIFACT == 'true'
|
||||
with:
|
||||
name: Telegram
|
||||
path: ${{ env.REPO_NAME }}\out\Debug\artifact\
|
||||
path: ${{ env.REPO_NAME }}\out\Debug\artifact\
|
||||
|
||||
9
.gitmodules
vendored
@@ -28,9 +28,6 @@
|
||||
[submodule "Telegram/lib_base"]
|
||||
path = Telegram/lib_base
|
||||
url = https://github.com/desktop-app/lib_base.git
|
||||
[submodule "Telegram/gyp/helpers"]
|
||||
path = Telegram/gyp/helpers
|
||||
url = https://github.com/desktop-app/gyp_helpers.git
|
||||
[submodule "Telegram/codegen"]
|
||||
path = Telegram/codegen
|
||||
url = https://github.com/desktop-app/codegen.git
|
||||
@@ -64,3 +61,9 @@
|
||||
[submodule "Telegram/lib_qr"]
|
||||
path = Telegram/lib_qr
|
||||
url = https://github.com/desktop-app/lib_qr.git
|
||||
[submodule "Telegram/ThirdParty/libdbusmenu-qt"]
|
||||
path = Telegram/ThirdParty/libdbusmenu-qt
|
||||
url = https://github.com/desktop-app/libdbusmenu-qt.git
|
||||
[submodule "Telegram/ThirdParty/hunspell"]
|
||||
path = Telegram/ThirdParty/hunspell
|
||||
url = https://github.com/hunspell/hunspell
|
||||
|
||||
67
.travis.yml
@@ -1,67 +0,0 @@
|
||||
sudo: required
|
||||
dist: trusty
|
||||
|
||||
language: cpp
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/travisCacheDir
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- BUILD_VERSION=""
|
||||
- BUILD_VERSION="disable_register_custom_scheme"
|
||||
- BUILD_VERSION="disable_crash_reports"
|
||||
- BUILD_VERSION="disable_network_proxy"
|
||||
- BUILD_VERSION="disable_desktop_file_generation"
|
||||
- BUILD_VERSION="disable_gtk_integration"
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- bison
|
||||
- build-essential
|
||||
- cmake
|
||||
- devscripts
|
||||
- dpatch
|
||||
- equivs
|
||||
- fakeroot
|
||||
- g++-8
|
||||
- gcc-8
|
||||
- git
|
||||
- gnome-common
|
||||
- gobject-introspection
|
||||
- gtk-doc-tools
|
||||
- libappindicator-dev
|
||||
- libasound2-dev
|
||||
- libdbusmenu-glib-dev
|
||||
- liblzma-dev
|
||||
- libopus-dev
|
||||
- libpulse-dev
|
||||
- libenchant-dev
|
||||
- libssl-dev
|
||||
- libdee-dev
|
||||
- libva-dev
|
||||
- libvdpau-dev
|
||||
- libxcb-xkb-dev
|
||||
- libxkbcommon-dev
|
||||
- libatspi2.0-dev
|
||||
- lintian
|
||||
- quilt
|
||||
- valac
|
||||
- xutils-dev
|
||||
- yasm
|
||||
|
||||
before_install:
|
||||
- export CXX="g++-8" CC="gcc-8"
|
||||
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-8
|
||||
- sudo update-alternatives --config gcc
|
||||
- g++ --version
|
||||
|
||||
script:
|
||||
- .travis/build.sh
|
||||
725
.travis/build.sh
@@ -1,725 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
REPO="$PWD"
|
||||
|
||||
BUILD="$REPO/build"
|
||||
UPSTREAM="$REPO/upstream"
|
||||
EXTERNAL="$REPO/external"
|
||||
CACHE="$HOME/travisCacheDir"
|
||||
|
||||
QT_WAS_BUILT="0"
|
||||
|
||||
QT_VERSION=5.12.5
|
||||
|
||||
XKB_PATH="$BUILD/libxkbcommon"
|
||||
XKB_CACHE_VERSION="3"
|
||||
|
||||
QT_PATH="$BUILD/qt"
|
||||
QT_CACHE_VERSION="5"
|
||||
QT_PATCH="$EXTERNAL/patches/qtbase_${QT_VERSION//\./_}.diff"
|
||||
|
||||
BREAKPAD_PATH="$BUILD/breakpad"
|
||||
BREAKPAD_CACHE_VERSION="3"
|
||||
|
||||
GYP_PATH="$BUILD/gyp"
|
||||
GYP_CACHE_VERSION="3"
|
||||
GYP_PATCH="$EXTERNAL/patches/gyp.diff"
|
||||
|
||||
RANGE_PATH="$BUILD/range-v3"
|
||||
RANGE_CACHE_VERSION="3"
|
||||
|
||||
VA_PATH="$BUILD/libva"
|
||||
VA_CACHE_VERSION="3"
|
||||
|
||||
VDPAU_PATH="$BUILD/libvdpau"
|
||||
VDPAU_CACHE_VERSION="3"
|
||||
|
||||
FFMPEG_PATH="$BUILD/ffmpeg"
|
||||
FFMPEG_CACHE_VERSION="3"
|
||||
|
||||
OPENAL_PATH="$BUILD/openal-soft"
|
||||
OPENAL_CACHE_VERSION="4"
|
||||
|
||||
GYP_DEFINES=""
|
||||
|
||||
[[ ! $MAKE_ARGS ]] && MAKE_ARGS="--silent -j4"
|
||||
|
||||
run() {
|
||||
# Move files to subdir
|
||||
cd ..
|
||||
mv tdesktop tdesktop2
|
||||
mkdir tdesktop
|
||||
mv tdesktop2 "$UPSTREAM"
|
||||
|
||||
mkdir "$BUILD"
|
||||
|
||||
build
|
||||
check
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p "$EXTERNAL"
|
||||
|
||||
BUILD_VERSION_DATA=$(echo $BUILD_VERSION | cut -d'-' -f 1)
|
||||
|
||||
getPatches
|
||||
|
||||
# libxkbcommon
|
||||
getXkbCommon
|
||||
|
||||
# libva
|
||||
getVa
|
||||
|
||||
# libvdpau
|
||||
getVdpau
|
||||
|
||||
# ffmpeg
|
||||
getFFmpeg
|
||||
|
||||
# openal_soft
|
||||
getOpenAL
|
||||
|
||||
# Patched Qt
|
||||
getCustomQt
|
||||
|
||||
# Breakpad
|
||||
getBreakpad
|
||||
|
||||
# Patched GYP (supports cmake precompiled headers)
|
||||
getGYP
|
||||
|
||||
# Range v3
|
||||
getRange
|
||||
|
||||
# Guideline Support Library
|
||||
getGSL
|
||||
|
||||
if [ "$QT_WAS_BUILT" == "1" ]; then
|
||||
error_msg "Qt was built, please restart the job :("
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Configure the build
|
||||
if [[ $BUILD_VERSION == *"disable_register_custom_scheme"* ]]; then
|
||||
GYP_DEFINES+=",TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
|
||||
fi
|
||||
|
||||
if [[ $BUILD_VERSION == *"disable_crash_reports"* ]]; then
|
||||
GYP_DEFINES+=",DESKTOP_APP_DISABLE_CRASH_REPORTS"
|
||||
fi
|
||||
|
||||
if [[ $BUILD_VERSION == *"disable_network_proxy"* ]]; then
|
||||
GYP_DEFINES+=",TDESKTOP_DISABLE_NETWORK_PROXY"
|
||||
fi
|
||||
|
||||
if [[ $BUILD_VERSION == *"disable_desktop_file_generation"* ]]; then
|
||||
GYP_DEFINES+=",TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION"
|
||||
fi
|
||||
|
||||
if [[ $BUILD_VERSION == *"disable_gtk_integration"* ]]; then
|
||||
GYP_DEFINES+=",TDESKTOP_DISABLE_GTK_INTEGRATION"
|
||||
fi
|
||||
|
||||
info_msg "Build defines: ${GYP_DEFINES}"
|
||||
|
||||
buildTelegram
|
||||
|
||||
travisEndFold
|
||||
}
|
||||
|
||||
getPatches() {
|
||||
cd "$EXTERNAL"
|
||||
git clone --depth 1 https://github.com/desktop-app/patches
|
||||
}
|
||||
|
||||
getXkbCommon() {
|
||||
travisStartFold "Getting xkbcommon"
|
||||
|
||||
local XKB_CACHE="$CACHE/libxkbcommon"
|
||||
local XKB_CACHE_FILE="$XKB_CACHE/.cache.txt"
|
||||
local XKB_CACHE_KEY="${XKB_CACHE_VERSION}"
|
||||
local XKB_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$XKB_CACHE" ]; then
|
||||
mkdir -p "$XKB_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$XKB_CACHE" "$XKB_PATH"
|
||||
|
||||
if [ -f "$XKB_CACHE_FILE" ]; then
|
||||
local XKB_CACHE_KEY_FOUND=`tail -n 1 $XKB_CACHE_FILE`
|
||||
if [ "$XKB_CACHE_KEY" == "$XKB_CACHE_KEY_FOUND" ]; then
|
||||
XKB_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$XKB_CACHE_KEY_FOUND' does not match '$XKB_CACHE_KEY', rebuilding libxkbcommon"
|
||||
fi
|
||||
fi
|
||||
if [ "$XKB_CACHE_OUTDATED" == "1" ]; then
|
||||
buildXkbCommon
|
||||
sudo echo $XKB_CACHE_KEY > "$XKB_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached libxkbcommon"
|
||||
fi
|
||||
}
|
||||
|
||||
buildXkbCommon() {
|
||||
info_msg "Downloading and building libxkbcommon"
|
||||
|
||||
if [ -d "$EXTERNAL/libxkbcommon" ]; then
|
||||
rm -rf "$EXTERNAL/libxkbcommon"
|
||||
fi
|
||||
cd $XKB_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://github.com/xkbcommon/libxkbcommon.git
|
||||
|
||||
cd "$EXTERNAL/libxkbcommon"
|
||||
git checkout xkbcommon-0.8.4
|
||||
./autogen.sh --prefix=$XKB_PATH
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getRange() {
|
||||
travisStartFold "Getting range-v3"
|
||||
|
||||
local RANGE_CACHE="$CACHE/range-v3"
|
||||
local RANGE_CACHE_FILE="$RANGE_CACHE/.cache.txt"
|
||||
local RANGE_CACHE_KEY="${RANGE_CACHE_VERSION}"
|
||||
local RANGE_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$RANGE_CACHE" ]; then
|
||||
mkdir -p "$RANGE_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$RANGE_CACHE" "$RANGE_PATH"
|
||||
|
||||
if [ -f "$RANGE_CACHE_FILE" ]; then
|
||||
local RANGE_CACHE_KEY_FOUND=`tail -n 1 $RANGE_CACHE_FILE`
|
||||
if [ "$RANGE_CACHE_KEY" == "$RANGE_CACHE_KEY_FOUND" ]; then
|
||||
RANGE_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$RANGE_CACHE_KEY_FOUND' does not match '$RANGE_CACHE_KEY', getting range-v3"
|
||||
fi
|
||||
fi
|
||||
if [ "$RANGE_CACHE_OUTDATED" == "1" ]; then
|
||||
buildRange
|
||||
sudo echo $RANGE_CACHE_KEY > "$RANGE_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached range-v3"
|
||||
fi
|
||||
}
|
||||
|
||||
buildRange() {
|
||||
info_msg "Downloading range-v3"
|
||||
|
||||
if [ -d "$EXTERNAL/range-v3" ]; then
|
||||
rm -rf "$EXTERNAL/range-v3"
|
||||
fi
|
||||
cd $RANGE_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone --depth 1 --branch 0.9.1 https://github.com/ericniebler/range-v3
|
||||
|
||||
cd "$EXTERNAL/range-v3"
|
||||
cp -r * "$RANGE_PATH/"
|
||||
}
|
||||
|
||||
getVa() {
|
||||
travisStartFold "Getting libva"
|
||||
|
||||
local VA_CACHE="$CACHE/libva"
|
||||
local VA_CACHE_FILE="$VA_CACHE/.cache.txt"
|
||||
local VA_CACHE_KEY="${VA_CACHE_VERSION}"
|
||||
local VA_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$VA_CACHE" ]; then
|
||||
mkdir -p "$VA_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$VA_CACHE" "$VA_PATH"
|
||||
|
||||
if [ -f "$VA_CACHE_FILE" ]; then
|
||||
local VA_CACHE_KEY_FOUND=`tail -n 1 $VA_CACHE_FILE`
|
||||
if [ "$VA_CACHE_KEY" == "$VA_CACHE_KEY_FOUND" ]; then
|
||||
VA_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$VA_CACHE_KEY_FOUND' does not match '$VA_CACHE_KEY', rebuilding libva"
|
||||
fi
|
||||
fi
|
||||
if [ "$VA_CACHE_OUTDATED" == "1" ]; then
|
||||
buildVa
|
||||
sudo echo $VA_CACHE_KEY > "$VA_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached libva"
|
||||
fi
|
||||
}
|
||||
|
||||
buildVa() {
|
||||
info_msg "Downloading and building libva"
|
||||
|
||||
if [ -d "$EXTERNAL/libva" ]; then
|
||||
rm -rf "$EXTERNAL/libva"
|
||||
fi
|
||||
cd $VA_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://github.com/01org/libva
|
||||
|
||||
cd "$EXTERNAL/libva"
|
||||
./autogen.sh --prefix=$VA_PATH --enable-static
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getVdpau() {
|
||||
travisStartFold "Getting libvdpau"
|
||||
|
||||
local VDPAU_CACHE="$CACHE/libvdpau"
|
||||
local VDPAU_CACHE_FILE="$VDPAU_CACHE/.cache.txt"
|
||||
local VDPAU_CACHE_KEY="${VDPAU_CACHE_VERSION}"
|
||||
local VDPAU_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$VDPAU_CACHE" ]; then
|
||||
mkdir -p "$VDPAU_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$VDPAU_CACHE" "$VDPAU_PATH"
|
||||
|
||||
if [ -f "$VDPAU_CACHE_FILE" ]; then
|
||||
local VDPAU_CACHE_KEY_FOUND=`tail -n 1 $VDPAU_CACHE_FILE`
|
||||
if [ "$VDPAU_CACHE_KEY" == "$VDPAU_CACHE_KEY_FOUND" ]; then
|
||||
VDPAU_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$VDPAU_CACHE_KEY_FOUND' does not match '$VDPAU_CACHE_KEY', rebuilding libvdpau"
|
||||
fi
|
||||
fi
|
||||
if [ "$VDPAU_CACHE_OUTDATED" == "1" ]; then
|
||||
buildVdpau
|
||||
sudo echo $VDPAU_CACHE_KEY > "$VDPAU_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached libvdpau"
|
||||
fi
|
||||
}
|
||||
|
||||
buildVdpau() {
|
||||
info_msg "Downloading and building libvdpau"
|
||||
|
||||
if [ -d "$EXTERNAL/libvdpau" ]; then
|
||||
rm -rf "$EXTERNAL/libvdpau"
|
||||
fi
|
||||
cd $VDPAU_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone git://anongit.freedesktop.org/vdpau/libvdpau
|
||||
|
||||
cd "$EXTERNAL/libvdpau"
|
||||
git checkout libvdpau-1.2
|
||||
./autogen.sh --prefix=$VDPAU_PATH --enable-static
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getFFmpeg() {
|
||||
travisStartFold "Getting ffmpeg"
|
||||
|
||||
local FFMPEG_CACHE="$CACHE/ffmpeg"
|
||||
local FFMPEG_CACHE_FILE="$FFMPEG_CACHE/.cache.txt"
|
||||
local FFMPEG_CACHE_KEY="${FFMPEG_CACHE_VERSION}"
|
||||
local FFMPEG_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$FFMPEG_CACHE" ]; then
|
||||
mkdir -p "$FFMPEG_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$FFMPEG_CACHE" "$FFMPEG_PATH"
|
||||
|
||||
if [ -f "$FFMPEG_CACHE_FILE" ]; then
|
||||
local FFMPEG_CACHE_KEY_FOUND=`tail -n 1 $FFMPEG_CACHE_FILE`
|
||||
if [ "$FFMPEG_CACHE_KEY" == "$FFMPEG_CACHE_KEY_FOUND" ]; then
|
||||
FFMPEG_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$FFMPEG_CACHE_KEY_FOUND' does not match '$FFMPEG_CACHE_KEY', rebuilding ffmpeg"
|
||||
fi
|
||||
fi
|
||||
if [ "$FFMPEG_CACHE_OUTDATED" == "1" ]; then
|
||||
buildFFmpeg
|
||||
sudo echo $FFMPEG_CACHE_KEY > "$FFMPEG_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached ffmpeg"
|
||||
fi
|
||||
}
|
||||
|
||||
buildFFmpeg() {
|
||||
info_msg "Downloading and building ffmpeg"
|
||||
|
||||
if [ -d "$EXTERNAL/ffmpeg" ]; then
|
||||
rm -rf "$EXTERNAL/ffmpeg"
|
||||
fi
|
||||
cd $FFMPEG_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://git.ffmpeg.org/ffmpeg.git
|
||||
|
||||
cd "$EXTERNAL/ffmpeg"
|
||||
git checkout release/3.4
|
||||
|
||||
./configure \
|
||||
--prefix=$FFMPEG_PATH \
|
||||
--disable-debug \
|
||||
--disable-programs \
|
||||
--disable-doc \
|
||||
--disable-everything \
|
||||
--enable-gpl \
|
||||
--enable-version3 \
|
||||
--enable-libopus \
|
||||
--enable-decoder=aac \
|
||||
--enable-decoder=aac_latm \
|
||||
--enable-decoder=aasc \
|
||||
--enable-decoder=flac \
|
||||
--enable-decoder=gif \
|
||||
--enable-decoder=h264 \
|
||||
--enable-decoder=h264_vdpau \
|
||||
--enable-decoder=mp1 \
|
||||
--enable-decoder=mp1float \
|
||||
--enable-decoder=mp2 \
|
||||
--enable-decoder=mp2float \
|
||||
--enable-decoder=mp3 \
|
||||
--enable-decoder=mp3adu \
|
||||
--enable-decoder=mp3adufloat \
|
||||
--enable-decoder=mp3float \
|
||||
--enable-decoder=mp3on4 \
|
||||
--enable-decoder=mp3on4float \
|
||||
--enable-decoder=mpeg4 \
|
||||
--enable-decoder=mpeg4_vdpau \
|
||||
--enable-decoder=msmpeg4v2 \
|
||||
--enable-decoder=msmpeg4v3 \
|
||||
--enable-decoder=opus \
|
||||
--enable-decoder=vorbis \
|
||||
--enable-decoder=wavpack \
|
||||
--enable-decoder=wmalossless \
|
||||
--enable-decoder=wmapro \
|
||||
--enable-decoder=wmav1 \
|
||||
--enable-decoder=wmav2 \
|
||||
--enable-decoder=wmavoice \
|
||||
--enable-encoder=libopus \
|
||||
--enable-hwaccel=h264_vaapi \
|
||||
--enable-hwaccel=h264_vdpau \
|
||||
--enable-hwaccel=mpeg4_vaapi \
|
||||
--enable-hwaccel=mpeg4_vdpau \
|
||||
--enable-parser=aac \
|
||||
--enable-parser=aac_latm \
|
||||
--enable-parser=flac \
|
||||
--enable-parser=h264 \
|
||||
--enable-parser=mpeg4video \
|
||||
--enable-parser=mpegaudio \
|
||||
--enable-parser=opus \
|
||||
--enable-parser=vorbis \
|
||||
--enable-demuxer=aac \
|
||||
--enable-demuxer=flac \
|
||||
--enable-demuxer=gif \
|
||||
--enable-demuxer=h264 \
|
||||
--enable-demuxer=mov \
|
||||
--enable-demuxer=mp3 \
|
||||
--enable-demuxer=ogg \
|
||||
--enable-demuxer=wav \
|
||||
--enable-muxer=ogg \
|
||||
--enable-muxer=opus
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getOpenAL() {
|
||||
travisStartFold "Getting openal-soft"
|
||||
|
||||
local OPENAL_CACHE="$CACHE/openal-soft"
|
||||
local OPENAL_CACHE_FILE="$OPENAL_CACHE/.cache.txt"
|
||||
local OPENAL_CACHE_KEY="${OPENAL_CACHE_VERSION}"
|
||||
local OPENAL_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$OPENAL_CACHE" ]; then
|
||||
mkdir -p "$OPENAL_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$OPENAL_CACHE" "$OPENAL_PATH"
|
||||
|
||||
if [ -f "$OPENAL_CACHE_FILE" ]; then
|
||||
local OPENAL_CACHE_KEY_FOUND=`tail -n 1 $OPENAL_CACHE_FILE`
|
||||
if [ "$OPENAL_CACHE_KEY" == "$OPENAL_CACHE_KEY_FOUND" ]; then
|
||||
OPENAL_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$OPENAL_CACHE_KEY_FOUND' does not match '$OPENAL_CACHE_KEY', rebuilding openal-soft"
|
||||
fi
|
||||
fi
|
||||
if [ "$OPENAL_CACHE_OUTDATED" == "1" ]; then
|
||||
buildOpenAL
|
||||
sudo echo $OPENAL_CACHE_KEY > "$OPENAL_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached openal-soft"
|
||||
fi
|
||||
}
|
||||
|
||||
buildOpenAL() {
|
||||
info_msg "Downloading and building openal-soft"
|
||||
|
||||
if [ -d "$EXTERNAL/openal-soft" ]; then
|
||||
rm -rf "$EXTERNAL/openal-soft"
|
||||
fi
|
||||
cd $OPENAL_PATH
|
||||
sudo rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://github.com/kcat/openal-soft.git
|
||||
cd openal-soft
|
||||
git checkout openal-soft-1.19.1
|
||||
|
||||
cd "$EXTERNAL/openal-soft/build"
|
||||
cmake \
|
||||
-D CMAKE_INSTALL_PREFIX=$OPENAL_PATH \
|
||||
-D CMAKE_BUILD_TYPE=Release \
|
||||
-D LIBTYPE=STATIC \
|
||||
-D ALSOFT_EXAMPLES=OFF \
|
||||
-D ALSOFT_TESTS=OFF \
|
||||
-D ALSOFT_UTILS=OFF \
|
||||
..
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getBreakpad() {
|
||||
travisStartFold "Getting breakpad"
|
||||
|
||||
local BREAKPAD_CACHE="$CACHE/breakpad"
|
||||
local BREAKPAD_CACHE_FILE="$BREAKPAD_CACHE/.cache.txt"
|
||||
local BREAKPAD_CACHE_KEY="${BREAKPAD_CACHE_VERSION}"
|
||||
local BREAKPAD_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$BREAKPAD_CACHE" ]; then
|
||||
mkdir -p "$BREAKPAD_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$BREAKPAD_CACHE" "$BREAKPAD_PATH"
|
||||
|
||||
if [ -f "$BREAKPAD_CACHE_FILE" ]; then
|
||||
local BREAKPAD_CACHE_KEY_FOUND=`tail -n 1 $BREAKPAD_CACHE_FILE`
|
||||
if [ "$BREAKPAD_CACHE_KEY" == "$BREAKPAD_CACHE_KEY_FOUND" ]; then
|
||||
BREAKPAD_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$BREAKPAD_CACHE_KEY_FOUND' does not match '$BREAKPAD_CACHE_KEY', rebuilding breakpad"
|
||||
fi
|
||||
fi
|
||||
if [ "$BREAKPAD_CACHE_OUTDATED" == "1" ]; then
|
||||
buildBreakpad
|
||||
sudo echo $BREAKPAD_CACHE_KEY > "$BREAKPAD_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached breakpad"
|
||||
fi
|
||||
}
|
||||
|
||||
buildBreakpad() {
|
||||
info_msg "Downloading and building breakpad"
|
||||
|
||||
if [ -d "$EXTERNAL/breakpad" ]; then
|
||||
rm -rf "$EXTERNAL/breakpad"
|
||||
fi
|
||||
cd $BREAKPAD_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://chromium.googlesource.com/breakpad/breakpad
|
||||
|
||||
cd "$EXTERNAL/breakpad/src/third_party"
|
||||
git clone https://chromium.googlesource.com/linux-syscall-support lss
|
||||
|
||||
cd "$EXTERNAL/breakpad"
|
||||
./configure --prefix=$BREAKPAD_PATH
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
}
|
||||
|
||||
getCustomQt() {
|
||||
travisStartFold "Getting patched Qt"
|
||||
|
||||
local QT_CACHE="$CACHE/qtPatched"
|
||||
local QT_CACHE_FILE="$QT_CACHE/.cache.txt"
|
||||
local QT_PATCH_CHECKSUM=`sha1sum $QT_PATCH`
|
||||
local QT_CACHE_KEY="${QT_VERSION}_${QT_CACHE_VERSION}_${QT_PATCH_CHECKSUM:0:32}"
|
||||
local QT_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$QT_CACHE" ]; then
|
||||
mkdir -p "$QT_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$QT_CACHE" "$QT_PATH"
|
||||
|
||||
if [ -f "$QT_CACHE_FILE" ]; then
|
||||
local QT_CACHE_KEY_FOUND=`tail -n 1 $QT_CACHE_FILE`
|
||||
if [ "$QT_CACHE_KEY" == "$QT_CACHE_KEY_FOUND" ]; then
|
||||
QT_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$QT_CACHE_KEY_FOUND' does not match '$QT_CACHE_KEY', rebuilding patched Qt"
|
||||
fi
|
||||
fi
|
||||
if [ "$QT_CACHE_OUTDATED" == "1" ]; then
|
||||
buildCustomQt
|
||||
sudo echo $QT_CACHE_KEY > "$QT_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached patched Qt"
|
||||
fi
|
||||
|
||||
export PATH="$QT_PATH/bin:$PATH"
|
||||
}
|
||||
|
||||
buildCustomQt() {
|
||||
QT_WAS_BUILT="1"
|
||||
info_msg "Downloading and building patched qt"
|
||||
|
||||
if [ -d "$EXTERNAL/qt_${QT_VERSION}" ]; then
|
||||
sudo rm -rf "$EXTERNAL/qt_${QT_VERSION}"
|
||||
fi
|
||||
cd $QT_PATH
|
||||
sudo rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone git://code.qt.io/qt/qt5.git qt${QT_VERSION}
|
||||
|
||||
cd "$EXTERNAL/qt${QT_VERSION}"
|
||||
perl init-repository --branch --module-subset=qtbase,qtimageformats
|
||||
git checkout v${QT_VERSION}
|
||||
git submodule update qtbase
|
||||
git submodule update qtimageformats
|
||||
|
||||
cd "$EXTERNAL/qt${QT_VERSION}/qtbase"
|
||||
git apply "$QT_PATCH"
|
||||
cd ..
|
||||
|
||||
cd "$EXTERNAL/qt${QT_VERSION}/qtbase/src/plugins/platforminputcontexts"
|
||||
git clone https://github.com/telegramdesktop/fcitx.git
|
||||
git clone https://github.com/telegramdesktop/hime.git
|
||||
git clone https://github.com/telegramdesktop/nimf.git
|
||||
cd ../../../..
|
||||
|
||||
./configure -prefix $QT_PATH -release -opensource -confirm-license -qt-zlib \
|
||||
-qt-libpng -qt-libjpeg -qt-harfbuzz -qt-pcre -qt-xcb \
|
||||
-system-freetype -fontconfig -no-opengl -no-gtk -static \
|
||||
-nomake examples -nomake tests -no-mirclient \
|
||||
-dbus-runtime -no-mtdev # <- Not sure about these
|
||||
make $MAKE_ARGS
|
||||
sudo make install
|
||||
}
|
||||
|
||||
getGSL() {
|
||||
cd "$UPSTREAM"
|
||||
git submodule init
|
||||
git submodule update
|
||||
}
|
||||
|
||||
getGYP() {
|
||||
travisStartFold "Getting patched GYP"
|
||||
|
||||
local GYP_CACHE="$CACHE/gyp"
|
||||
local GYP_CACHE_FILE="$GYP_CACHE/.cache.txt"
|
||||
local GYP_PATCH_CHECKSUM=`sha1sum $GYP_PATCH`
|
||||
local GYP_CACHE_KEY="${GYP_CACHE_VERSION}_${GYP_PATCH_CHECKSUM:0:32}"
|
||||
local GYP_CACHE_OUTDATED="1"
|
||||
|
||||
if [ ! -d "$GYP_CACHE" ]; then
|
||||
mkdir -p "$GYP_CACHE"
|
||||
fi
|
||||
|
||||
ln -sf "$GYP_CACHE" "$GYP_PATH"
|
||||
|
||||
if [ -f "$GYP_CACHE_FILE" ]; then
|
||||
local GYP_CACHE_KEY_FOUND=`tail -n 1 $GYP_CACHE_FILE`
|
||||
if [ "$GYP_CACHE_KEY" == "$GYP_CACHE_KEY_FOUND" ]; then
|
||||
GYP_CACHE_OUTDATED="0"
|
||||
else
|
||||
info_msg "Cache key '$GYP_CACHE_KEY_FOUND' does not match '$GYP_CACHE_KEY', rebuilding patched GYP"
|
||||
fi
|
||||
fi
|
||||
if [ "$GYP_CACHE_OUTDATED" == "1" ]; then
|
||||
buildGYP
|
||||
sudo echo $GYP_CACHE_KEY > "$GYP_CACHE_FILE"
|
||||
else
|
||||
info_msg "Using cached patched GYP"
|
||||
fi
|
||||
}
|
||||
|
||||
buildGYP() {
|
||||
info_msg "Downloading and building patched GYP"
|
||||
|
||||
if [ -d "$EXTERNAL/gyp" ]; then
|
||||
rm -rf "$EXTERNAL/gyp"
|
||||
fi
|
||||
cd $GYP_PATH
|
||||
rm -rf *
|
||||
|
||||
cd "$EXTERNAL"
|
||||
git clone https://chromium.googlesource.com/external/gyp
|
||||
|
||||
cd "$EXTERNAL/gyp"
|
||||
git checkout 9f2a7bb1
|
||||
git apply "$GYP_PATCH"
|
||||
cp -r * "$GYP_PATH/"
|
||||
}
|
||||
|
||||
buildTelegram() {
|
||||
travisStartFold "Build tdesktop"
|
||||
|
||||
cd "$UPSTREAM/Telegram/gyp"
|
||||
"$GYP_PATH/gyp" \
|
||||
-Dapi_id=17349 \
|
||||
-Dapi_hash=344583e45741c457fe1862106095a5eb \
|
||||
-Dspecial_build_target= \
|
||||
-Dbuild_defines=${GYP_DEFINES:1} \
|
||||
-Dlinux_path_xkbcommon=$XKB_PATH \
|
||||
-Dlinux_path_va=$VA_PATH \
|
||||
-Dlinux_path_vdpau=$VDPAU_PATH \
|
||||
-Dlinux_path_ffmpeg=$FFMPEG_PATH \
|
||||
-Dlinux_path_openal=$OPENAL_PATH \
|
||||
-Dlinux_path_range=$RANGE_PATH \
|
||||
-Dlinux_path_qt=$QT_PATH \
|
||||
-Dlinux_path_breakpad=$BREAKPAD_PATH \
|
||||
-Dlinux_path_libexif_lib=/usr/local/lib \
|
||||
-Dlinux_lib_ssl=-lssl \
|
||||
-Dlinux_lib_crypto=-lcrypto \
|
||||
-Dlinux_lib_icu=-licuuc\ -licutu\ -licui18n \
|
||||
--depth=. --generator-output=.. --format=cmake -Goutput_dir=../out \
|
||||
Telegram.gyp
|
||||
cd "$UPSTREAM/out/Debug"
|
||||
|
||||
export ASM="gcc"
|
||||
cmake .
|
||||
make $MAKE_ARGS
|
||||
}
|
||||
|
||||
check() {
|
||||
local filePath="$UPSTREAM/out/Debug/Telegram"
|
||||
if test -f "$filePath"; then
|
||||
success_msg "Build successfully done! :)"
|
||||
|
||||
local size;
|
||||
size=$(stat -c %s "$filePath")
|
||||
success_msg "File size of ${filePath}: ${size} Bytes"
|
||||
else
|
||||
error_msg "Build error, output file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
source ./.travis/common.sh
|
||||
|
||||
run
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# set colors
|
||||
RCol='\e[0m' # Text Reset
|
||||
|
||||
# Regular Bold Underline High Intensity BoldHigh Intens Background High Intensity Backgrounds
|
||||
Bla='\e[0;30m'; BBla='\e[1;30m'; UBla='\e[4;30m'; IBla='\e[0;90m'; BIBla='\e[1;90m'; On_Bla='\e[40m'; On_IBla='\e[0;100m';
|
||||
Red='\e[0;31m'; BRed='\e[1;31m'; URed='\e[4;31m'; IRed='\e[0;91m'; BIRed='\e[1;91m'; On_Red='\e[41m'; On_IRed='\e[0;101m';
|
||||
Gre='\e[0;32m'; BGre='\e[1;32m'; UGre='\e[4;32m'; IGre='\e[0;92m'; BIGre='\e[1;92m'; On_Gre='\e[42m'; On_IGre='\e[0;102m';
|
||||
Yel='\e[0;33m'; BYel='\e[1;33m'; UYel='\e[4;33m'; IYel='\e[0;93m'; BIYel='\e[1;93m'; On_Yel='\e[43m'; On_IYel='\e[0;103m';
|
||||
Blu='\e[0;34m'; BBlu='\e[1;34m'; UBlu='\e[4;34m'; IBlu='\e[0;94m'; BIBlu='\e[1;94m'; On_Blu='\e[44m'; On_IBlu='\e[0;104m';
|
||||
Pur='\e[0;35m'; BPur='\e[1;35m'; UPur='\e[4;35m'; IPur='\e[0;95m'; BIPur='\e[1;95m'; On_Pur='\e[45m'; On_IPur='\e[0;105m';
|
||||
Cya='\e[0;36m'; BCya='\e[1;36m'; UCya='\e[4;36m'; ICya='\e[0;96m'; BICya='\e[1;96m'; On_Cya='\e[46m'; On_ICya='\e[0;106m';
|
||||
Whi='\e[0;37m'; BWhi='\e[1;37m'; UWhi='\e[4;37m'; IWhi='\e[0;97m'; BIWhi='\e[1;97m'; On_Whi='\e[47m'; On_IWhi='\e[0;107m';
|
||||
|
||||
start_msg() {
|
||||
echo -e "\n${Gre}$*${RCol}"
|
||||
}
|
||||
|
||||
info_msg() {
|
||||
sameLineInfoMessage "\n$1"
|
||||
}
|
||||
|
||||
error_msg() {
|
||||
echo -e "\n${BRed}$*${RCol}"
|
||||
}
|
||||
|
||||
success_msg() {
|
||||
echo -e "\n${BGre}$*${RCol}"
|
||||
}
|
||||
|
||||
sameLineInfoMessage() {
|
||||
echo -e "${Cya}$*${RCol}"
|
||||
}
|
||||
|
||||
TRAVIS_LAST_FOLD=""
|
||||
|
||||
travisStartFold() {
|
||||
local TITLE="$1"
|
||||
local NAME=$(sanitizeName "$TITLE")
|
||||
|
||||
if [ "$TRAVIS_LAST_FOLD" != "" ]; then
|
||||
travisEndFold
|
||||
fi
|
||||
|
||||
echo "travis_fold:start:$NAME"
|
||||
sameLineInfoMessage "$TITLE"
|
||||
|
||||
TRAVIS_LAST_FOLD="$NAME"
|
||||
}
|
||||
|
||||
travisEndFold() {
|
||||
if [ "$TRAVIS_LAST_FOLD" == "" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo "travis_fold:end:$TRAVIS_LAST_FOLD"
|
||||
TRAVIS_LAST_FOLD=""
|
||||
}
|
||||
|
||||
sanitizeName() {
|
||||
local NAME="${1// /_}"
|
||||
local NAME="${NAME,,}"
|
||||
echo "$NAME"
|
||||
}
|
||||
@@ -22,6 +22,9 @@ project(Telegram
|
||||
)
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Telegram)
|
||||
|
||||
get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
|
||||
get_filename_component(submodules_loc "Telegram" REALPATH)
|
||||
|
||||
include(cmake/variables.cmake)
|
||||
include(cmake/nice_target_sources.cmake)
|
||||
include(cmake/target_link_static_libraries.cmake)
|
||||
|
||||
@@ -5,8 +5,7 @@ This is the complete source code and the build instructions for the alpha versio
|
||||
[](https://github.com/telegramdesktop/tdesktop/releases)
|
||||
[](https://github.com/telegramdesktop/tdesktop/actions)
|
||||
[](https://github.com/telegramdesktop/tdesktop/actions)
|
||||
[](https://travis-ci.org/telegramdesktop/tdesktop)
|
||||
[](https://ci.appveyor.com/project/telegramdesktop/tdesktop)
|
||||
[](https://github.com/telegramdesktop/tdesktop/actions)
|
||||
|
||||
[![Preview of Telegram Desktop][preview_image]][preview_image_url]
|
||||
|
||||
@@ -45,12 +44,13 @@ The source code is published under GPLv3 with OpenSSL exception, the license is
|
||||
* xxHash ([BSD License](https://github.com/Cyan4973/xxHash/blob/dev/LICENSE))
|
||||
* QR Code generator ([MIT License](https://github.com/nayuki/QR-Code-generator#license))
|
||||
* CMake ([New BSD License](https://github.com/Kitware/CMake/blob/master/Copyright.txt))
|
||||
* Hunspell ([GPL](https://github.com/hunspell/hunspell/blob/master/COPYING))
|
||||
|
||||
## Build instructions
|
||||
|
||||
* [Visual Studio 2019][msvc]
|
||||
* [Xcode 10][xcode]
|
||||
* [GYP/CMake on GNU/Linux][cmake]
|
||||
* [Xcode 11][xcode]
|
||||
* [CMake on GNU/Linux][cmake]
|
||||
|
||||
[//]: # (LINKS)
|
||||
[telegram]: https://telegram.org
|
||||
|
||||
@@ -20,6 +20,7 @@ add_subdirectory(lib_lottie)
|
||||
add_subdirectory(lib_qr)
|
||||
add_subdirectory(codegen)
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
include(lib_ui/cmake/generate_styles.cmake)
|
||||
include(cmake/generate_lang.cmake)
|
||||
include(cmake/generate_numbers.cmake)
|
||||
@@ -37,18 +38,19 @@ include(cmake/lib_tgvoip.cmake)
|
||||
set(style_files
|
||||
boxes/boxes.style
|
||||
calls/calls.style
|
||||
chat_helpers/chat_helpers.style
|
||||
dialogs/dialogs.style
|
||||
export/view/export.style
|
||||
history/history.style
|
||||
info/info.style
|
||||
intro/intro.style
|
||||
media/view/mediaview.style
|
||||
media/view/media_view.style
|
||||
media/player/media_player.style
|
||||
overview/overview.style
|
||||
passport/passport.style
|
||||
profile/profile.style
|
||||
settings/settings.style
|
||||
chat_helpers/chat_helpers.style
|
||||
ui/filter_icons.style
|
||||
window/window.style
|
||||
)
|
||||
|
||||
@@ -65,17 +67,18 @@ generate_numbers(Telegram ${res_loc}/numbers.txt)
|
||||
|
||||
set_target_properties(Telegram PROPERTIES AUTOMOC ON AUTORCC ON)
|
||||
|
||||
if (DESKTOP_APP_USE_PACKAGED)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package(Threads)
|
||||
|
||||
if (LINUX AND NOT DESKTOP_APP_DISABLE_DBUS_INTEGRATION)
|
||||
target_link_libraries(Telegram
|
||||
PRIVATE
|
||||
${CMAKE_DL_LIBS}
|
||||
Threads::Threads
|
||||
desktop-app::external_statusnotifieritem
|
||||
desktop-app::external_dbusmenu_qt
|
||||
)
|
||||
endif()
|
||||
|
||||
if (add_hunspell_library)
|
||||
target_link_libraries(Telegram PRIVATE desktop-app::external_hunspell)
|
||||
endif()
|
||||
|
||||
target_link_libraries(Telegram
|
||||
PRIVATE
|
||||
tdesktop::lib_mtproto
|
||||
@@ -92,6 +95,7 @@ PRIVATE
|
||||
desktop-app::external_lz4
|
||||
desktop-app::external_rlottie
|
||||
desktop-app::external_zlib
|
||||
desktop-app::external_minizip
|
||||
desktop-app::external_qt
|
||||
desktop-app::external_qr_code_generator
|
||||
desktop-app::external_crash_reports
|
||||
@@ -105,11 +109,34 @@ if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
target_link_libraries(Telegram PRIVATE desktop-app::external_opus)
|
||||
endif()
|
||||
|
||||
# Telegram uses long atomic types, so on some architectures libatomic is needed.
|
||||
check_cxx_source_compiles("
|
||||
#include <atomic>
|
||||
std::atomic_int64_t foo;
|
||||
int main() {return foo;}
|
||||
" HAVE_LONG_ATOMIC_WITHOUT_LIB)
|
||||
if (NOT HAVE_LONG_ATOMIC_WITHOUT_LIB)
|
||||
target_link_libraries(Telegram PRIVATE atomic)
|
||||
endif()
|
||||
|
||||
if (DESKTOP_APP_USE_PACKAGED)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package(Threads)
|
||||
|
||||
target_link_libraries(Telegram
|
||||
PRIVATE
|
||||
${CMAKE_DL_LIBS}
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h)
|
||||
nice_target_sources(Telegram ${src_loc}
|
||||
PRIVATE
|
||||
${style_files}
|
||||
|
||||
api/api_chat_filters.cpp
|
||||
api/api_chat_filters.h
|
||||
api/api_common.h
|
||||
api/api_hash.h
|
||||
api/api_self_destruct.cpp
|
||||
@@ -122,6 +149,10 @@ PRIVATE
|
||||
api/api_single_message_search.h
|
||||
api/api_text_entities.cpp
|
||||
api/api_text_entities.h
|
||||
boxes/filters/edit_filter_box.cpp
|
||||
boxes/filters/edit_filter_box.h
|
||||
boxes/filters/edit_filter_chats_list.cpp
|
||||
boxes/filters/edit_filter_chats_list.h
|
||||
boxes/peers/add_participants_box.cpp
|
||||
boxes/peers/add_participants_box.h
|
||||
boxes/peers/edit_contact_box.cpp
|
||||
@@ -166,6 +197,8 @@ PRIVATE
|
||||
boxes/connection_box.h
|
||||
boxes/create_poll_box.cpp
|
||||
boxes/create_poll_box.h
|
||||
boxes/dictionaries_manager.cpp
|
||||
boxes/dictionaries_manager.h
|
||||
boxes/download_path_box.cpp
|
||||
boxes/download_path_box.h
|
||||
boxes/edit_caption_box.cpp
|
||||
@@ -238,10 +271,14 @@ PRIVATE
|
||||
chat_helpers/gifs_list_widget.h
|
||||
chat_helpers/message_field.cpp
|
||||
chat_helpers/message_field.h
|
||||
chat_helpers/spellchecker_common.cpp
|
||||
chat_helpers/spellchecker_common.h
|
||||
chat_helpers/stickers.cpp
|
||||
chat_helpers/stickers.h
|
||||
chat_helpers/stickers_emoji_pack.cpp
|
||||
chat_helpers/stickers_emoji_pack.h
|
||||
chat_helpers/stickers_dice_pack.cpp
|
||||
chat_helpers/stickers_dice_pack.h
|
||||
chat_helpers/stickers_list_widget.cpp
|
||||
chat_helpers/stickers_list_widget.h
|
||||
chat_helpers/tabbed_panel.cpp
|
||||
@@ -292,6 +329,8 @@ PRIVATE
|
||||
data/data_auto_download.h
|
||||
data/data_chat.cpp
|
||||
data/data_chat.h
|
||||
data/data_chat_filters.cpp
|
||||
data/data_chat_filters.h
|
||||
data/data_channel.cpp
|
||||
data/data_channel.h
|
||||
data/data_channel_admins.cpp
|
||||
@@ -316,8 +355,12 @@ PRIVATE
|
||||
data/data_game.h
|
||||
data/data_groups.cpp
|
||||
data/data_groups.h
|
||||
data/data_histories.cpp
|
||||
data/data_histories.h
|
||||
data/data_location.cpp
|
||||
data/data_location.h
|
||||
data/data_media_rotation.cpp
|
||||
data/data_media_rotation.h
|
||||
data/data_media_types.cpp
|
||||
data/data_media_types.h
|
||||
data/data_messages.cpp
|
||||
@@ -402,6 +445,8 @@ PRIVATE
|
||||
history/view/media/history_view_call.cpp
|
||||
history/view/media/history_view_contact.h
|
||||
history/view/media/history_view_contact.cpp
|
||||
history/view/media/history_view_dice.h
|
||||
history/view/media/history_view_dice.cpp
|
||||
history/view/media/history_view_document.h
|
||||
history/view/media/history_view_document.cpp
|
||||
history/view/media/history_view_file.h
|
||||
@@ -518,6 +563,10 @@ PRIVATE
|
||||
info/media/info_media_widget.h
|
||||
info/members/info_members_widget.cpp
|
||||
info/members/info_members_widget.h
|
||||
info/polls/info_polls_results_inner_widget.cpp
|
||||
info/polls/info_polls_results_inner_widget.h
|
||||
info/polls/info_polls_results_widget.cpp
|
||||
info/polls/info_polls_results_widget.h
|
||||
info/profile/info_profile_actions.cpp
|
||||
info/profile/info_profile_actions.h
|
||||
info/profile/info_profile_cover.cpp
|
||||
@@ -649,14 +698,16 @@ PRIVATE
|
||||
media/streaming/media_streaming_utility.h
|
||||
media/streaming/media_streaming_video_track.cpp
|
||||
media/streaming/media_streaming_video_track.h
|
||||
media/view/media_view_playback_controls.cpp
|
||||
media/view/media_view_playback_controls.h
|
||||
media/view/media_view_playback_progress.cpp
|
||||
media/view/media_view_playback_progress.h
|
||||
media/view/media_view_group_thumbs.cpp
|
||||
media/view/media_view_group_thumbs.h
|
||||
media/view/media_view_overlay_widget.cpp
|
||||
media/view/media_view_overlay_widget.h
|
||||
media/view/media_view_pip.cpp
|
||||
media/view/media_view_pip.h
|
||||
media/view/media_view_playback_controls.cpp
|
||||
media/view/media_view_playback_controls.h
|
||||
media/view/media_view_playback_progress.cpp
|
||||
media/view/media_view_playback_progress.h
|
||||
mtproto/config_loader.cpp
|
||||
mtproto/config_loader.h
|
||||
mtproto/connection_abstract.cpp
|
||||
@@ -789,6 +840,8 @@ PRIVATE
|
||||
settings/settings_codes.h
|
||||
settings/settings_common.cpp
|
||||
settings/settings_common.h
|
||||
settings/settings_folders.cpp
|
||||
settings/settings_folders.h
|
||||
settings/settings_information.cpp
|
||||
settings/settings_information.h
|
||||
settings/settings_intro.cpp
|
||||
@@ -819,6 +872,8 @@ PRIVATE
|
||||
storage/serialize_common.h
|
||||
storage/serialize_document.cpp
|
||||
storage/serialize_document.h
|
||||
storage/storage_cloud_blob.cpp
|
||||
storage/storage_cloud_blob.h
|
||||
storage/storage_facade.cpp
|
||||
storage/storage_facade.h
|
||||
# storage/storage_feed_messages.cpp
|
||||
@@ -841,6 +896,8 @@ PRIVATE
|
||||
support/support_helper.h
|
||||
support/support_templates.cpp
|
||||
support/support_templates.h
|
||||
ui/effects/fireworks_animation.cpp
|
||||
ui/effects/fireworks_animation.h
|
||||
ui/effects/round_checkbox.cpp
|
||||
ui/effects/round_checkbox.h
|
||||
ui/effects/send_action_animations.cpp
|
||||
@@ -865,6 +922,10 @@ PRIVATE
|
||||
ui/countryinput.h
|
||||
ui/empty_userpic.cpp
|
||||
ui/empty_userpic.h
|
||||
ui/filter_icons.cpp
|
||||
ui/filter_icons.h
|
||||
ui/filter_icon_panel.cpp
|
||||
ui/filter_icon_panel.h
|
||||
ui/grouped_layout.cpp
|
||||
ui/grouped_layout.h
|
||||
ui/resize_area.h
|
||||
@@ -893,6 +954,8 @@ PRIVATE
|
||||
window/window_connecting_widget.h
|
||||
window/window_controller.cpp
|
||||
window/window_controller.h
|
||||
window/window_filters_menu.cpp
|
||||
window/window_filters_menu.h
|
||||
window/window_history_hider.cpp
|
||||
window/window_history_hider.h
|
||||
window/window_lock_widgets.cpp
|
||||
@@ -1042,35 +1105,13 @@ elseif (LINUX)
|
||||
find_library(X11_LIBRARY X11)
|
||||
target_link_libraries(Telegram PRIVATE ${X11_LIBRARY})
|
||||
endif()
|
||||
|
||||
set(appindicator_packages
|
||||
ayatana-appindicator3-0.1
|
||||
ayatana-appindicator-0.1
|
||||
appindicator3-0.1
|
||||
appindicator-0.1
|
||||
)
|
||||
set(appindicator_found 0)
|
||||
foreach (package ${appindicator_packages})
|
||||
pkg_check_modules(APPIND_${package} ${package})
|
||||
if (APPIND_${package}_FOUND)
|
||||
set(appindicator_found 1)
|
||||
target_include_directories(Telegram PRIVATE "${APPIND_${package}_INCLUDE_DIRS}")
|
||||
if (${package} MATCHES "ayatana")
|
||||
target_compile_definitions(Telegram PRIVATE TDESKTOP_USE_AYATANA_INDICATORS)
|
||||
endif()
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT ${appindicator_found})
|
||||
message(FATAL_ERROR "No libappindicator found by pkg-config.")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (build_macstore)
|
||||
set(bundle_identifier "org.telegram.desktop")
|
||||
set(bundle_entitlements "Telegram Desktop.entitlements")
|
||||
set(output_name "Telegram Desktop")
|
||||
set(bundle_entitlements "Telegram Lite.entitlements")
|
||||
set(output_name "Telegram Lite")
|
||||
set_target_properties(Telegram PROPERTIES
|
||||
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${libs_loc}/breakpad/src/client/mac/build/Release
|
||||
)
|
||||
@@ -1088,7 +1129,11 @@ elseif (build_osx)
|
||||
else()
|
||||
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:Debug>")
|
||||
set(bundle_entitlements "Telegram.entitlements")
|
||||
set(output_name "Telegram")
|
||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
set(output_name "telegram-desktop")
|
||||
else()
|
||||
set(output_name "Telegram")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties(Telegram PROPERTIES
|
||||
@@ -1110,7 +1155,7 @@ set_target_properties(Telegram PROPERTIES
|
||||
)
|
||||
set(entitlement_sources
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Telegram.entitlements"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Telegram Desktop.entitlements"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Telegram Lite.entitlements"
|
||||
)
|
||||
target_sources(Telegram PRIVATE ${entitlement_sources})
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/Telegram PREFIX Resources FILES ${entitlement_sources})
|
||||
@@ -1159,7 +1204,7 @@ if ((NOT disable_autoupdate OR NOT LINUX) AND NOT build_macstore AND NOT build_w
|
||||
set_target_properties(Updater PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
|
||||
|
||||
if (LINUX)
|
||||
target_link_options(Updater INTERFACE -static-libstdc++)
|
||||
target_link_options(Updater PRIVATE -static-libstdc++)
|
||||
endif()
|
||||
|
||||
if (DESKTOP_APP_SPECIAL_TARGET)
|
||||
@@ -1185,3 +1230,18 @@ if ((NOT disable_autoupdate OR NOT LINUX) AND NOT build_macstore AND NOT build_w
|
||||
set_target_properties(Packer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
include(GNUInstallDirs)
|
||||
configure_file("../lib/xdg/telegramdesktop.appdata.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.appdata.xml" @ONLY)
|
||||
install(TARGETS Telegram RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "telegram.png")
|
||||
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "telegram.png")
|
||||
install(FILES "../lib/xdg/telegramdesktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.desktop")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.appdata.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml")
|
||||
endif()
|
||||
|
||||
225
Telegram/Patches/ffmpeg.diff
Normal file
@@ -0,0 +1,225 @@
|
||||
diff --git a/libavcodec/aarch64/Makefile b/libavcodec/aarch64/Makefile
|
||||
index 00f93bf59f..52da7036f3 100644
|
||||
--- a/libavcodec/aarch64/Makefile
|
||||
+++ b/libavcodec/aarch64/Makefile
|
||||
@@ -6,6 +6,7 @@ OBJS-$(CONFIG_H264DSP) += aarch64/h264dsp_init_aarch64.o
|
||||
OBJS-$(CONFIG_H264PRED) += aarch64/h264pred_init.o
|
||||
OBJS-$(CONFIG_H264QPEL) += aarch64/h264qpel_init_aarch64.o
|
||||
OBJS-$(CONFIG_HPELDSP) += aarch64/hpeldsp_init_aarch64.o
|
||||
+OBJS-$(CONFIG_IDCTDSP) += aarch64/idctdsp_init_aarch64.o
|
||||
OBJS-$(CONFIG_MPEGAUDIODSP) += aarch64/mpegaudiodsp_init.o
|
||||
OBJS-$(CONFIG_NEON_CLOBBER_TEST) += aarch64/neontest.o
|
||||
OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp_init.o
|
||||
@@ -21,6 +22,7 @@ OBJS-$(CONFIG_VC1DSP) += aarch64/vc1dsp_init_aarch64.o
|
||||
OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_init.o
|
||||
OBJS-$(CONFIG_VP9_DECODER) += aarch64/vp9dsp_init_10bpp_aarch64.o \
|
||||
aarch64/vp9dsp_init_12bpp_aarch64.o \
|
||||
+ aarch64/vp9mc_aarch64.o \
|
||||
aarch64/vp9dsp_init_aarch64.o
|
||||
|
||||
# ARMv8 optimizations
|
||||
@@ -41,8 +43,7 @@ NEON-OBJS-$(CONFIG_H264PRED) += aarch64/h264pred_neon.o
|
||||
NEON-OBJS-$(CONFIG_H264QPEL) += aarch64/h264qpel_neon.o \
|
||||
aarch64/hpeldsp_neon.o
|
||||
NEON-OBJS-$(CONFIG_HPELDSP) += aarch64/hpeldsp_neon.o
|
||||
-NEON-OBJS-$(CONFIG_IDCTDSP) += aarch64/idctdsp_init_aarch64.o \
|
||||
- aarch64/simple_idct_neon.o
|
||||
+NEON-OBJS-$(CONFIG_IDCTDSP) += aarch64/simple_idct_neon.o
|
||||
NEON-OBJS-$(CONFIG_MDCT) += aarch64/mdct_neon.o
|
||||
NEON-OBJS-$(CONFIG_MPEGAUDIODSP) += aarch64/mpegaudiodsp_neon.o
|
||||
NEON-OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_neon.o
|
||||
diff --git a/libavcodec/aarch64/idctdsp_init_aarch64.c b/libavcodec/aarch64/idctdsp_init_aarch64.c
|
||||
index 0406e60830..742a3372e3 100644
|
||||
--- a/libavcodec/aarch64/idctdsp_init_aarch64.c
|
||||
+++ b/libavcodec/aarch64/idctdsp_init_aarch64.c
|
||||
@@ -21,6 +21,8 @@
|
||||
*/
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
+#include "libavutil/cpu.h"
|
||||
+#include "libavutil/arm/cpu.h"
|
||||
#include "libavcodec/avcodec.h"
|
||||
#include "libavcodec/idctdsp.h"
|
||||
#include "idct.h"
|
||||
@@ -28,7 +30,9 @@
|
||||
av_cold void ff_idctdsp_init_aarch64(IDCTDSPContext *c, AVCodecContext *avctx,
|
||||
unsigned high_bit_depth)
|
||||
{
|
||||
- if (!avctx->lowres && !high_bit_depth) {
|
||||
+ int cpu_flags = av_get_cpu_flags();
|
||||
+
|
||||
+ if (have_neon(cpu_flags) && !avctx->lowres && !high_bit_depth) {
|
||||
if (avctx->idct_algo == FF_IDCT_AUTO ||
|
||||
avctx->idct_algo == FF_IDCT_SIMPLEAUTO ||
|
||||
avctx->idct_algo == FF_IDCT_SIMPLENEON) {
|
||||
diff --git a/libavcodec/aarch64/vp9mc_16bpp_neon.S b/libavcodec/aarch64/vp9mc_16bpp_neon.S
|
||||
index cac6428709..53b372c262 100644
|
||||
--- a/libavcodec/aarch64/vp9mc_16bpp_neon.S
|
||||
+++ b/libavcodec/aarch64/vp9mc_16bpp_neon.S
|
||||
@@ -25,31 +25,6 @@
|
||||
// const uint8_t *ref, ptrdiff_t ref_stride,
|
||||
// int h, int mx, int my);
|
||||
|
||||
-function ff_vp9_copy128_aarch64, export=1
|
||||
-1:
|
||||
- ldp x5, x6, [x2]
|
||||
- ldp x7, x8, [x2, #16]
|
||||
- stp x5, x6, [x0]
|
||||
- ldp x9, x10, [x2, #32]
|
||||
- stp x7, x8, [x0, #16]
|
||||
- subs w4, w4, #1
|
||||
- ldp x11, x12, [x2, #48]
|
||||
- stp x9, x10, [x0, #32]
|
||||
- stp x11, x12, [x0, #48]
|
||||
- ldp x5, x6, [x2, #64]
|
||||
- ldp x7, x8, [x2, #80]
|
||||
- stp x5, x6, [x0, #64]
|
||||
- ldp x9, x10, [x2, #96]
|
||||
- stp x7, x8, [x0, #80]
|
||||
- ldp x11, x12, [x2, #112]
|
||||
- stp x9, x10, [x0, #96]
|
||||
- stp x11, x12, [x0, #112]
|
||||
- add x2, x2, x3
|
||||
- add x0, x0, x1
|
||||
- b.ne 1b
|
||||
- ret
|
||||
-endfunc
|
||||
-
|
||||
function ff_vp9_avg64_16_neon, export=1
|
||||
mov x5, x0
|
||||
sub x1, x1, #64
|
||||
diff --git a/libavcodec/aarch64/vp9mc_aarch64.S b/libavcodec/aarch64/vp9mc_aarch64.S
|
||||
new file mode 100644
|
||||
index 0000000000..f17a8cf04a
|
||||
--- /dev/null
|
||||
+++ b/libavcodec/aarch64/vp9mc_aarch64.S
|
||||
@@ -0,0 +1,81 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2016 Google Inc.
|
||||
+ *
|
||||
+ * This file is part of FFmpeg.
|
||||
+ *
|
||||
+ * FFmpeg is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * FFmpeg is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with FFmpeg; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
+ */
|
||||
+
|
||||
+#include "libavutil/aarch64/asm.S"
|
||||
+
|
||||
+// All public functions in this file have the following signature:
|
||||
+// typedef void (*vp9_mc_func)(uint8_t *dst, ptrdiff_t dst_stride,
|
||||
+// const uint8_t *ref, ptrdiff_t ref_stride,
|
||||
+// int h, int mx, int my);
|
||||
+
|
||||
+function ff_vp9_copy128_aarch64, export=1
|
||||
+1:
|
||||
+ ldp x5, x6, [x2]
|
||||
+ ldp x7, x8, [x2, #16]
|
||||
+ stp x5, x6, [x0]
|
||||
+ ldp x9, x10, [x2, #32]
|
||||
+ stp x7, x8, [x0, #16]
|
||||
+ subs w4, w4, #1
|
||||
+ ldp x11, x12, [x2, #48]
|
||||
+ stp x9, x10, [x0, #32]
|
||||
+ stp x11, x12, [x0, #48]
|
||||
+ ldp x5, x6, [x2, #64]
|
||||
+ ldp x7, x8, [x2, #80]
|
||||
+ stp x5, x6, [x0, #64]
|
||||
+ ldp x9, x10, [x2, #96]
|
||||
+ stp x7, x8, [x0, #80]
|
||||
+ ldp x11, x12, [x2, #112]
|
||||
+ stp x9, x10, [x0, #96]
|
||||
+ stp x11, x12, [x0, #112]
|
||||
+ add x2, x2, x3
|
||||
+ add x0, x0, x1
|
||||
+ b.ne 1b
|
||||
+ ret
|
||||
+endfunc
|
||||
+
|
||||
+function ff_vp9_copy64_aarch64, export=1
|
||||
+1:
|
||||
+ ldp x5, x6, [x2]
|
||||
+ ldp x7, x8, [x2, #16]
|
||||
+ stp x5, x6, [x0]
|
||||
+ ldp x9, x10, [x2, #32]
|
||||
+ stp x7, x8, [x0, #16]
|
||||
+ subs w4, w4, #1
|
||||
+ ldp x11, x12, [x2, #48]
|
||||
+ stp x9, x10, [x0, #32]
|
||||
+ stp x11, x12, [x0, #48]
|
||||
+ add x2, x2, x3
|
||||
+ add x0, x0, x1
|
||||
+ b.ne 1b
|
||||
+ ret
|
||||
+endfunc
|
||||
+
|
||||
+function ff_vp9_copy32_aarch64, export=1
|
||||
+1:
|
||||
+ ldp x5, x6, [x2]
|
||||
+ ldp x7, x8, [x2, #16]
|
||||
+ stp x5, x6, [x0]
|
||||
+ subs w4, w4, #1
|
||||
+ stp x7, x8, [x0, #16]
|
||||
+ add x2, x2, x3
|
||||
+ add x0, x0, x1
|
||||
+ b.ne 1b
|
||||
+ ret
|
||||
+endfunc
|
||||
diff --git a/libavcodec/aarch64/vp9mc_neon.S b/libavcodec/aarch64/vp9mc_neon.S
|
||||
index f67624ca04..abf2bae9db 100644
|
||||
--- a/libavcodec/aarch64/vp9mc_neon.S
|
||||
+++ b/libavcodec/aarch64/vp9mc_neon.S
|
||||
@@ -25,23 +25,6 @@
|
||||
// const uint8_t *ref, ptrdiff_t ref_stride,
|
||||
// int h, int mx, int my);
|
||||
|
||||
-function ff_vp9_copy64_aarch64, export=1
|
||||
-1:
|
||||
- ldp x5, x6, [x2]
|
||||
- ldp x7, x8, [x2, #16]
|
||||
- stp x5, x6, [x0]
|
||||
- ldp x9, x10, [x2, #32]
|
||||
- stp x7, x8, [x0, #16]
|
||||
- subs w4, w4, #1
|
||||
- ldp x11, x12, [x2, #48]
|
||||
- stp x9, x10, [x0, #32]
|
||||
- stp x11, x12, [x0, #48]
|
||||
- add x2, x2, x3
|
||||
- add x0, x0, x1
|
||||
- b.ne 1b
|
||||
- ret
|
||||
-endfunc
|
||||
-
|
||||
function ff_vp9_avg64_neon, export=1
|
||||
mov x5, x0
|
||||
1:
|
||||
@@ -64,19 +47,6 @@ function ff_vp9_avg64_neon, export=1
|
||||
ret
|
||||
endfunc
|
||||
|
||||
-function ff_vp9_copy32_aarch64, export=1
|
||||
-1:
|
||||
- ldp x5, x6, [x2]
|
||||
- ldp x7, x8, [x2, #16]
|
||||
- stp x5, x6, [x0]
|
||||
- subs w4, w4, #1
|
||||
- stp x7, x8, [x0, #16]
|
||||
- add x2, x2, x3
|
||||
- add x0, x0, x1
|
||||
- b.ne 1b
|
||||
- ret
|
||||
-endfunc
|
||||
-
|
||||
function ff_vp9_avg32_neon, export=1
|
||||
1:
|
||||
ld1 {v2.16b, v3.16b}, [x2], x3
|
||||
BIN
Telegram/Resources/art/dice_idle.tgs
Normal file
BIN
Telegram/Resources/icons/filters/filters_all.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_all@2x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Telegram/Resources/icons/filters/filters_all@3x.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_all_active.png
Normal file
|
After Width: | Height: | Size: 923 B |
BIN
Telegram/Resources/icons/filters/filters_all_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Telegram/Resources/icons/filters/filters_all_active@3x.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
Telegram/Resources/icons/filters/filters_bots.png
Normal file
|
After Width: | Height: | Size: 684 B |
BIN
Telegram/Resources/icons/filters/filters_bots@2x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_bots@3x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
Telegram/Resources/icons/filters/filters_bots_active.png
Normal file
|
After Width: | Height: | Size: 615 B |
BIN
Telegram/Resources/icons/filters/filters_bots_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Telegram/Resources/icons/filters/filters_bots_active@3x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_channels.png
Normal file
|
After Width: | Height: | Size: 618 B |
BIN
Telegram/Resources/icons/filters/filters_channels@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Telegram/Resources/icons/filters/filters_channels@3x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_channels_active.png
Normal file
|
After Width: | Height: | Size: 527 B |
BIN
Telegram/Resources/icons/filters/filters_channels_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
Telegram/Resources/icons/filters/filters_channels_active@3x.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Telegram/Resources/icons/filters/filters_custom.png
Normal file
|
After Width: | Height: | Size: 492 B |
BIN
Telegram/Resources/icons/filters/filters_custom@2x.png
Normal file
|
After Width: | Height: | Size: 938 B |
BIN
Telegram/Resources/icons/filters/filters_custom@3x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_custom_active.png
Normal file
|
After Width: | Height: | Size: 382 B |
BIN
Telegram/Resources/icons/filters/filters_custom_active@2x.png
Normal file
|
After Width: | Height: | Size: 750 B |
BIN
Telegram/Resources/icons/filters/filters_custom_active@3x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Telegram/Resources/icons/filters/filters_groups.png
Normal file
|
After Width: | Height: | Size: 757 B |
BIN
Telegram/Resources/icons/filters/filters_groups@2x.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Telegram/Resources/icons/filters/filters_groups@3x.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Telegram/Resources/icons/filters/filters_groups_active.png
Normal file
|
After Width: | Height: | Size: 553 B |
BIN
Telegram/Resources/icons/filters/filters_groups_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_groups_active@3x.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Telegram/Resources/icons/filters/filters_private.png
Normal file
|
After Width: | Height: | Size: 627 B |
BIN
Telegram/Resources/icons/filters/filters_private@2x.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_private@3x.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Telegram/Resources/icons/filters/filters_private_active.png
Normal file
|
After Width: | Height: | Size: 521 B |
BIN
Telegram/Resources/icons/filters/filters_private_active@2x.png
Normal file
|
After Width: | Height: | Size: 913 B |
BIN
Telegram/Resources/icons/filters/filters_private_active@3x.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Telegram/Resources/icons/filters/filters_setup.png
Normal file
|
After Width: | Height: | Size: 232 B |
BIN
Telegram/Resources/icons/filters/filters_setup@2x.png
Normal file
|
After Width: | Height: | Size: 493 B |
BIN
Telegram/Resources/icons/filters/filters_setup@3x.png
Normal file
|
After Width: | Height: | Size: 916 B |
BIN
Telegram/Resources/icons/filters/filters_type_archived.png
Normal file
|
After Width: | Height: | Size: 528 B |
BIN
Telegram/Resources/icons/filters/filters_type_archived@2x.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_archived@3x.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_bots.png
Normal file
|
After Width: | Height: | Size: 503 B |
BIN
Telegram/Resources/icons/filters/filters_type_bots@2x.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_bots@3x.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_channels.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
Telegram/Resources/icons/filters/filters_type_channels@2x.png
Normal file
|
After Width: | Height: | Size: 913 B |
BIN
Telegram/Resources/icons/filters/filters_type_channels@3x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_contacts.png
Normal file
|
After Width: | Height: | Size: 372 B |
BIN
Telegram/Resources/icons/filters/filters_type_contacts@2x.png
Normal file
|
After Width: | Height: | Size: 699 B |
BIN
Telegram/Resources/icons/filters/filters_type_contacts@3x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_groups.png
Normal file
|
After Width: | Height: | Size: 508 B |
BIN
Telegram/Resources/icons/filters/filters_type_groups@2x.png
Normal file
|
After Width: | Height: | Size: 984 B |
BIN
Telegram/Resources/icons/filters/filters_type_groups@3x.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_muted.png
Normal file
|
After Width: | Height: | Size: 576 B |
BIN
Telegram/Resources/icons/filters/filters_type_muted@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_muted@3x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_noncontacts.png
Normal file
|
After Width: | Height: | Size: 573 B |
BIN
Telegram/Resources/icons/filters/filters_type_noncontacts@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_noncontacts@3x.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_read.png
Normal file
|
After Width: | Height: | Size: 672 B |
BIN
Telegram/Resources/icons/filters/filters_type_read@2x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_type_read@3x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_unmuted.png
Normal file
|
After Width: | Height: | Size: 683 B |
BIN
Telegram/Resources/icons/filters/filters_unmuted@2x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_unmuted@3x.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Telegram/Resources/icons/filters/filters_unmuted_active.png
Normal file
|
After Width: | Height: | Size: 510 B |
BIN
Telegram/Resources/icons/filters/filters_unmuted_active@2x.png
Normal file
|
After Width: | Height: | Size: 946 B |
BIN
Telegram/Resources/icons/filters/filters_unmuted_active@3x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_unread.png
Normal file
|
After Width: | Height: | Size: 864 B |
BIN
Telegram/Resources/icons/filters/filters_unread@2x.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Telegram/Resources/icons/filters/filters_unread@3x.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
Telegram/Resources/icons/filters/filters_unread_active.png
Normal file
|
After Width: | Height: | Size: 718 B |
BIN
Telegram/Resources/icons/filters/filters_unread_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Telegram/Resources/icons/filters/filters_unread_active@3x.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
Telegram/Resources/icons/filters/folders_cat.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Telegram/Resources/icons/filters/folders_cat@2x.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
Telegram/Resources/icons/filters/folders_cat@3x.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
Telegram/Resources/icons/filters/folders_cat_active.png
Normal file
|
After Width: | Height: | Size: 943 B |
BIN
Telegram/Resources/icons/filters/folders_cat_active@2x.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Telegram/Resources/icons/filters/folders_cat_active@3x.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
Telegram/Resources/icons/filters/folders_crown.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
Telegram/Resources/icons/filters/folders_crown@2x.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Telegram/Resources/icons/filters/folders_crown@3x.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |