From a41912cdf360a0776f92c8434cff12ed3b08cb15 Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Mon, 12 Sep 2016 14:45:41 +0300
Subject: [PATCH] Moved all builds to GYP.

---
 README.md                                     |   7 +-
 Telegram/MetaEmoji.pro                        |  30 -
 Telegram/MetaLang.pro                         |  30 -
 Telegram/Packer.pro                           |  40 --
 Telegram/Telegram.pro                         | 631 ------------------
 Telegram/Updater.pro                          |  17 -
 .../qmake/codegen_numbers/codegen_numbers.pro |  45 --
 .../qmake/codegen_style/codegen_style.pro     |  51 --
 Telegram/qt_static.pri                        |  26 -
 doc/building-cmake.md                         | 193 ++++++
 doc/building-qmake.md                         |   3 +
 doc/building-qtcreator.md                     |   2 +
 doc/building-xcode-old.md                     |   4 +
 doc/building-xcode.md                         |  21 +-
 14 files changed, 217 insertions(+), 883 deletions(-)
 delete mode 100644 Telegram/MetaEmoji.pro
 delete mode 100644 Telegram/MetaLang.pro
 delete mode 100644 Telegram/Packer.pro
 delete mode 100644 Telegram/Telegram.pro
 delete mode 100644 Telegram/Updater.pro
 delete mode 100644 Telegram/build/qmake/codegen_numbers/codegen_numbers.pro
 delete mode 100644 Telegram/build/qmake/codegen_style/codegen_style.pro
 delete mode 100644 Telegram/qt_static.pri
 create mode 100644 doc/building-cmake.md

diff --git a/README.md b/README.md
index e3f7f6469..9ebcaa22d 100644
--- a/README.md
+++ b/README.md
@@ -35,9 +35,7 @@ The source code is published under GPLv3 with OpenSSL exception, the license is
 
 * [Visual Studio 2015][msvc]
 * [Xcode 7][xcode]
-* [Xcode 7 for OS X 10.6 and 10.7][xcode_old]
-* [Qt Creator 3.5.1 Ubuntu][qtcreator]
-* [Using qmake on GNU/Linux][qmake]
+* [GYP/CMake on GNU/Linux][cmake]
 
 ## Projects in Telegram solution
 
@@ -83,5 +81,4 @@ The source code is published under GPLv3 with OpenSSL exception, the license is
 [msvc]: doc/building-msvc.md
 [xcode]: doc/building-xcode.md
 [xcode_old]: doc/building-xcode-old.md
-[qtcreator]: doc/building-qtcreator.md
-[qmake]: doc/building-qmake.md
+[cmake]: doc/building-cmake.md
diff --git a/Telegram/MetaEmoji.pro b/Telegram/MetaEmoji.pro
deleted file mode 100644
index 02c5c7080..000000000
--- a/Telegram/MetaEmoji.pro
+++ /dev/null
@@ -1,30 +0,0 @@
-QT += core 
-
-CONFIG(debug, debug|release) {
-    DEFINES += _DEBUG
-    OBJECTS_DIR = ./../DebugIntermediateEmoji
-    MOC_DIR = ./GeneratedFiles/Debug
-    DESTDIR = ./../DebugEmoji
-}
-CONFIG(release, debug|release) {
-    OBJECTS_DIR = ./../ReleaseIntermediateEmoji
-    MOC_DIR = ./GeneratedFiles/Release
-    DESTDIR = ./../ReleaseEmoji
-}
-
-CONFIG += plugin static
-
-macx {
-    QMAKE_INFO_PLIST = ./SourceFiles/_other/Emoji.plist
-    QMAKE_LFLAGS += -framework Cocoa
-}
-
-SOURCES += \
-    ./SourceFiles/_other/memain.cpp \
-    ./SourceFiles/_other/genemoji.cpp \
-
-HEADERS += \
-    ./SourceFiles/_other/memain.h \
-    ./SourceFiles/_other/genemoji.h \
-
-include(qt_static.pri)
diff --git a/Telegram/MetaLang.pro b/Telegram/MetaLang.pro
deleted file mode 100644
index c244acbfc..000000000
--- a/Telegram/MetaLang.pro
+++ /dev/null
@@ -1,30 +0,0 @@
-QT += core
-
-CONFIG(debug, debug|release) {
-    DEFINES += _DEBUG
-    OBJECTS_DIR = ./../DebugIntermediateLang
-    MOC_DIR = ./GeneratedFiles/Debug
-    DESTDIR = ./../DebugLang
-}
-CONFIG(release, debug|release) {
-    OBJECTS_DIR = ./../ReleaseIntermediateLang
-    MOC_DIR = ./GeneratedFiles/Release
-    DESTDIR = ./../ReleaseLang
-}
-
-CONFIG += plugin static c++14
-
-macx {
-    QMAKE_INFO_PLIST = ./SourceFiles/_other/Lang.plist
-    QMAKE_LFLAGS += -framework Cocoa
-}
-
-SOURCES += \
-    ./SourceFiles/_other/mlmain.cpp \
-    ./SourceFiles/_other/genlang.cpp \
-
-HEADERS += \
-    ./SourceFiles/_other/mlmain.h \
-    ./SourceFiles/_other/genlang.h \
-
-include(qt_static.pri)
diff --git a/Telegram/Packer.pro b/Telegram/Packer.pro
deleted file mode 100644
index ee5f36f28..000000000
--- a/Telegram/Packer.pro
+++ /dev/null
@@ -1,40 +0,0 @@
-QT += core 
-
-CONFIG(debug, debug|release) {
-    DEFINES += _DEBUG
-    OBJECTS_DIR = ./../DebugIntermediatePacker
-    MOC_DIR = ./GeneratedFiles/Debug
-    DESTDIR = ./../Debug
-}
-CONFIG(release, debug|release) {
-    OBJECTS_DIR = ./../ReleaseIntermediatePacker
-    MOC_DIR = ./GeneratedFiles/Release
-    DESTDIR = ./../Release
-}
-
-macx {
-    QMAKE_INFO_PLIST = ./SourceFiles/_other/Packer.plist
-    QMAKE_LFLAGS += -framework Cocoa
-}
-
-SOURCES += \
-    ./SourceFiles/_other/packer.cpp \
-
-HEADERS += \
-    ./SourceFiles/_other/packer.h \
-
-unix {
-    linux-g++:QMAKE_TARGET.arch = $$QMAKE_HOST.arch
-    linux-g++-32:QMAKE_TARGET.arch = x86
-    linux-g++-64:QMAKE_TARGET.arch = x86_64
-
-    contains(QMAKE_TARGET.arch, x86_64) {
-        DEFINES += Q_OS_LINUX64
-    } else {
-        DEFINES += Q_OS_LINUX32
-    }
-}
-
-include(qt_static.pri)
-
-LIBS += -lcrypto -lssl -lz -llzma
diff --git a/Telegram/Telegram.pro b/Telegram/Telegram.pro
deleted file mode 100644
index 0b1fff886..000000000
--- a/Telegram/Telegram.pro
+++ /dev/null
@@ -1,631 +0,0 @@
-QT += core gui network widgets
-
-CONFIG += plugin static c++14
-
-CONFIG(debug, debug|release) {
-	DEFINES += _DEBUG
-	OBJECTS_DIR = ./../DebugIntermediate
-	MOC_DIR = ./GeneratedFiles/Debug
-	RCC_DIR = ./GeneratedFiles
-	DESTDIR = ./../Debug
-}
-CONFIG(release, debug|release) {
-	DEFINES += CUSTOM_API_ID
-	OBJECTS_DIR = ./../ReleaseIntermediate
-	MOC_DIR = ./GeneratedFiles/Release
-	RCC_DIR = ./GeneratedFiles
-	DESTDIR = ./../Release
-}
-
-macx {
-	QMAKE_INFO_PLIST = ./SourceFiles/Telegram.plist
-	QMAKE_LFLAGS += -framework Cocoa
-}
-
-linux {
-	SOURCES += ./SourceFiles/pspecific_linux.cpp
-	HEADERS += ./SourceFiles/pspecific_linux.h
-}
-
-CONFIG(debug, debug|release) {
-	codegen_style.target = style_target
-	codegen_style.depends = FORCE
-	codegen_style.commands = ./../codegen/Debug/codegen_style "-I./../../Telegram/Resources" "-I./../../Telegram/SourceFiles" "-o./GeneratedFiles/styles" all_files.style --rebuild
-
-	codegen_numbers.target = numbers_target
-	codegen_numbers.depends = ./../../Telegram/Resources/numbers.txt
-	codegen_numbers.commands = ./../codegen/Debug/codegen_numbers "-o./GeneratedFiles" "./../../Telegram/Resources/numbers.txt"
-
-	codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Debug/codegen_numbers "-o./../Linux/DebugIntermediate/GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/DebugIntermediate
-
-	codegen_lang.target = lang_target
-	codegen_lang.depends = ./../../Telegram/Resources/langs/lang.strings
-	codegen_lang.commands = mkdir -p ./GeneratedFiles && ./../DebugLang/MetaLang -lang_in ./../../Telegram/Resources/langs/lang.strings -lang_out ./GeneratedFiles/lang_auto
-}
-
-CONFIG(release, debug|release) {
-	codegen_style.target = style_target
-	codegen_style.depends = FORCE
-	codegen_style.commands = ./../codegen/Release/codegen_style "-I./../../Telegram/Resources" "-I./../../Telegram/SourceFiles" "-o./GeneratedFiles/styles" all_files.style --rebuild
-
-	codegen_numbers.target = numbers_target
-	codegen_numbers.depends = ./../../Telegram/Resources/numbers.txt
-	codegen_numbers.commands = ./../codegen/Release/codegen_numbers "-o./GeneratedFiles" "./../../Telegram/Resources/numbers.txt"
-
-	codegen_numbers.commands = cd ../../Telegram && ./../Linux/codegen/Release/codegen_numbers "-o./../Linux/ReleaseIntermediate/GeneratedFiles" "./Resources/numbers.txt" && cd ../Linux/ReleaseIntermediate
-
-	codegen_lang.target = lang_target
-	codegen_lang.depends = ./../../Telegram/Resources/langs/lang.strings
-	codegen_lang.commands = mkdir -p ./GeneratedFiles && ./../ReleaseLang/MetaLang -lang_in ./../../Telegram/Resources/langs/lang.strings -lang_out ./GeneratedFiles/lang_auto
-}
-
-file_style_basic.target = GeneratedFiles/styles/style_basic.cpp
-file_style_basic.depends = style_target
-file_style_basic_types.target = GeneratedFiles/styles/style_basic_types.cpp
-file_style_basic_types.depends = style_target
-file_style_boxes.target = GeneratedFiles/styles/style_boxes.cpp
-file_style_boxes.depends = style_target
-file_style_dialogs.target = GeneratedFiles/styles/style_dialogs.cpp
-file_style_dialogs.depends = style_target
-file_style_history.target = GeneratedFiles/styles/style_history.cpp
-file_style_history.depends = style_target
-file_style_mediaview.target = GeneratedFiles/styles/style_mediaview.cpp
-file_style_mediaview.depends = style_target
-file_style_overview.target = GeneratedFiles/styles/style_overview.cpp
-file_style_overview.depends = style_target
-file_style_profile.target = GeneratedFiles/styles/style_profile.cpp
-file_style_profile.depends = style_target
-file_style_settings.target = GeneratedFiles/styles/style_settings.cpp
-file_style_settings.depends = style_target
-file_style_widgets.target = GeneratedFiles/styles/style_widgets.cpp
-file_style_widgets.depends = style_target
-
-QMAKE_EXTRA_TARGETS += codegen_style codegen_numbers codegen_lang \
-	file_style_basic file_style_basic_types file_style_boxes \
-	file_style_dialogs file_style_history file_style_mediaview \
-	file_style_overview file_style_profile file_style_settings \
-	file_style_widgets
-
-PRE_TARGETDEPS += style_target numbers_target lang_target
-
-unix {
-	linux-g++:QMAKE_TARGET.arch = $$QMAKE_HOST.arch
-	linux-g++-32:QMAKE_TARGET.arch = x86
-	linux-g++-64:QMAKE_TARGET.arch = x86_64
-
-	contains(QMAKE_TARGET.arch, x86_64) {
-		DEFINES += Q_OS_LINUX64
-	} else {
-		DEFINES += Q_OS_LINUX32
-	}
-}
-
-SOURCES += \
-	./GeneratedFiles/lang_auto.cpp \
-	./GeneratedFiles/numbers.cpp \
-	./GeneratedFiles/styles/style_basic.cpp \
-	./GeneratedFiles/styles/style_basic_types.cpp \
-	./GeneratedFiles/styles/style_boxes.cpp \
-	./GeneratedFiles/styles/style_dialogs.cpp \
-	./GeneratedFiles/styles/style_history.cpp \
-	./GeneratedFiles/styles/style_mediaview.cpp \
-	./GeneratedFiles/styles/style_overview.cpp \
-	./GeneratedFiles/styles/style_profile.cpp \
-	./GeneratedFiles/styles/style_settings.cpp \
-	./GeneratedFiles/styles/style_widgets.cpp \
-	./SourceFiles/main.cpp \
-	./SourceFiles/stdafx.cpp \
-	./SourceFiles/apiwrap.cpp \
-	./SourceFiles/app.cpp \
-	./SourceFiles/application.cpp \
-	./SourceFiles/autoupdater.cpp \
-	./SourceFiles/dialogswidget.cpp \
-	./SourceFiles/dropdown.cpp \
-	./SourceFiles/facades.cpp \
-	./SourceFiles/fileuploader.cpp \
-	./SourceFiles/history.cpp \
-	./SourceFiles/historywidget.cpp \
-	./SourceFiles/lang.cpp \
-	./SourceFiles/langloaderplain.cpp \
-	./SourceFiles/layerwidget.cpp \
-	./SourceFiles/layout.cpp \
-	./SourceFiles/mediaview.cpp \
-	./SourceFiles/observer_peer.cpp \
-	./SourceFiles/overviewwidget.cpp \
-	./SourceFiles/passcodewidget.cpp \
-	./SourceFiles/playerwidget.cpp \
-	./SourceFiles/localimageloader.cpp \
-	./SourceFiles/localstorage.cpp \
-	./SourceFiles/logs.cpp \
-	./SourceFiles/mainwidget.cpp \
-	./SourceFiles/settings.cpp \
-	./SourceFiles/shortcuts.cpp \
-	./SourceFiles/structs.cpp \
-	./SourceFiles/sysbuttons.cpp \
-	./SourceFiles/title.cpp \
-	./SourceFiles/mainwindow.cpp \
-	./SourceFiles/boxes/aboutbox.cpp \
-	./SourceFiles/boxes/abstractbox.cpp \
-	./SourceFiles/boxes/addcontactbox.cpp \
-	./SourceFiles/boxes/autolockbox.cpp \
-	./SourceFiles/boxes/backgroundbox.cpp \
-	./SourceFiles/boxes/confirmbox.cpp \
-	./SourceFiles/boxes/confirmphonebox.cpp \
-	./SourceFiles/boxes/connectionbox.cpp \
-	./SourceFiles/boxes/contactsbox.cpp \
-	./SourceFiles/boxes/downloadpathbox.cpp \
-	./SourceFiles/boxes/emojibox.cpp \
-	./SourceFiles/boxes/languagebox.cpp \
-	./SourceFiles/boxes/localstoragebox.cpp \
-	./SourceFiles/boxes/passcodebox.cpp \
-	./SourceFiles/boxes/photocropbox.cpp \
-	./SourceFiles/boxes/photosendbox.cpp \
-	./SourceFiles/boxes/report_box.cpp \
-	./SourceFiles/boxes/sessionsbox.cpp \
-	./SourceFiles/boxes/stickersetbox.cpp \
-	./SourceFiles/boxes/usernamebox.cpp \
-	./SourceFiles/core/basic_types.cpp \
-	./SourceFiles/core/click_handler.cpp \
-	./SourceFiles/core/click_handler_types.cpp \
-	./SourceFiles/core/observer.cpp \
-	./SourceFiles/core/qthelp_url.cpp \
-	./SourceFiles/data/data_abstract_structure.cpp \
-	./SourceFiles/data/data_drafts.cpp \
-	./SourceFiles/dialogs/dialogs_indexed_list.cpp \
-	./SourceFiles/dialogs/dialogs_layout.cpp \
-	./SourceFiles/dialogs/dialogs_list.cpp \
-	./SourceFiles/dialogs/dialogs_row.cpp \
-	./SourceFiles/history/field_autocomplete.cpp \
-	./SourceFiles/history/history_service_layout.cpp \
-	./SourceFiles/inline_bots/inline_bot_layout_internal.cpp \
-	./SourceFiles/inline_bots/inline_bot_layout_item.cpp \
-	./SourceFiles/inline_bots/inline_bot_result.cpp \
-	./SourceFiles/inline_bots/inline_bot_send_data.cpp \
-	./SourceFiles/intro/introwidget.cpp \
-	./SourceFiles/intro/introcode.cpp \
-	./SourceFiles/intro/introphone.cpp \
-	./SourceFiles/intro/intropwdcheck.cpp \
-	./SourceFiles/intro/introsignup.cpp \
-	./SourceFiles/intro/introstart.cpp \
-	./SourceFiles/media/view/media_clip_controller.cpp \
-	./SourceFiles/media/view/media_clip_playback.cpp \
-	./SourceFiles/media/view/media_clip_volume_controller.cpp \
-	./SourceFiles/media/media_audio.cpp \
-	./SourceFiles/media/media_audio_ffmpeg_loader.cpp \
-	./SourceFiles/media/media_audio_loader.cpp \
-	./SourceFiles/media/media_audio_loaders.cpp \
-	./SourceFiles/media/media_child_ffmpeg_loader.cpp \
-	./SourceFiles/media/media_clip_ffmpeg.cpp \
-	./SourceFiles/media/media_clip_implementation.cpp \
-	./SourceFiles/media/media_clip_qtgif.cpp \
-	./SourceFiles/media/media_clip_reader.cpp \
-	./SourceFiles/mtproto/facade.cpp \
-	./SourceFiles/mtproto/auth_key.cpp \
-	./SourceFiles/mtproto/connection.cpp \
-	./SourceFiles/mtproto/connection_abstract.cpp \
-	./SourceFiles/mtproto/connection_auto.cpp \
-	./SourceFiles/mtproto/connection_http.cpp \
-	./SourceFiles/mtproto/connection_tcp.cpp \
-	./SourceFiles/mtproto/core_types.cpp \
-	./SourceFiles/mtproto/dcenter.cpp \
-	./SourceFiles/mtproto/file_download.cpp \
-	./SourceFiles/mtproto/rsa_public_key.cpp \
-	./SourceFiles/mtproto/rpc_sender.cpp \
-	./SourceFiles/mtproto/scheme_auto.cpp \
-	./SourceFiles/mtproto/session.cpp \
-	./SourceFiles/overview/overview_layout.cpp \
-	./SourceFiles/platform/linux/linux_gdk_helper.cpp \
-	./SourceFiles/platform/linux/linux_libs.cpp \
-	./SourceFiles/platform/linux/file_dialog_linux.cpp \
-	./SourceFiles/platform/linux/main_window_linux.cpp \
-	./SourceFiles/profile/profile_actions_widget.cpp \
-	./SourceFiles/profile/profile_block_widget.cpp \
-	./SourceFiles/profile/profile_cover_drop_area.cpp \
-	./SourceFiles/profile/profile_cover.cpp \
-	./SourceFiles/profile/profile_fixed_bar.cpp \
-	./SourceFiles/profile/profile_info_widget.cpp \
-	./SourceFiles/profile/profile_inner_widget.cpp \
-	./SourceFiles/profile/profile_invite_link_widget.cpp \
-	./SourceFiles/profile/profile_members_widget.cpp \
-	./SourceFiles/profile/profile_section_memento.cpp \
-	./SourceFiles/profile/profile_settings_widget.cpp \
-	./SourceFiles/profile/profile_shared_media_widget.cpp \
-	./SourceFiles/profile/profile_userpic_button.cpp \
-	./SourceFiles/profile/profile_widget.cpp \
-	./SourceFiles/serialize/serialize_common.cpp \
-	./SourceFiles/serialize/serialize_document.cpp \
-	./SourceFiles/settings/settings_advanced_widget.cpp \
-	./SourceFiles/settings/settings_background_widget.cpp \
-	./SourceFiles/settings/settings_block_widget.cpp \
-	./SourceFiles/settings/settings_chat_settings_widget.cpp \
-	./SourceFiles/settings/settings_cover.cpp \
-	./SourceFiles/settings/settings_fixed_bar.cpp \
-	./SourceFiles/settings/settings_general_widget.cpp \
-	./SourceFiles/settings/settings_info_widget.cpp \
-	./SourceFiles/settings/settings_inner_widget.cpp \
-	./SourceFiles/settings/settings_notifications_widget.cpp \
-	./SourceFiles/settings/settings_privacy_widget.cpp \
-	./SourceFiles/settings/settings_scale_widget.cpp \
-	./SourceFiles/settings/settings_widget.cpp \
-	./SourceFiles/ui/buttons/history_down_button.cpp \
-	./SourceFiles/ui/buttons/icon_button.cpp \
-	./SourceFiles/ui/buttons/left_outline_button.cpp \
-	./SourceFiles/ui/buttons/peer_avatar_button.cpp \
-	./SourceFiles/ui/buttons/round_button.cpp \
-	./SourceFiles/ui/effects/fade_animation.cpp \
-	./SourceFiles/ui/style/style_core.cpp \
-	./SourceFiles/ui/style/style_core_color.cpp \
-	./SourceFiles/ui/style/style_core_font.cpp \
-	./SourceFiles/ui/style/style_core_icon.cpp \
-	./SourceFiles/ui/style/style_core_types.cpp \
-	./SourceFiles/ui/text/text.cpp \
-	./SourceFiles/ui/text/text_block.cpp \
-	./SourceFiles/ui/text/text_entity.cpp \
-	./SourceFiles/ui/toast/toast.cpp \
-	./SourceFiles/ui/toast/toast_manager.cpp \
-	./SourceFiles/ui/toast/toast_widget.cpp \
-	./SourceFiles/ui/widgets/label_simple.cpp \
-	./SourceFiles/ui/animation.cpp \
-	./SourceFiles/ui/boxshadow.cpp \
-	./SourceFiles/ui/button.cpp \
-	./SourceFiles/ui/popupmenu.cpp \
-	./SourceFiles/ui/countryinput.cpp \
-	./SourceFiles/ui/emoji_config.cpp \
-	./SourceFiles/ui/filedialog.cpp \
-	./SourceFiles/ui/flatbutton.cpp \
-	./SourceFiles/ui/flatcheckbox.cpp \
-	./SourceFiles/ui/flatinput.cpp \
-	./SourceFiles/ui/flatlabel.cpp \
-	./SourceFiles/ui/flattextarea.cpp \
-	./SourceFiles/ui/images.cpp \
-	./SourceFiles/ui/inner_dropdown.cpp \
-	./SourceFiles/ui/scrollarea.cpp \
-	./SourceFiles/ui/twidget.cpp \
-	./SourceFiles/window/chat_background.cpp \
-	./SourceFiles/window/main_window.cpp \
-	./SourceFiles/window/section_widget.cpp \
-	./SourceFiles/window/slide_animation.cpp \
-	./SourceFiles/window/top_bar_widget.cpp
-
-HEADERS += \
-	./GeneratedFiles/lang_auto.h \
-	./GeneratedFiles/numbers.h \
-	./GeneratedFiles/styles/style_basic.h \
-	./GeneratedFiles/styles/style_basic_types.h \
-	./GeneratedFiles/styles/style_boxes.h \
-	./GeneratedFiles/styles/style_dialogs.h \
-	./GeneratedFiles/styles/style_history.h \
-	./GeneratedFiles/styles/style_mediaview.h \
-	./GeneratedFiles/styles/style_overview.h \
-	./GeneratedFiles/styles/style_profile.h \
-	./GeneratedFiles/styles/style_settings.h \
-	./GeneratedFiles/styles/style_widgets.h \
-	./SourceFiles/stdafx.h \
-	./SourceFiles/apiwrap.h \
-	./SourceFiles/app.h \
-	./SourceFiles/application.h \
-	./SourceFiles/autoupdater.h \
-	./SourceFiles/config.h \
-	./SourceFiles/countries.h \
-	./SourceFiles/dialogswidget.h \
-	./SourceFiles/dropdown.h \
-	./SourceFiles/facades.h \
-	./SourceFiles/fileuploader.h \
-	./SourceFiles/history.h \
-	./SourceFiles/historywidget.h \
-	./SourceFiles/lang.h \
-	./SourceFiles/langloaderplain.h \
-	./SourceFiles/layerwidget.h \
-	./SourceFiles/layout.h \
-	./SourceFiles/mediaview.h \
-	./SourceFiles/observer_peer.h \
-	./SourceFiles/overviewwidget.h \
-	./SourceFiles/passcodewidget.h \
-	./SourceFiles/playerwidget.h \
-	./SourceFiles/localimageloader.h \
-	./SourceFiles/localstorage.h \
-	./SourceFiles/logs.h \
-	./SourceFiles/mainwidget.h \
-	./SourceFiles/settings.h \
-	./SourceFiles/shortcuts.h \
-	./SourceFiles/structs.h \
-	./SourceFiles/sysbuttons.h \
-	./SourceFiles/title.h \
-	./SourceFiles/mainwindow.h \
-	./SourceFiles/boxes/aboutbox.h \
-	./SourceFiles/boxes/abstractbox.h \
-	./SourceFiles/boxes/addcontactbox.h \
-	./SourceFiles/boxes/autolockbox.h \
-	./SourceFiles/boxes/backgroundbox.h \
-	./SourceFiles/boxes/confirmbox.h \
-	./SourceFiles/boxes/confirmphonebox.h \
-	./SourceFiles/boxes/connectionbox.h \
-	./SourceFiles/boxes/contactsbox.h \
-	./SourceFiles/boxes/downloadpathbox.h \
-	./SourceFiles/boxes/emojibox.h \
-	./SourceFiles/boxes/languagebox.h \
-	./SourceFiles/boxes/localstoragebox.h \
-	./SourceFiles/boxes/passcodebox.h \
-	./SourceFiles/boxes/photocropbox.h \
-	./SourceFiles/boxes/photosendbox.h \
-	./SourceFiles/boxes/report_box.h \
-	./SourceFiles/boxes/sessionsbox.h \
-	./SourceFiles/boxes/stickersetbox.h \
-	./SourceFiles/boxes/usernamebox.h \
-	./SourceFiles/core/basic_types.h \
-	./SourceFiles/core/click_handler.h \
-	./SourceFiles/core/click_handler_types.h \
-	./SourceFiles/core/lambda_wrap.h \
-	./SourceFiles/core/observer.h \
-	./SourceFiles/core/qthelp_regex.h \
-	./SourceFiles/core/qthelp_url.h \
-	./SourceFiles/core/vector_of_moveable.h \
-	./SourceFiles/core/version.h \
-	./SourceFiles/data/data_abstract_structure.h \
-	./SourceFiles/data/data_drafts.h \
-	./SourceFiles/dialogs/dialogs_common.h \
-	./SourceFiles/dialogs/dialogs_indexed_list.h \
-	./SourceFiles/dialogs/dialogs_layout.h \
-	./SourceFiles/dialogs/dialogs_list.h \
-	./SourceFiles/dialogs/dialogs_row.h \
-	./SourceFiles/history/field_autocomplete.h \
-	./SourceFiles/history/history_common.h \
-	./SourceFiles/history/history_service_layout.h \
-	./SourceFiles/inline_bots/inline_bot_layout_internal.h \
-	./SourceFiles/inline_bots/inline_bot_layout_item.h \
-	./SourceFiles/inline_bots/inline_bot_result.h \
-	./SourceFiles/inline_bots/inline_bot_send_data.h \
-	./SourceFiles/intro/introwidget.h \
-	./SourceFiles/intro/introcode.h \
-	./SourceFiles/intro/introphone.h \
-	./SourceFiles/intro/intropwdcheck.h \
-	./SourceFiles/intro/introsignup.h \
-	./SourceFiles/intro/introstart.h \
-	./SourceFiles/media/view/media_clip_controller.h \
-	./SourceFiles/media/view/media_clip_playback.h \
-	./SourceFiles/media/view/media_clip_volume_controller.h \
-	./SourceFiles/media/media_audio.h \
-	./SourceFiles/media/media_audio_ffmpeg_loader.h \
-	./SourceFiles/media/media_audio_loader.h \
-	./SourceFiles/media/media_audio_loaders.h \
-	./SourceFiles/media/media_child_ffmpeg_loader.h \
-	./SourceFiles/media/media_clip_ffmpeg.h \
-	./SourceFiles/media/media_clip_implementation.h \
-	./SourceFiles/media/media_clip_qtgif.h \
-	./SourceFiles/media/media_clip_reader.h \
-	./SourceFiles/mtproto/facade.h \
-	./SourceFiles/mtproto/auth_key.h \
-	./SourceFiles/mtproto/connection.h \
-	./SourceFiles/mtproto/connection_abstract.h \
-	./SourceFiles/mtproto/connection_auto.h \
-	./SourceFiles/mtproto/connection_http.h \
-	./SourceFiles/mtproto/connection_tcp.h \
-	./SourceFiles/mtproto/core_types.h \
-	./SourceFiles/mtproto/dcenter.h \
-	./SourceFiles/mtproto/file_download.h \
-	./SourceFiles/mtproto/rsa_public_key.h \
-	./SourceFiles/mtproto/rpc_sender.h \
-	./SourceFiles/mtproto/scheme_auto.h \
-	./SourceFiles/mtproto/session.h \
-	./SourceFiles/overview/overview_layout.h \
-	./SourceFiles/platform/platform_file_dialog.h \
-	./SourceFiles/platform/platform_main_window.h \
-	./SourceFiles/platform/linux/linux_gdk_helper.h \
-	./SourceFiles/platform/linux/linux_libs.h \
-	./SourceFiles/platform/linux/file_dialog_linux.h \
-	./SourceFiles/platform/linux/main_window_linux.h \
-	./SourceFiles/profile/profile_actions_widget.h \
-	./SourceFiles/profile/profile_block_widget.h \
-	./SourceFiles/profile/profile_cover_drop_area.h \
-	./SourceFiles/profile/profile_cover.h \
-	./SourceFiles/profile/profile_fixed_bar.h \
-	./SourceFiles/profile/profile_info_widget.h \
-	./SourceFiles/profile/profile_inner_widget.h \
-	./SourceFiles/profile/profile_invite_link_widget.h \
-	./SourceFiles/profile/profile_members_widget.h \
-	./SourceFiles/profile/profile_section_memento.h \
-	./SourceFiles/profile/profile_settings_widget.h \
-	./SourceFiles/profile/profile_shared_media_widget.h \
-	./SourceFiles/profile/profile_userpic_button.h \
-	./SourceFiles/profile/profile_widget.h \
-	./SourceFiles/pspecific.h \
-	./SourceFiles/serialize/serialize_common.h \
-	./SourceFiles/serialize/serialize_document.h \
-	./SourceFiles/settings/settings_advanced_widget.h \
-	./SourceFiles/settings/settings_background_widget.h \
-	./SourceFiles/settings/settings_block_widget.h \
-	./SourceFiles/settings/settings_chat_settings_widget.h \
-	./SourceFiles/settings/settings_cover.h \
-	./SourceFiles/settings/settings_fixed_bar.h \
-	./SourceFiles/settings/settings_general_widget.h \
-	./SourceFiles/settings/settings_info_widget.h \
-	./SourceFiles/settings/settings_inner_widget.h \
-	./SourceFiles/settings/settings_notifications_widget.h \
-	./SourceFiles/settings/settings_privacy_widget.h \
-	./SourceFiles/settings/settings_scale_widget.h \
-	./SourceFiles/settings/settings_widget.h \
-	./SourceFiles/ui/buttons/history_down_button.h \
-	./SourceFiles/ui/buttons/icon_button.h \
-	./SourceFiles/ui/buttons/left_outline_button.h \
-	./SourceFiles/ui/buttons/peer_avatar_button.h \
-	./SourceFiles/ui/buttons/round_button.h \
-	./SourceFiles/ui/effects/fade_animation.h \
-	./SourceFiles/ui/style/style_core.h \
-	./SourceFiles/ui/style/style_core_color.h \
-	./SourceFiles/ui/style/style_core_font.h \
-	./SourceFiles/ui/style/style_core_icon.h \
-	./SourceFiles/ui/style/style_core_types.h \
-	./SourceFiles/ui/text/text.h \
-	./SourceFiles/ui/text/text_block.h \
-	./SourceFiles/ui/text/text_entity.h \
-	./SourceFiles/ui/toast/toast.h \
-	./SourceFiles/ui/toast/toast_manager.h \
-	./SourceFiles/ui/toast/toast_widget.h \
-	./SourceFiles/ui/widgets/label_simple.h \
-	./SourceFiles/ui/widgets/widget_slide_wrap.h \
-	./SourceFiles/ui/animation.h \
-	./SourceFiles/ui/boxshadow.h \
-	./SourceFiles/ui/button.h \
-	./SourceFiles/ui/popupmenu.h \
-	./SourceFiles/ui/countryinput.h \
-	./SourceFiles/ui/emoji_config.h \
-	./SourceFiles/ui/filedialog.h \
-	./SourceFiles/ui/flatbutton.h \
-	./SourceFiles/ui/flatcheckbox.h \
-	./SourceFiles/ui/flatinput.h \
-	./SourceFiles/ui/flatlabel.h \
-	./SourceFiles/ui/flattextarea.h \
-	./SourceFiles/ui/images.h \
-	./SourceFiles/ui/inner_dropdown.h \
-	./SourceFiles/ui/scrollarea.h \
-	./SourceFiles/ui/twidget.h \
-	./SourceFiles/window/chat_background.h \
-	./SourceFiles/window/main_window.h \
-	./SourceFiles/window/section_memento.h \
-	./SourceFiles/window/section_widget.h \
-	./SourceFiles/window/slide_animation.h \
-	./SourceFiles/window/top_bar_widget.h
-
-win32 {
-SOURCES += \
-	./SourceFiles/pspecific_win.cpp \
-	./SourceFiles/platform/win/windows_app_user_model_id.cpp \
-	./SourceFiles/platform/win/windows_dlls.cpp \
-	./SourceFiles/platform/win/windows_event_filter.cpp \
-	./SourceFiles/platform/win/windows_toasts.cpp
-
-HEADERS += \
-	./SourceFiles/pspecific_win.h \
-	./SourceFiles/platform/win/windows_app_user_model_id.h \
-	./SourceFiles/platform/win/windows_dlls.h \
-	./SourceFiles/platform/win/windows_event_filter.h \
-	./SourceFiles/platform/win/windows_toasts.h
-}
-
-winrt {
-SOURCES += \
-	./SourceFiles/pspecific_winrt.cpp \
-	./SourceFiles/platform/winrt/main_window_winrt.cpp
-HEADERS += \
-	./SourceFiles/pspecific_winrt.h \
-	./Sourcefiles/platform/winrt/main_window_winrt.h
-}
-
-macx {
-SOURCES += \
-	./SourceFiles/pspecific_mac.cpp
-HEADERS += \
-	./SourceFiles/pspecific_mac.h
-OBJECTIVE_SOURCES += \
-	./SourceFiles/pspecific_mac_p.mm \
-	./SourceFiles/platform/mac/main_window_mac.mm
-HEADERS += \
-	./SourceFiles/pspecific_mac_p.h \
-	./SourceFiles/platform/mac/main_window_mac.h
-}
-
-SOURCES += \
-	./ThirdParty/minizip/zip.c \
-	./ThirdParty/minizip/ioapi.c
-
-CONFIG += precompile_header
-
-PRECOMPILED_HEADER = ./SourceFiles/stdafx.h
-
-QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-result -Wno-unused-parameter -Wno-unused-variable -Wno-switch -Wno-comment -Wno-unused-but-set-variable
-QMAKE_CFLAGS_WARN_ON += -Wno-unused-result -Wno-unused-parameter -Wno-unused-variable -Wno-switch -Wno-comment -Wno-unused-but-set-variable
-
-CONFIG(release, debug|release) {
-	QMAKE_CXXFLAGS_RELEASE -= -O2
-	QMAKE_CXXFLAGS_RELEASE += -Ofast -flto -fno-strict-aliasing -g
-	QMAKE_LFLAGS_RELEASE -= -O1
-	QMAKE_LFLAGS_RELEASE += -Ofast -flto -g -rdynamic -static-libstdc++
-}
-# Linux 32bit fails Release link with Link-Time Optimization: virtual memory exhausted
-unix {
-	!contains(QMAKE_TARGET.arch, x86_64) {
-		CONFIG(release, debug|release) {
-			QMAKE_CXXFLAGS_RELEASE -= -flto
-			QMAKE_LFLAGS_RELEASE -= -flto
-		}
-	}
-}
-CONFIG(debug, debug|release) {
-	QMAKE_LFLAGS_DEBUG += -g -rdynamic -static-libstdc++
-}
-
-include(qt_static.pri)
-
-INCLUDEPATH += \
-	./SourceFiles\
-	./GeneratedFiles\
-	./ThirdParty/minizip\
-	./../../Libraries/breakpad/src
-
-CONFIG += link_pkgconfig
-PKG_CONFIG = $$pkgConfigExecutable()
-
-# include dirs only
-QMAKE_CXXFLAGS += `$$PKG_CONFIG --cflags appindicator-0.1`
-QMAKE_CXXFLAGS += `$$PKG_CONFIG --cflags gtk+-2.0`
-QMAKE_CXXFLAGS += `$$PKG_CONFIG --cflags glib-2.0`
-QMAKE_CXXFLAGS += `$$PKG_CONFIG --cflags dee-1.0`
-
-# include dirs and libraries
-PKGCONFIG += \
-	x11\
-	xi\
-	xext\
-# In order to work libxkbcommon must be linked statically,
-# PKGCONFIG links it like "-L/usr/local/lib -lxkbcommon"
-# which makes a dynamic link which leads to segfault in
-# QApplication() -> createPlatformIntegration -> QXcbIntegrationPlugin::create
-	#xkbcommon\
-	openal\
-	libavformat\
-	libavcodec\
-	libswresample\
-	libswscale\
-	libavutil\
-	opus\
-	libva\
-	libssl\
-	libcrypto\
-	zlib\
-	liblzma
-
-LIBS += -ldl
-
-LIBS += $${QT_TDESKTOP_PATH}/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.a \
-        $${QT_TDESKTOP_PATH}/plugins/platforminputcontexts/libibusplatforminputcontextplugin.a \
-        $${QT_TDESKTOP_PATH}/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.a
-
-LIBS += ./../../../Libraries/breakpad/src/client/linux/libbreakpad_client.a
-
-# In order to work libxkbcommon must be linked statically,
-# PKGCONFIG links it like "-L/usr/local/lib -lxkbcommon"
-# which makes a dynamic link which leads to segfault in
-# QApplication() -> createPlatformIntegration -> QXcbIntegrationPlugin::create
-LIBS += /usr/local/lib/libxkbcommon.a
-
-RESOURCES += \
-	./Resources/telegram.qrc \
-	./Resources/telegram_linux.qrc \
-	./Resources/telegram_emojis.qrc
-
-OTHER_FILES += \
-	./Resources/basic_types.style \
-	./Resources/basic.style \
-	./Resources/all_files.style \
-	./Resources/langs/lang.strings \
-	./Resources/langs/lang_it.strings \
-	./Resources/langs/lang_es.strings \
-	./Resources/langs/lang_de.strings \
-	./Resources/langs/lang_nl.strings \
-	./Resources/langs/lang_pt_BR.strings \
-	./SourceFiles/dialogs/dialogs.style \
-	./SourceFiles/history/history.style \
-	./SourceFiles/media/view/mediaview.style \
-	./SourceFiles/overview/overview.style \
-	./SourceFiles/profile/profile.style \
-	./SourceFiles/ui/widgets/widgets.style
diff --git a/Telegram/Updater.pro b/Telegram/Updater.pro
deleted file mode 100644
index 2d3764e3a..000000000
--- a/Telegram/Updater.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = app
-CONFIG += console
-CONFIG -= app_bundle
-CONFIG -= qt
-
-SOURCES += ./SourceFiles/_other/updater_linux.cpp
-
-CONFIG(debug, debug|release) {
-    DEFINES += _DEBUG
-    OBJECTS_DIR = ./../DebugIntermediateUpdater
-    DESTDIR = ./../Debug
-}
-CONFIG(release, debug|release) {
-    DEFINES += CUSTOM_API_ID
-    OBJECTS_DIR = ./../ReleaseIntermediateUpdater
-    DESTDIR = ./../Release
-}
diff --git a/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro b/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro
deleted file mode 100644
index a3927f5a6..000000000
--- a/Telegram/build/qmake/codegen_numbers/codegen_numbers.pro
+++ /dev/null
@@ -1,45 +0,0 @@
-QT += core gui
-
-TARGET = codegen_numbers
-CONFIG += console static c++14
-CONFIG -= app_bundle
-
-CONFIG(debug, debug|release) {
-    OBJECTS_DIR = ./
-    DESTDIR = ./../../../codegen/Debug
-}
-CONFIG(release, debug|release) {
-    OBJECTS_DIR = ./
-    DESTDIR = ./../../../codegen/Release
-}
-
-INCLUDEPATH += ./../../../SourceFiles
-
-QMAKE_CFLAGS_WARN_ON += -Wno-missing-field-initializers
-QMAKE_CXXFLAGS_WARN_ON += -Wno-missing-field-initializers
-
-TEMPLATE = app
-
-SOURCES += \
-./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp \
-./../../../SourceFiles/codegen/common/checked_utf8_string.cpp \
-./../../../SourceFiles/codegen/common/clean_file.cpp \
-./../../../SourceFiles/codegen/common/cpp_file.cpp \
-./../../../SourceFiles/codegen/common/logging.cpp \
-./../../../SourceFiles/codegen/numbers/generator.cpp \
-./../../../SourceFiles/codegen/numbers/main.cpp \
-./../../../SourceFiles/codegen/numbers/options.cpp \
-./../../../SourceFiles/codegen/numbers/parsed_file.cpp \
-./../../../SourceFiles/codegen/numbers/processor.cpp
-
-HEADERS += \
-./../../../SourceFiles/codegen/common/basic_tokenized_file.h \
-./../../../SourceFiles/codegen/common/checked_utf8_string.h \
-./../../../SourceFiles/codegen/common/clean_file.h \
-./../../../SourceFiles/codegen/common/clean_file_reader.h \
-./../../../SourceFiles/codegen/common/cpp_file.h \
-./../../../SourceFiles/codegen/common/logging.h \
-./../../../SourceFiles/codegen/numbers/generator.h \
-./../../../SourceFiles/codegen/numbers/options.h \
-./../../../SourceFiles/codegen/numbers/parsed_file.h \
-./../../../SourceFiles/codegen/numbers/processor.h
diff --git a/Telegram/build/qmake/codegen_style/codegen_style.pro b/Telegram/build/qmake/codegen_style/codegen_style.pro
deleted file mode 100644
index 9b5f4405d..000000000
--- a/Telegram/build/qmake/codegen_style/codegen_style.pro
+++ /dev/null
@@ -1,51 +0,0 @@
-QT += core gui
-
-TARGET = codegen_style
-CONFIG += console static c++14
-CONFIG -= app_bundle
-
-CONFIG(debug, debug|release) {
-    OBJECTS_DIR = ./
-    DESTDIR = ./../../../codegen/Debug
-}
-CONFIG(release, debug|release) {
-    OBJECTS_DIR = ./
-    DESTDIR = ./../../../codegen/Release
-}
-
-INCLUDEPATH += ./../../../SourceFiles
-
-QMAKE_CFLAGS_WARN_ON += -Wno-missing-field-initializers
-QMAKE_CXXFLAGS_WARN_ON += -Wno-missing-field-initializers
-
-TEMPLATE = app
-
-SOURCES += \
-./../../../SourceFiles/codegen/common/basic_tokenized_file.cpp \
-./../../../SourceFiles/codegen/common/checked_utf8_string.cpp \
-./../../../SourceFiles/codegen/common/clean_file.cpp \
-./../../../SourceFiles/codegen/common/cpp_file.cpp \
-./../../../SourceFiles/codegen/common/logging.cpp \
-./../../../SourceFiles/codegen/style/generator.cpp \
-./../../../SourceFiles/codegen/style/main.cpp \
-./../../../SourceFiles/codegen/style/module.cpp \
-./../../../SourceFiles/codegen/style/options.cpp \
-./../../../SourceFiles/codegen/style/parsed_file.cpp \
-./../../../SourceFiles/codegen/style/processor.cpp \
-./../../../SourceFiles/codegen/style/sprite_generator.cpp \
-./../../../SourceFiles/codegen/style/structure_types.cpp
-
-HEADERS += \
-./../../../SourceFiles/codegen/common/basic_tokenized_file.h \
-./../../../SourceFiles/codegen/common/checked_utf8_string.h \
-./../../../SourceFiles/codegen/common/clean_file.h \
-./../../../SourceFiles/codegen/common/clean_file_reader.h \
-./../../../SourceFiles/codegen/common/cpp_file.h \
-./../../../SourceFiles/codegen/common/logging.h \
-./../../../SourceFiles/codegen/style/generator.h \
-./../../../SourceFiles/codegen/style/module.h \
-./../../../SourceFiles/codegen/style/options.h \
-./../../../SourceFiles/codegen/style/parsed_file.h \
-./../../../SourceFiles/codegen/style/processor.h \
-./../../../SourceFiles/codegen/style/sprite_generator.h \
-./../../../SourceFiles/codegen/style/structure_types.h
diff --git a/Telegram/qt_static.pri b/Telegram/qt_static.pri
deleted file mode 100644
index 4cbcf7b5e..000000000
--- a/Telegram/qt_static.pri
+++ /dev/null
@@ -1,26 +0,0 @@
-QT_TDESKTOP_VERSION_DEFAULT = 5.6.0
-QT_TDESKTOP_PATH_DEFAULT = /usr/local/tdesktop/Qt-$${QT_TDESKTOP_VERSION_DEFAULT}
-
-QT_TDESKTOP_PATH = $${QT_TDESKTOP_PATH}
-isEmpty(QT_TDESKTOP_PATH) {
-    QT_TDESKTOP_PATH = $$(QT_TDESKTOP_PATH)
-    isEmpty(QT_TDESKTOP_PATH) {
-        message(QT_TDESKTOP_PATH is not set. Using default value $${QT_TDESKTOP_PATH_DEFAULT})
-        QT_TDESKTOP_PATH = $${QT_TDESKTOP_PATH_DEFAULT}
-    }
-}
-
-QT_TDESKTOP_VERSION = $${QT_TDESKTOP_VERSION}
-isEmpty(QT_TDESKTOP_VERSION) {
-    QT_TDESKTOP_VERSION = $$(QT_TDESKTOP_VERSION)
-    isEmpty(QT_TDESKTOP_VERSION) {
-        message(QT_TDESKTOP_VERSION is not set. Using default value $${QT_TDESKTOP_VERSION_DEFAULT})
-        QT_TDESKTOP_VERSION = $${QT_TDESKTOP_VERSION_DEFAULT}
-    }
-}
-
-INCLUDEPATH += $${QT_TDESKTOP_PATH}/include/QtGui/$${QT_TDESKTOP_VERSION}/QtGui \
-               $${QT_TDESKTOP_PATH}/include/QtCore/$${QT_TDESKTOP_VERSION}/QtCore \
-               $${QT_TDESKTOP_PATH}/include/QtCore/$${QT_TDESKTOP_VERSION} \
-               $${QT_TDESKTOP_PATH}/include
-
diff --git a/doc/building-cmake.md b/doc/building-cmake.md
new file mode 100644
index 000000000..e37c6b73c
--- /dev/null
+++ b/doc/building-cmake.md
@@ -0,0 +1,193 @@
+##Build instructions for GYP/CMake under Ubuntu 12.04
+
+###Prepare
+
+* Install git by command **sudo apt-get install git** in Terminal
+* Install g++ by command **sudo apt-get install g++** in Terminal
+
+You need to install g++ version 4.9 manually by such commands
+
+* sudo add-apt-repository ppa:ubuntu-toolchain-r/test
+* sudo apt-get update
+* sudo apt-get install gcc-4.9 g++-4.9
+* sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 21
+* sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 21
+
+###Prepare folder
+
+Choose a folder for the future build, for example **/home/user/TBuild** There you will have two folders, **Libraries** for third-party libs and **tdesktop** (or **tdesktop-master**) for the app.
+
+###Clone source code
+
+By git – in Terminal go to **/home/user/TBuild** and run
+
+    git clone https://github.com/telegramdesktop/tdesktop.git
+
+or download in ZIP and extract to **/home/user/TBuild** rename **tdesktop-master** to **tdesktop**
+
+###Prepare libraries
+
+Install dev libraries
+
+    sudo apt-get install libexif-dev liblzma-dev libz-dev libssl-dev libappindicator-dev libunity-dev
+
+####zlib 1.2.8
+
+http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip)
+
+Extract to **/home/user/TBuild/Libraries**
+
+#####Building library
+
+In Terminal go to **/home/user/TBuild/Libraries/zlib-1.2.8** and run:
+
+        ./configure
+        make
+        sudo make install
+
+Install audio libraries
+
+####Opus codec 1.1
+
+Download [opus-1.1 sources](http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz) from http://www.opus-codec.org/downloads, extract to **/home/user/TBuild/Libraries**, go to **/home/user/TBuild/Libraries/opus-1.1** and run
+
+    ./configure
+    make
+    sudo make install
+
+####FFmpeg
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone git://anongit.freedesktop.org/git/libva
+    cd libva
+    ./autogen.sh --enable-static
+    make
+    sudo make install
+    cd ..
+
+    git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg
+    cd ffmpeg
+    git checkout release/3.1
+
+    sudo apt-get update
+    sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev
+    sudo apt-get install yasm
+
+    ./configure --prefix=/usr/local --disable-programs --disable-doc --disable-everything --enable-protocol=file --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
+    sudo make install
+
+####PortAudio 19
+
+[Download portaudio sources](http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz) from **http://www.portaudio.com/download.html**, extract to **/home/user/TBuild/Libraries**, go to **/home/user/TBuild/Libraries/portaudio** and run
+
+    ./configure
+    make
+    sudo make install
+
+####OpenAL Soft
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone git://repo.or.cz/openal-soft.git
+
+then go to **/home/user/TBuild/Libraries/openal-soft/build** and run
+
+    sudo apt-get install cmake
+    cmake -D LIBTYPE:STRING=STATIC ..
+    make
+    sudo make install
+
+####OpenSSL
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone https://github.com/openssl/openssl
+    cd openssl
+    git checkout OpenSSL_1_0_1-stable
+    ./config
+    make
+    sudo make install
+
+####libxkbcommon (required for Fcitx Qt plugin)
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    sudo apt-get install xutils-dev bison python-xcbgen
+    git clone https://github.com/xkbcommon/libxkbcommon.git
+    cd libxkbcommon
+    ./autogen.sh --disable-x11
+    make
+    sudo make install
+
+####Qt 5.6.0, slightly patched
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone git://code.qt.io/qt/qt5.git qt5_6_0
+    cd qt5_6_0
+    git checkout 5.6
+    perl init-repository --module-subset=qtbase,qtimageformats
+    git checkout v5.6.0
+    cd qtimageformats && git checkout v5.6.0 && cd ..
+    cd qtbase && git checkout v5.6.0 && cd ..
+
+#####Apply the patch
+
+    cd qtbase && git apply ../../../tdesktop/Telegram/Patches/qtbase_5_6_0.diff && cd ..
+
+#####Building library
+
+Install some packages for Qt (see **/home/user/TBuild/Libraries/qt5_6_0/qtbase/src/plugins/platforms/xcb/README**)
+
+    sudo apt-get install libxcb1-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-render-util0-dev libxcb-util0-dev libxrender-dev libasound-dev libpulse-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-randr0-dev libx11-xcb-dev libffi-dev
+
+In Terminal go to **/home/user/TBuild/Libraries/qt5_6_0** and there run
+
+    OPENSSL_LIBS='-L/usr/local/ssl/lib -lssl -lcrypto' ./configure -prefix "/usr/local/tdesktop/Qt-5.6.0" -release -force-debug-info -opensource -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -qt-pcre -qt-xcb -qt-xkbcommon-x11 -no-opengl -no-gtkstyle -static -openssl-linked -nomake examples -nomake tests
+    make -j4
+    sudo make install
+
+building (**make** command) will take really long time.
+
+####Google Breakpad
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone https://chromium.googlesource.com/breakpad/breakpad
+    git clone https://chromium.googlesource.com/linux-syscall-support breakpad/src/third_party/lss
+    cd breakpad
+    ./configure
+    make
+    sudo make install
+
+####GYP and CMake
+
+In Terminal go to **/home/user/TBuild/Libraries** and run
+
+    git clone https://chromium.googlesource.com/external/gyp
+    wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
+    tar -xf cmake-3.6.2.tar.gz
+    cd gyp
+    git apply ../../tdesktop/Telegram/Patches/gyp.diff
+    cd ../cmake-3.6.2
+    ./configure
+    make
+
+###Building Telegram Desktop
+
+In Terminal go to **/home/user/TBuild/tdesktop/Telegram** and run
+
+    gyp/refresh.sh
+
+To make Debug version go to **/home/user/TBuild/tdesktop/out/Debug** and run
+
+    make
+
+To make Release version go to **/home/user/TBuild/tdesktop/out/Release** and run
+
+    make
+
+You can debug your builds from Qt Creator, just open **CMakeLists.txt** from **/home/user/TBuild/tdesktop/out/Debug** and start debug.
diff --git a/doc/building-qmake.md b/doc/building-qmake.md
index 9ed511ade..0cfd9db40 100644
--- a/doc/building-qmake.md
+++ b/doc/building-qmake.md
@@ -1,6 +1,8 @@
 Building via qmake
 ==================
 
+**NB** These are outdated, please refer to [Building using GYP/CMake][cmake] instructions.
+
 The following commands assume the following environment variables are set:
 
  * `$srcdir`: The directory into which the source has been downloaded and
@@ -133,3 +135,4 @@ In case these instructions are at some point out of date, the above may serve
 as an update reference.
 
 [arch-package]: https://aur.archlinux.org/packages/telegram-desktop/
+[cmake]: building-cmake.md
diff --git a/doc/building-qtcreator.md b/doc/building-qtcreator.md
index afb7e60de..3549dbe9d 100644
--- a/doc/building-qtcreator.md
+++ b/doc/building-qtcreator.md
@@ -1,5 +1,7 @@
 ##Build instructions for Qt Creator 3.5.1 under Ubuntu 12.04
 
+**NB** These are outdated, please refer to [Building using GYP/CMake][cmake] instructions.
+
 ###Prepare
 
 * Install git by command **sudo apt-get install git** in Terminal
diff --git a/doc/building-xcode-old.md b/doc/building-xcode-old.md
index 43ee4082e..313471146 100644
--- a/doc/building-xcode-old.md
+++ b/doc/building-xcode-old.md
@@ -1,5 +1,7 @@
 ##Build instructions for Xcode 7.2.1
 
+**NB** These are outdated, please refer to [Building using Xcode][xcode] instructions.
+
 ###Prepare folder
 
 Choose a folder for the future build, for example **/Users/user/TBuild** There you will have two folders, **Libraries** for third-party libs and **tdesktop** (or **tdesktop-master**) for the app.
@@ -199,3 +201,5 @@ building (**make** command) will take really long time.
 * Open Telegram.xcodeproj and build for Debug
 * Build Updater target as well, it is required for Telegram relaunch
 * Release Telegram build will require removing **CUSTOM_API_ID** definition in Telegram target settings (Apple LLVM 6.1 - Custom Compiler Flags > Other C / C++ Flags > Release)
+
+[xcode]: building-xcode.md
diff --git a/doc/building-xcode.md b/doc/building-xcode.md
index 929da9e6e..f5c6b36eb 100644
--- a/doc/building-xcode.md
+++ b/doc/building-xcode.md
@@ -18,8 +18,6 @@ or:
 * download in ZIP and extract to **/Users/user/TBuild**
 * rename **tdesktop-master** to **tdesktop**.
 
-The path to Telegram.xcodeproj should now be: **/Users/user/TBuild/tdesktop/Telegram/Telegram.xcodeproj**
-
 ###Prepare libraries
 
 In your build Terminal run:
@@ -248,11 +246,18 @@ In Terminal go to **/Users/user/TBuild/Libraries** and run:
     build/gyp_crashpad.py -Dmac_deployment_target=10.8
     ninja -C out/Release
 
+####Prepare GYP
+
+In Terminal go to **/Users/user/TBuild/Libraries** and run
+
+    git clone https://chromium.googlesource.com/external/gyp
+    cd gyp
+    git apply ../../tdesktop/Telegram/Patches/gyp.diff
+
 ###Building Telegram Desktop
 
-* Launch Xcode, all projects will be taken from **/Users/user/TBuild/tdesktop/Telegram**
-* Open MetaEmoji.xcodeproj and build for Debug (Release optionally)
-* Open MetaLang.xcodeproj and build for Debug (Release optionally)
-* Open Telegram.xcodeproj and build for Debug
-* Build Updater target as well, it is required for Telegram relaunch
-* Release Telegram build will require removing **CUSTOM_API_ID** definition in Telegram target settings (Apple LLVM 6.1 - Custom Compiler Flags > Other C / C++ Flags > Release)
+In Terminal go to **/home/user/TBuild/tdesktop/Telegram** and run
+
+    gyp/refresh.sh
+
+Then launch Xcode, open **/Users/user/TBuild/tdesktop/Telegram.xcodeproj** and build for Debug / Release.