编译 Telegram Desktop

许久没有写文章了,适逢新买的 MacBook 也需要自己编译一份,于是今天就来水一篇关于编译 Telegram Desktop 的文章。

此文章主要用于个人记录。

Windows 端

环境搭建

下载并安装以下软件:

  • Visual Studio 2022

    1
    winget install Microsoft.VisualStudio.2022.Community

指定一个文件夹用于存放 Telegram Desktop 的源码,例如:D:\TelegramDesktopBuild,在此创建并运行一个 Powershell 的脚本,脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Set-Location $PSScriptRoot

New-Item -ItemType Directory -Force -Path "Libraries" > $null
New-Item -ItemType Directory -Force -Path "ThirdParty" > $null

function Install-PackageIfNotExists($Executable, $PackageName) {
if (-Not(Get-Command $Executable -errorAction SilentlyContinue)) {
winget install $PackageName
}
}

Install-PackageIfNotExists "cmake" "Kitware.CMake"
Install-PackageIfNotExists "git" "Git.Git"
Install-PackageIfNotExists "python" "Python.Python.3.9"

pip install --upgrade pywin32

if (Test-Path -Path "tdesktop") {
Set-Location "tdesktop"
git fetch --all
Set-Location ..
}
else {
git clone --recursive https://github.com/telegramdesktop/tdesktop.git
}

下载完源码后,我们还可以根据自己需求修改编译线程数,进入 tdesktop\Telegram\build\prepare\prepare.py 文件:

1
2
3
4
5
...
environment = {
- 'MAKE_THREADS_CNT': '-j8',
+ 'MAKE_THREADS_CNT': '-j32',
...

Prepare libraries

Run tdesktop\Telegram\build\prepare\win.bat via x64 Native Tools Command Prompt for VS 2022.bat in current path.

Build the project

Same as the official document.

删除之前生成的文件。

1
rm -r tdesktop\out

自己指定或使用测试用 API ID 和 API hash:

1
2
3
4
5
6
cd tdesktop\Telegram
.\configure.bat x64 ^
-D TDESKTOP_API_ID=YOUR_API_ID ^
-D TDESKTOP_API_HASH=YOUR_API_HASH ^
-D DESKTOP_APP_USE_PACKAGED=OFF ^
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF

or

1
2
3
4
5
cd tdesktop\Telegram
.\configure.bat x64 ^
-D TDESKTOP_API_TEST=ON ^
-D DESKTOP_APP_USE_PACKAGED=OFF ^
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF

之后的部分遵循官方文档

macOS 端

环境搭建

下载以下软件:

Build the project

遵循官方文档.