mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-28 19:40:54 +00:00
142 lines
5.8 KiB
Plaintext
142 lines
5.8 KiB
Plaintext
Build with Visual Studio 2013, Windows 8.1
|
|
|
|
Prepare folder:
|
|
|
|
Choose folder for future build, for example "D:\TBuild\".
|
|
There you will have two folders, "Libraries" for third-party libs and "tdesktop" for the app.
|
|
|
|
Clone sources:
|
|
|
|
- By git: in Git Bash go to "/d/tbuild" and run "git clone https://github.com/telegramdesktop/tdesktop.git"
|
|
- Or download in ZIP and extract to "D:\TBuild\", rename "tdesktop-master" to "tdesktop" to have "D:\TBuild\tdesktop\Telegram.sln" solution
|
|
|
|
Prepare libraries:
|
|
|
|
OpenSSL (1.0.1g)
|
|
|
|
https://www.openssl.org/related/binaries.html > "OpenSSL for Windows" > "Win32 OpenSSL v1.0.1g" (16 Mb)
|
|
- Install to "D:\TBuild\Libraries\OpenSSL-Win32", while installing "Copy OpenSSL DLLs to" choose "The OpenSSL binaries (/bin) directory"
|
|
|
|
LZMA (9.20)
|
|
|
|
http://www.7-zip.org/sdk.html > Download 9.20 "LZMA SDK (C, C++, C#, Java)"
|
|
- Extract to "D:\TBuild\Libraries\lzma\"
|
|
|
|
Building Lib:
|
|
|
|
- Open "D:\TBuild\Libraries\lzma\C\Util\LzmaLib\LzmaLib.dsw" with Visual Studio 2013 > One-way upgrade OK
|
|
- For Debug and Release configurations:
|
|
- LzmaLib Properties > General > Configuration Type = "Static library (.lib)" > OK
|
|
- LzmaLib Properties > Librarian > General > Target Machine = "MachineX86 (/MACHINE:X86)" > OK
|
|
- Build Debug
|
|
- Build Release
|
|
|
|
zlib (1.2.8)
|
|
|
|
http://www.zlib.net/ > "zlib source code, version 1.2.8, zipfile format" > http://zlib.net/zlib128.zip
|
|
- Extract to "D:\TBuild\Libraries\"
|
|
|
|
Building Lib:
|
|
- Open "D:\TBuild\Libraries\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln" > Upgrade .. > OK
|
|
- We are interested in only "zlibstat" project, but it depends on some custom pre-build step
|
|
- For Debug configuration:
|
|
- zlibstat Properties > C/C++ > Code Generation > Runtime Library = "Multi-threaded Debug (/MTd)" > OK
|
|
- For Release configuration:
|
|
- zlibstat Properties > C/C++ > Code Generation > Runtime Library = "Multi-threaded (/MT)" > OK
|
|
- Build Solution for Debug - only "zlibstat" project build successfully, and we need only it
|
|
- Build Solution for Release - only "zlibstat" project build successfully, and we need only it
|
|
|
|
libexif (0.6.20) - prepared
|
|
|
|
https://github.com/telegramdesktop/libexif-0.6.20
|
|
- By git: in Git Bash go to "/d/tbuild/libraries" and run "git clone https://github.com/telegramdesktop/libexif-0.6.20.git"
|
|
- Or download in ZIP and extract to "D:\TBuild\Libraries\", rename "libexif-0.6.20-master" to "libexif-0.6.20" to have "D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln" solution
|
|
|
|
Building Lib:
|
|
- Open "D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln"
|
|
- Build Debug
|
|
- Build Release
|
|
|
|
Qt (5.3.0)
|
|
|
|
http://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.zip
|
|
- Extract to "D:\TBuild\Libraries\Tmp\"
|
|
- Copy everything from "D:\TBuild\Libraries\Tmp\qt-everywhere-opensource-src-5.3.0" to "D:\TBuild\Libraries\QtStatic"
|
|
- Copy (with overwrite) everything from "D:\TBuild\tdesktop\_qt_5_3_0_patch" to "D:\TBuild\Libraries\QtStatic"
|
|
|
|
Building Lib:
|
|
|
|
- Install Python (3.3.2) from https://www.python.org/download/releases/3.3.2 > "Windows x86 MSI Installer (3.3.2)" (https://www.python.org/ftp/python/3.3.2/python-3.3.2.msi)
|
|
- Open "VS2013 x86 Native Tools Command Prompt.bat" (should be in "\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts")
|
|
|
|
Go to Qt directory ("D:" > Enter > "cd TBuild\Libraries\QtStatic" > Enter) and run "configure -debug-and-release -opensource -static -opengl desktop -mp -nomake examples -platform win32-msvc2013", then "y" (accept), after configuration is complete run "nmake" and then "nmake install", nmake will take really long time.
|
|
|
|
Qt Visual Studio Addin 1.2.3
|
|
|
|
http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.3-opensource.exe
|
|
- Install to default location
|
|
|
|
Building Telegram Desktop:
|
|
|
|
- Launch Microsoft Visual Studio 2013
|
|
- QT5 > Qt Options > Add:
|
|
Version name: QtStatic.5.3.0
|
|
Path: D:\TBuild\Libraries\QtStatic\qtbase
|
|
- Default Qt/Win version: QtStatic.5.3.0 > OK
|
|
- File > Open > Project/Solution > D:\TBuild\tdesktop\Telegram.sln
|
|
- Build > Build Solution
|
|
|
|
Projects in Telegram solution:
|
|
|
|
Telegram:
|
|
tdesktop messenger
|
|
|
|
Updater:
|
|
little app, that is launched by Telegram when update is ready, replaces all files and launches it back
|
|
|
|
Packer:
|
|
compiles given files to single update file, compresses it with lzma and signs with a private key,
|
|
it was not included to Telegram solution, because private key is inaccessible
|
|
|
|
Prepare:
|
|
prepares a release for deployment: puts all files to deploy/{version} folder
|
|
current tsetup{version}exe installer
|
|
current Telegram.exe
|
|
current Telegram.pdb (debug info for crash minidumps view)
|
|
current tupdate{updversion} binary lzma update archive
|
|
|
|
MetaEmoji:
|
|
from two folders
|
|
SourceFiles/art/Emoji
|
|
SourceFiles/art/Emoji_200x
|
|
and some inner config 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/gui/emoji_config.cpp
|
|
|
|
MetaStyle:
|
|
from two files and two sprites
|
|
Resources/style_classes.txt
|
|
Resources/style.txt
|
|
SourceFiles/art/sprite.png
|
|
SourceFiles/art/sprite_200x.png
|
|
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
|
|
|
|
MetaLang:
|
|
from langpack file
|
|
Resources/lang.txt
|
|
creates lang constants code and lang file parse code:
|
|
GeneratedFiles/lang.h
|
|
GeneratedFiles/lang.cpp
|