- Prepare folder
- Install third party software
- Clone source code and prepare libraries
- Build the project
- Qt Visual Studio Tools
The build is done in Visual Studio 2022 with 10.0.22000.0 SDK version.
Choose an empty folder for the future build, for example D:\TBuild. It will be named BuildPath in the rest of this document. Create two folders there, BuildPath\ThirdParty and BuildPath\Libraries.
All commands (if not stated otherwise) will be launched from x86 Native Tools Command Prompt for VS 2022.bat (should be in Start Menu > Visual Studio 2022 menu folder). Pay attention not to use any other Command Prompt.
You will require api_id and api_hash to access the Telegram API servers. To learn how to obtain them click here.
- Download Strawberry Perl installer from http://strawberryperl.com/ and install to BuildPath\ThirdParty\Strawberry
- Download NASM installer from http://www.nasm.us and install to BuildPath\ThirdParty\NASM
- Download Yasm executable from http://yasm.tortall.net/Download.html, rename to yasm.exe and put to BuildPath\ThirdParty\yasm
- Download MSYS2 installer from http://www.msys2.org/ and install to BuildPath\ThirdParty\msys64
- Download jom archive from http://download.qt.io/official_releases/jom/jom.zip and unpack to BuildPath\ThirdParty\jom
- Download Python 3.9 installer from https://www.python.org/downloads/ and install to BuildPath\ThirdParty\Python39
- Download CMake 3.21 or later installer from https://cmake.org/download/ and install to BuildPath\ThirdParty\cmake
- Download Ninja executable from https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip and unpack to BuildPath\ThirdParty\Ninja
- Download Git installer from https://git-scm.com/download/win and install it.
- Download NuGet executable from https://dist.nuget.org/win-x86-commandline/latest/nuget.exe and put to BuildPath\ThirdParty\NuGet
Add Python 3.9 and NuGet to your PATH:
- Open Control Panel -> System -> Advanced system settings.
- Press Environment Variables....
- Select Path.
- Press Edit.
- Add BuildPath\ThirdParty\Python39 value.
- Add BuildPath\ThirdParty\NuGet value.
Open x86 Native Tools Command Prompt for VS 2022.bat, go to BuildPath and run
python -m pip install pywin32
Open x86 Native Tools Command Prompt for VS 2022.bat, go to BuildPath and run
git clone --recursive https://github.com/telegramdesktop/tdesktop.git
tdesktop\Telegram\build\prepare\win.bat
Go to BuildPath\tdesktop\Telegram and run (using your api_id and api_hash)
configure.bat -D TDESKTOP_API_ID=YOUR_API_ID -D TDESKTOP_API_HASH=YOUR_API_HASH
- Open BuildPath\tdesktop\out\Telegram.sln in Visual Studio 2022
- Select Telegram project and press Build > Build Telegram (Debug and Release configurations)
- The result Telegram.exe will be located in D:\TBuild\tdesktop\out\Debug (and Release)
For better debugging you may want to install Qt Visual Studio Tools:
- Open Extensions -> Manage Extensions
- Go to Online tab
- Search for Qt
- Install Qt Visual Studio Tools extension