2015-09-06 16:17:03 +00:00
# [Telegram Desktop][telegram_desktop] – Official Messenger
2014-05-02 12:36:31 +00:00
2015-09-06 16:17:03 +00:00
This is the complete source code and the build instructions for the alpha version of the official desktop client for the [Telegram][telegram] messenger, based on the [Telegram API][telegram_api] and the [MTProto][telegram_proto] secure protocol.
2014-05-30 08:53:19 +00:00
2015-10-03 11:34:56 +00:00
The source code is published under GPLv3 with OpenSSL exception, the license is available [here][license].
2014-05-30 10:09:53 +00:00
2015-09-04 14:26:34 +00:00
## Supported systems
2014-05-30 08:53:19 +00:00
2015-08-13 15:09:04 +00:00
* Windows XP - Windows 10 (**not** RT)
2015-08-01 12:56:10 +00:00
* Mac OS X 10.8 - Mac OS X 10.10
* Mac OS X 10.6 - Mac OS X 10.7 (separate build)
2015-06-01 12:44:10 +00:00
* Ubuntu 12.04 - Ubuntu 14.04
2015-06-11 09:34:35 +00:00
* Fedora 22
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
## Third-party libraries
2014-06-17 05:37:53 +00:00
2015-10-19 21:24:39 +00:00
* Qt 5.3.2 and 5.5.1, slightly patched ([LGPL](http://doc.qt.io/qt-5/lgpl.html))
2014-06-17 05:37:53 +00:00
* OpenSSL 1.0.1g ([OpenSSL License](https://www.openssl.org/source/license.html))
* zlib 1.2.8 ([zlib License](http://www.zlib.net/zlib_license.html))
* libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html))
* LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html))
2014-06-25 20:15:34 +00:00
* liblzma ([public domain](http://tukaani.org/xz/))
2014-09-04 07:33:44 +00:00
* OpenAL Soft ([LGPL](http://kcat.strangesoft.net/openal.html))
2015-06-01 12:44:10 +00:00
* Opus codec ([BSD license](http://www.opus-codec.org/license/))
* FFmpeg ([LGPL](https://www.ffmpeg.org/legal.html))
2015-10-03 11:34:56 +00:00
* Open Sans font ([Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html))
2014-05-30 08:53:19 +00:00
2015-09-04 14:26:34 +00:00
## Build instructions
2014-05-30 08:53:19 +00:00
2015-10-19 21:24:39 +00:00
* [Visual Studio 2015][msvc]
* [XCode 7][xcode]
* [XCode 7 for OS X 10.6 and 10.7][xcode_old]
2015-10-19 22:13:11 +00:00
* [Qt Creator 3.5.1 Ubuntu][qtcreator]
2014-05-30 08:53:19 +00:00
2015-09-04 14:26:34 +00:00
## Projects in Telegram solution
2015-08-01 12:56:10 +00:00
2015-09-06 16:17:03 +00:00
* ### Telegram
2014-07-15 06:03:11 +00:00
2015-09-06 16:17:03 +00:00
[Telegram Desktop][telegram_desktop] messenger
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
* ### Updater
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
A little app, that is launched by Telegram when update is ready, replaces all files and launches it back.
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
* ### Packer
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
Compiles given files to single update file, compresses it with lzma and signs with a private key. It is not built in **Debug** and **Release** configurations of Telegram solution, because private key is inaccessible.
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
* ### Prepare
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
Prepares a release for deployment, puts all current files to deploy/{version} folder.
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
**Windows** :
* tsetup{version}.exe installer
* Telegram.exe
* Telegram.pdb (debug info for crash minidumps view)
* tupdate{updversion} binary lzma update archive
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
**Mac** :
* tsetup{version}.dmg
* Telegram.app
* tmacupd{updversion} binary lzma update archive
2014-06-25 20:15:34 +00:00
2015-09-06 16:17:03 +00:00
* ### MetaEmoji
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
Creates four sprites and text2emoji replace code
* SourceFiles/art/emoji.png
* SourceFiles/art/emoji_125x.png
* SourceFiles/art/emoji_150x.png
* SourceFiles/art/emoji_200x.png
* SourceFiles/art/emoji_250x.png
* SourceFiles/gui/emoji_config.cpp
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
* ### MetaStyle
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
From two files and two sprites
* Resources/style_classes.txt
* Resources/style.txt
* SourceFiles/art/sprite.png
* SourceFiles/art/sprite_200x.png
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
Creates two other sprites, four sprite grids and style constants code
* SourceFiles/art/sprite_125x.png
* SourceFiles/art/sprite_150x.png
* SourceFiles/art/grid.png
* SourceFiles/art/grid_125x.png
* SourceFiles/art/grid_150x.png
* SourceFiles/art/grid_200x.png
* GeneratedFiles/style_classes.h
* GeneratedFiles/style_auto.h
* GeneratedFiles/style_auto.cpp
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
* ### MetaLang
2014-05-30 08:53:19 +00:00
2015-09-06 16:17:03 +00:00
Creates from languagepack file `Resources/lang.txt` language constants code and language file parse code:
* GeneratedFiles/lang.h
* GeneratedFiles/lang.cpp
2015-09-04 14:26:34 +00:00
[//]: # (LINKS)
[telegram]: https://telegram.org
[telegram_desktop]: https://desktop.telegram.org
[telegram_api]: https://core.telegram.org
[telegram_proto]: https://core.telegram.org/mtproto
[license]: LICENSE
[msvc]: MSVC.md
[xcode]: XCODE.md
[xcode_old]: XCODEold.md
2015-09-16 18:35:26 +00:00
[qtcreator]: QTCREATOR.md