Merge branch 'master' into games

Conflicts:
	Telegram/Telegram.pro
This commit is contained in:
John Preston 2016-09-12 16:35:17 +03:00
commit 86982da5f7
45 changed files with 861 additions and 1056 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -1,5 +1,33 @@
diff --git a/pylib/gyp/generator/cmake.py b/pylib/gyp/generator/cmake.py
index a2b9629..68d7020 100644
--- a/pylib/gyp/generator/cmake.py
+++ b/pylib/gyp/generator/cmake.py
@@ -1070,6 +1070,23 @@ def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use,
output.write(')\n')
+ # Precompile header
+ precompiled_header = config.get('cmake_precompiled_header', '')
+ if precompiled_header:
+ precompiled_header_script = config.get('cmake_precompiled_header_script', '')
+ if not precompiled_header_script:
+ print ('ERROR: cmake_precompiled_header requires cmake_precompiled_header_script')
+ cmake_precompiled_header = NormjoinPath(path_from_cmakelists_to_gyp, precompiled_header)
+ cmake_precompiled_header_script = NormjoinPathForceCMakeSource(path_from_cmakelists_to_gyp, precompiled_header_script)
+ output.write('include(')
+ output.write(cmake_precompiled_header_script)
+ output.write(')\n')
+ output.write('add_precompiled_header(')
+ output.write(cmake_target_name)
+ output.write(' ')
+ output.write(cmake_precompiled_header)
+ output.write(')\n')
+
UnsetVariable(output, 'TOOLSET')
UnsetVariable(output, 'TARGET')
diff --git a/pylib/gyp/generator/xcode.py b/pylib/gyp/generator/xcode.py
index 0e3fb93..0679660 100644
index db99d6a..f8398cc 100644
--- a/pylib/gyp/generator/xcode.py
+++ b/pylib/gyp/generator/xcode.py
@@ -72,6 +72,10 @@ generator_additional_non_configuration_keys = [
@ -13,7 +41,7 @@ index 0e3fb93..0679660 100644
'mac_bundle',
'mac_bundle_resources',
'mac_framework_headers',
@@ -761,6 +765,26 @@ def GenerateOutput(target_list, target_dicts, data, params):
@@ -772,6 +776,26 @@ def GenerateOutput(target_list, target_dicts, data, params):
xcode_targets[qualified_target] = xct
xcode_target_to_target_dict[xct] = spec

View File

@ -948,7 +948,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram Desktop was updated to version {version}\n\n{changes}\n\nFull version history is available here:\n{link}";
"lng_new_version_minor" = "— Bug fixes and other minor improvements";
"lng_new_version_text" = "— Trending stickers. Check out and install noteworthy sticker packs from the new tab in Settings.\n— Archived stickers. Unused stickers are now archived automatically when you go over the 200 limit.\n— Group previews. Preview groups before joining them via invite link see who else is in the group before joining.\n— New internal video player.\n— Improved design for chats.";
"lng_new_version_text" = "— New cute design for the Settings page\n— Bug fixes and other minor improvements";
"lng_menu_insert_unicode" = "Insert Unicode control character";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "Profilbild festlegen";
"lng_settings_crop_profile" = "Sichtbaren Bereich für Bild wählen";
"lng_settings_uploading_photo" = "Bild wird geladen...";
"lng_settings_edit" = "Bearbeiten";
"lng_settings_drop_area_subtitle" = "um es als dein Bild auszuwählen";
"lng_username_title" = "Benutzername";
"lng_username_about" = "Wähle einen (optionalen) öffentlichen \nBenutzernamen, wenn du von anderen \ngefunden werden willst, ohne, dass sie \ndeine Nummer kennen müssen.\n\nErlaubt sind a-z, 0-9 und Unterstriche. \nDie Mindestlänge beträgt 5 Zeichen.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "Dieser Link öffnet einen Chat mit dir:";
"lng_username_copied" = "Link in die Zwischenablage kopiert.";
"lng_settings_section_contact_info" = "Kontaktprofil";
"lng_settings_section_info" = "Info";
"lng_settings_phone_number" = "Telefonnummer:";
"lng_settings_username" = "Benutzername:";
"lng_settings_choose_username" = "Benutzername wählen";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "Sprache ändern";
"lng_languages" = "Sprachen";
"lng_sure_save_language" = "Telegram wird neugestartet, um in der neuen Sprache angezeigt werden zu können";
"lng_settings_auto_update" = "Auto-Updates";
"lng_settings_update_automatically" = "Automatisch aktualisieren (v{version})";
"lng_settings_current_version" = "Version {version}";
"lng_settings_check_now" = "Auf Updates prüfen";
"lng_settings_update_checking" = "Prüfe auf Updates...";
@ -264,10 +267,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_auto_start" = "Telegram beim Systemstart ausführen";
"lng_settings_start_min" = "Minimiert starten";
"lng_settings_add_sendto" = "Telegram in den Explorer einbinden";
"lng_settings_scale_label" = "Größe ändern";
"lng_settings_section_scale" = "Größe ändern";
"lng_settings_scale_auto" = "Auto ({cur})";
"lng_settings_section_chat" = "Chat-Optionen";
"lng_settings_section_chat_settings" = "Chat-Einstellungen";
"lng_settings_replace_emojis" = "Emoji ersetzen";
"lng_settings_view_emojis" = "Liste anzeigen";
"lng_settings_emoji_list" = "Unterstützte Emoji";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "Geleert!";
"lng_download_path_clear_failed" = "Ein Fehler ist aufgetreten :(";
"lng_settings_section_cache" = "Lokaler Cache";
"lng_settings_section_privacy" = "Privatsphäre und Sicherheit";
"lng_local_storage_title" = "Lokaler Cache";
"lng_settings_no_data_cached" = "Keine temporären Daten!";
"lng_settings_images_cached" = "{count:_not_used_|# Bild|# Bilder}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|# Sprachnachricht|# Sprachnachrichten}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "Alles entfernt!";
"lng_local_storage_clear_failed" = "Ein Fehler ist aufgetreten :(";
"lng_settings_section_advanced" = "Erweitert";
"lng_settings_section_advanced_settings" = "Erweiterte Einstellungen";
"lng_passcode_remove_button" = "Entfernen";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "Dieses Gerät wirklich abmelden?";
"lng_settings_reset_button" = "Beenden";
"lng_settings_reset_done" = "Alle anderen Sitzungen wurden erfolgreich beendet.";
"lng_settings_manage_local_storage" = "Lokalen Cache verwalten";
"lng_settings_ask_question" = "Eine Frage stellen";
"lng_settings_ask_sure" = "Bedenke bitte, dass der Telegram Support von ehrenamtlichen Helfern betreut wird.\n\nKennst du schon die Telegram FAQ? Dort findest du Antworten auf die am häufigsten gestellten Fragen.";
"lng_settings_faq_button" = "FAQ öffnen";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "Dieser Kanal ist nicht zugänglich";
"lng_group_not_accessible" = "Diese Gruppe ist nicht zugänglich.";
"lng_channels_too_much_public_existing" = "Du hast bereits zuviele öffentliche Kanäle erstellt. Zuerst musst du einen löschen.";
"lng_channels_too_much_public" = "Du hast zuviele öffentliche Kanäle erstellt.\n\nErstelle entweder einen privaten Kanal\noder lösche einen der öffentlichen Kanäle.";
"lng_channels_too_much_public_about" = "Du bereits zu viele öffentliche Benutzernamen reserviert. Du kannst jederzeit einen bestehenden Benutzernamen von deinen Gruppen oder Kanälen entfernen.";
"lng_channels_too_much_public_revoke_confirm_group" = "Link {link} wirklich widerrufen?\n\nDie Gruppe «{group}» wird dann nicht mehr öffentlich sein.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Link {link} wirklich widerrufen?\n\nDer Kanal «{group}» wird dann nicht mehr öffentlich sein.";
"lng_channels_too_much_public_revoke" = "Widerrufen";
"lng_group_invite_bad_link" = "Der Einladungslink ist nicht mehr gültig.";
"lng_group_invite_want_join" = "Möchtest du der Gruppe «{title}» beitreten?";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram Desktop wurde aktualisiert auf Version {version}\n\n{changes}\n\nGesamter Versionsverlauf:\n{link}";
"lng_new_version_minor" = "— Fehlerbehebungen und Softwareoptimierungen";
"lng_new_version_text" = "— Angesagte Sticker: In den Einstellungen, im Bereich Sticker, stehen interessante Stickerpakete bereit.\n— Archivierte Sticker: Unbenutze Sticker werden automatisch archiviert, sobald das Limit (200) erreicht wird.\n— Gruppenvorschau: Vor dem Betreten der Gruppe wird dir angezeigt, wer bereits Mitglied ist.\n— Neuer interner Videoplayer.\n— Verbessertes Chatdesign.";
"lng_new_version_text" = "— Die Einstellungen ab sofort in neuer Optik\n— Fehlerbehebungen und kleinere Verbesserungen";
"lng_menu_insert_unicode" = "Unicode-Steuerzeichen einfügen";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "Poner foto de perfil";
"lng_settings_crop_profile" = "Selecciona el área para tu foto de perfil";
"lng_settings_uploading_photo" = "Subiendo foto...";
"lng_settings_edit" = "Editar";
"lng_settings_drop_area_subtitle" = "para ponerla como tu foto";
"lng_username_title" = "Alias";
"lng_username_about" = "Puedes elegir un alias en Telegram. \nSi lo haces, otras personas te podrán \nencontrar por ese alias y contactarte \nsin saber tu número de teléfono.\n\nPuedes usar a-z, 0-9 y guiones bajos.\nLa longitud mínima es de 5 caracteres.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "Este enlace abre un chat contigo:";
"lng_username_copied" = "Enlace copiado al portapapeles.";
"lng_settings_section_contact_info" = "Información";
"lng_settings_section_info" = "Información";
"lng_settings_phone_number" = "Número de teléfono:";
"lng_settings_username" = "Alias:";
"lng_settings_choose_username" = "Elige un alias";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "Cambiar idioma";
"lng_languages" = "Idiomas";
"lng_sure_save_language" = "Telegram se reiniciará para cambiar el idioma";
"lng_settings_auto_update" = "Actualizar automáticamente";
"lng_settings_update_automatically" = "Actualizar automáticamente (ver. {version})";
"lng_settings_current_version" = "Versión {version}";
"lng_settings_check_now" = "Buscar actualizaciones";
"lng_settings_update_checking" = "Buscando actualizaciones...";
@ -264,10 +267,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_auto_start" = "Abrir Telegram cuando el sistema inicie";
"lng_settings_start_min" = "Abrir minimizada";
"lng_settings_add_sendto" = "Poner Telegram en el menú «Enviar a»";
"lng_settings_scale_label" = "Escala de la interfaz";
"lng_settings_section_scale" = "Escala de la interfaz";
"lng_settings_scale_auto" = "Automático ({cur})";
"lng_settings_section_chat" = "Opciones de chat";
"lng_settings_section_chat_settings" = "Ajustes de chat";
"lng_settings_replace_emojis" = "Reemplazar emojis";
"lng_settings_view_emojis" = "Ver lista";
"lng_settings_emoji_list" = "Emojis soportados";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "¡Borrado!";
"lng_download_path_clear_failed" = "Borrado fallido :(";
"lng_settings_section_cache" = "Almacenamiento local";
"lng_settings_section_privacy" = "Privacidad y seguridad";
"lng_local_storage_title" = "Almacenamiento local";
"lng_settings_no_data_cached" = "¡No se encontraron datos en la caché!";
"lng_settings_images_cached" = "{count:_not_used_|# imagen|# imágenes}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|# mensaje de voz|# mensajes de voz}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "¡Borrado!";
"lng_local_storage_clear_failed" = "Borrado fallido :(";
"lng_settings_section_advanced" = "Avanzado";
"lng_settings_section_advanced_settings" = "Ajustes avanzados";
"lng_passcode_remove_button" = "Quitar";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "¿Quieres cerrar esta sesión?";
"lng_settings_reset_button" = "Cerrar";
"lng_settings_reset_done" = "Se cerraron las otras sesiones";
"lng_settings_manage_local_storage" = "Administrar almacenamiento local";
"lng_settings_ask_question" = "Hacer una pregunta";
"lng_settings_ask_sure" = "Por favor, considera que el soporte de Telegram está hecho por voluntarios. Respondemos lo antes posible, pero puede tomar tiempo.\n\nPuedes mirar las preguntas frecuentes de Telegram: tienen soluciones a problemas y respuestas para muchas preguntas.";
"lng_settings_faq_button" = "Ir a preguntas";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "Lo sentimos, este canal no es accesible.";
"lng_group_not_accessible" = "Lo sentimos, este grupo no es accesible.";
"lng_channels_too_much_public_existing" = "Lo sentimos, has creado muchos canales públicos. Por favor, elimina uno primero.";
"lng_channels_too_much_public" = "Lo sentimos, has creado muchos canales públicos. \n\nPuedes crear un canal privado o eliminar \nuno de los públicos primero.";
"lng_channels_too_much_public_about" = "Lo sentimos, has reservado demasiados alias públicos. Puedes anular el enlace de uno de tus grupos o canales más viejos. ";
"lng_channels_too_much_public_revoke_confirm_group" = "¿Quieres anular el enlace {link}?\n\nEl grupo «{group}» pasará a ser privado.";
"lng_channels_too_much_public_revoke_confirm_channel" = "¿Quieres anular el enlace {link}?\n\nEl canal «{group}» pasará a ser privado.";
"lng_channels_too_much_public_revoke" = "Anular";
"lng_group_invite_bad_link" = "El enlace de invitación está roto o ha expirado.";
"lng_group_invite_want_join" = "¿Quieres unirte al grupo «{title}»?";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram Desktop ha sido actualizada a la versión {version}\n\n{changes}\n\nEl historial completo está disponible aquí:\n{link}";
"lng_new_version_minor" = "— Corrección de errores y otras mejoras menores";
"lng_new_version_text" = "— Stickers destacados. Mira e instala packs de stickers desde la nueva pestaña en Ajustes.\n— Stickers archivados. Ahora, los packs de stickers que no usas, se archivan automáticamente cuando superas el límite de 200.\n— Vista previa de grupos. Mira un grupo antes de unirte a él a través del enlace de invitación. Mira quién está en el grupo antes de unirte.\n— Nuevo reproductor interno de vídeo.\n— Diseño mejorado de chats.";
"lng_new_version_text" = "— Nuevo diseño para la ventana de Ajustes\n— Corrección de errores y otras mejoras menores";
"lng_menu_insert_unicode" = "Insertar caracteres de control Unicode";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "Imposta foto profilo";
"lng_settings_crop_profile" = "Seleziona un riquadro per la tua foto profilo";
"lng_settings_uploading_photo" = "Carico foto...";
"lng_settings_edit" = "Modifica";
"lng_settings_drop_area_subtitle" = "per impostarla come foto profilo";
"lng_username_title" = "Username";
"lng_username_about" = "Puoi scegliere un username su Telegram.\nSe lo fai, le altre persone potranno trovarti\ntramite questo username e contattarti \nsenza conoscere il tuo numero di telefono.\n\nPuoi usare a-z, 0-9 e underscore.\nLa lunghezza minima è di 5 caratteri.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "Questo link apre una chat con te:";
"lng_username_copied" = "Link copiato negli appunti.";
"lng_settings_section_contact_info" = "Info contatto";
"lng_settings_section_info" = "Info";
"lng_settings_phone_number" = "Numero di telefono:";
"lng_settings_username" = "Username:";
"lng_settings_choose_username" = "Scegli username";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "Cambia lingua";
"lng_languages" = "Lingue";
"lng_sure_save_language" = "Telegram si riavvierà per cambiare lingua";
"lng_settings_auto_update" = "Aggiorna automaticamente";
"lng_settings_update_automatically" = "Aggiorna automaticamente (ver. {version})";
"lng_settings_current_version" = "Versione {version}";
"lng_settings_check_now" = "Cerca aggiornamenti";
"lng_settings_update_checking" = "Cerco aggiornamenti...";
@ -264,10 +267,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_auto_start" = "Avvia Telegram all'avvio del sistema";
"lng_settings_start_min" = "Avvia ridotto a icona";
"lng_settings_add_sendto" = "Inserisci Telegram nel menu «Invia a»";
"lng_settings_scale_label" = "Ridimensiona interfaccia";
"lng_settings_section_scale" = "Scala interfaccia";
"lng_settings_scale_auto" = "Auto ({cur})";
"lng_settings_section_chat" = "Impostazioni chat";
"lng_settings_section_chat_settings" = "Impostazioni chat";
"lng_settings_replace_emojis" = "Riconosci emoji";
"lng_settings_view_emojis" = "Visualizza lista";
"lng_settings_emoji_list" = "Emoji supportate";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "Eliminato!";
"lng_download_path_clear_failed" = "Eliminazione fallita :(";
"lng_settings_section_cache" = "Archivio locale";
"lng_settings_section_privacy" = "Privacy e sicurezza";
"lng_local_storage_title" = "Archivio locale";
"lng_settings_no_data_cached" = "Non ci sono dati nella cache!";
"lng_settings_images_cached" = "{count:_not_used_|# immagine|# immagini}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|# messaggio vocale|# messaggi vocali}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "Eliminato!";
"lng_local_storage_clear_failed" = "Eliminazione fallita :(";
"lng_settings_section_advanced" = "Avanzate";
"lng_settings_section_advanced_settings" = "Impostazioni avanzate";
"lng_passcode_remove_button" = "Rimuovi";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "Vuoi terminare questa sessione?";
"lng_settings_reset_button" = "Chiudi";
"lng_settings_reset_done" = "Altre sessioni terminate";
"lng_settings_manage_local_storage" = "Gestisci archivio locale";
"lng_settings_ask_question" = "Fai una domanda";
"lng_settings_ask_sure" = "Per favore nota che il supporto di Telegram è fornito da volontari. Proviamo a rispondere quanto prima, ma potrebbe volerci del tempo.\n\nDai un'occhiata alle domande frequenti di Telegram: contengono suggerimenti importanti per risolvere i problemi e risposte a quasi tutte le domande.";
"lng_settings_faq_button" = "Domande frequenti";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "Spiacenti, questo canale non è accessibile.";
"lng_group_not_accessible" = "Spiacenti, questo gruppo non è accessibile.";
"lng_channels_too_much_public_existing" = "Spiacenti, hai già creato troppi canali pubblici. Prima devi eliminarne qualcuno.";
"lng_channels_too_much_public" = "Spiacenti, hai creato troppi canali pubblici.\n\nPuoi creare un canale privato\no eliminare un tuo canale pubblico.";
"lng_channels_too_much_public_about" = "Spiacenti, hai riservato troppi username pubblici. Puoi revocare il link da uno dei tuoi gruppi o canali più vecchi.";
"lng_channels_too_much_public_revoke_confirm_group" = "Sei sicuro di voler revocare il link {link}?\n\nIl gruppo «{group}» diventerà privato.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Sei sicuro di voler revocare il link {link}?\n\nIl canale «{group}» diventerà privato.";
"lng_channels_too_much_public_revoke" = "Revoca";
"lng_group_invite_bad_link" = "Questo link di invito non funziona o è scaduto.";
"lng_group_invite_want_join" = "Vuoi unirti al gruppo «{title}»?";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram Desktop si è aggiornato alla versione {version}\n\n{changes}\n\nLa cronologia degli aggiornamenti è disponibile qui:\n{link}";
"lng_new_version_minor" = "— Risoluzione di problemi e altri miglioramenti minori";
"lng_new_version_text" = "— Sticker in primo piano. Visualizza e installa set di sticker degni di nota dalla nuova scheda nelle Impostazioni.\n— Sticker archiviati. Gli sticker non utilizzati sono ora archiviati automaticamente quando vai oltre il limite dei 200 set.\n— Anteprime dei gruppi. Visualizza l'anteprima dei gruppi prima di unirti tramite link di invito - guarda chi è nel gruppo prima di unirti.\n— Nuovo lettore video interno.\n— Design migliorato per le chat.";
"lng_new_version_text" = "— Nuovo design per la pagina delle Impostazioni\n— Risoluzione di problemi e altri miglioramenti minori";
"lng_menu_insert_unicode" = "Inserisci carattere di controllo Unicode";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "프로필 이미지 선택";
"lng_settings_crop_profile" = "프로필 사진으로 사용할 사각영역을 선택하세요";
"lng_settings_uploading_photo" = "사진 업로드 중...";
"lng_settings_edit" = "수정";
"lng_settings_drop_area_subtitle" = "프로필 사진으로 설정";
"lng_username_title" = "아이디";
"lng_username_about" = "텔레그램 아이디를 설정할 수 있습니다. \n아이디를 설정하면 회원님의 전화번호를 몰라도 아이디로 회원님을 찾아 대화를 나눌 수 있습니다.\n아이디는 영문, 밑줄, 숫자로 a-z, _, 0-9, \n다섯 글자 이상으로 설정해 주세요.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "회원님과 대화를 할 수 있는 링크입니다.";
"lng_username_copied" = "클립보드에 링크가 복사되었습니다.";
"lng_settings_section_contact_info" = "연락처 정보";
"lng_settings_section_info" = "정보";
"lng_settings_phone_number" = "전화번호";
"lng_settings_username" = "아이디:";
"lng_settings_choose_username" = "아이디 설정하기";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "언어 변경";
"lng_languages" = "언어";
"lng_sure_save_language" = "언어를 변경하기 위해 텔레그램을 재시작합니다.";
"lng_settings_auto_update" = "자동 업데이트";
"lng_settings_update_automatically" = "자동 업데이트(ver. {version})";
"lng_settings_current_version" = " {version}";
"lng_settings_check_now" = "업데이트 확인";
"lng_settings_update_checking" = "업데이트 확인 중...";
@ -264,10 +267,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_auto_start" = "시스템 시작시 자동실행";
"lng_settings_start_min" = "최소화로 시작";
"lng_settings_add_sendto" = " «보내기» 메뉴에 추가";
"lng_settings_scale_label" = "인터페이스 크기 조절";
"lng_settings_section_scale" = "인터페이스 크기";
"lng_settings_scale_auto" = "자동 ({cur})";
"lng_settings_section_chat" = "채팅 설정";
"lng_settings_section_chat_settings" = "채팅 설정";
"lng_settings_replace_emojis" = "이모티콘 자동변환";
"lng_settings_view_emojis" = "목록 보기";
"lng_settings_emoji_list" = "지원되는 이모티콘";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "초기화 완료!";
"lng_download_path_clear_failed" = "초기화 실패 :(";
"lng_settings_section_cache" = "로컬 저장소";
"lng_settings_section_privacy" = "개인정보 및 보안";
"lng_local_storage_title" = "로컬 저장소";
"lng_settings_no_data_cached" = "캐시 데이터가 없습니다!";
"lng_settings_images_cached" = "{count:_not_used_|이미지 #개|이미지 #개}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|음성 메시지 #개|음성 메시지 #개}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "초기화 완료!";
"lng_local_storage_clear_failed" = "초기화 실패 :(";
"lng_settings_section_advanced" = "고급";
"lng_settings_section_advanced_settings" = "고급 설정";
"lng_passcode_remove_button" = "삭제";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "해당 세션을 강제 종료 하시겠습니까?";
"lng_settings_reset_button" = "종료";
"lng_settings_reset_done" = "다른 모든 세션이 강제 종료 되었습니다.";
"lng_settings_manage_local_storage" = "로컬 저장소 관리";
"lng_settings_ask_question" = "질문하기";
"lng_settings_ask_sure" = "텔레그램에 관한 질문은 자원봉사자들이 답변해 드립니다. 신속한 답변을 위해 노력하지만 답변이 다소 늦을 수 있습니다.\n\n일반적인 문제와 해결방법에 대해서는 자주 묻는 질문을 확인해 보세요.";
"lng_settings_faq_button" = "자주 묻는 질문 으로 이동";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "채널에 접근 할 수 없습니다.";
"lng_group_not_accessible" = "죄송합니다. 그룹방에 접근 할 수 없습니다.";
"lng_channels_too_much_public_existing" = "너무 많은 공개 채널을 생성하였습니다. 기존 공개채널을 삭제해주세요.";
"lng_channels_too_much_public" = "너무 많은 공개 채널을 생성하였습니다. \n\n비공개 채널을 생성하시던가, 기존 공개채널을 삭제해주세요";
"lng_channels_too_much_public_about" = "죄송합니다, 너무 많은 공개 아이디를 점유하셨습니다. 기존 그룹 및 채널에 있는 링크를 폐기해주셔야합니다.";
"lng_channels_too_much_public_revoke_confirm_group" = "이 링크 {link} 를 폐기하시겠습니까?\n\n«{group}» 그룹방은 비공개로 전환됩니다.";
"lng_channels_too_much_public_revoke_confirm_channel" = "이 링크 {link} 를 폐기하시겠습니까?\n\n«{group}» 채널방은 비공개로 전환됩니다.";
"lng_channels_too_much_public_revoke" = "폐기";
"lng_group_invite_bad_link" = "초대링크가 깨졌거나 폐기되었습니다.";
"lng_group_invite_want_join" = "«{title}» 그룹방에 참여하시겠습니까?";
@ -851,7 +859,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_forward_share_contact" = "{recipient} 님에게 연락처를 공유하시겠습니까?";
"lng_forward_send_file_confirm" = "«{name}» 을 {recipient} 님에게 보내시겠습니까?";
"lng_forward_send_files_confirm" = "선택한 파일을 {recipient} 님에게 보내시겠습니까?";
"lng_forward_send" = "보";
"lng_forward_send" = "보내기";
"lng_forward_messages" = "{count:_not_used_|전달받은 메시지|# 개의 전달받은 메시지}";
"lng_forwarding_from" = "{user} 님과 {count:_not_used_|# 명|# 명}";
"lng_forwarding_from_two" = "{user} 님과 {second_user}";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "텔레그램 데스크탑은 {version} 버전으로 업데이트 되었습니다.\n\n{changes}\n\n전체 버전 히스토리는 아래에서 확인 가능합니다:\n{link}";
"lng_new_version_minor" = "— 버그 수정 및 일부 기능 향상";
"lng_new_version_text" = "— 인기스티커. 설정내 새로운 탭으로 인기있는 스티커를 확인하고 설치\n— 보관스티커. 스티커 개수가 200개 이상일 경우 미사용 스티커는 보관으로 자동이관\n— 그룹방 미리보기. 초대링크로 입장하기전에 미리보기 - 그룹방 참여인원 확인가능\n— 새로운 내부 비디오 플레이어\n— 대화 디자인 향상";
"lng_new_version_text" = "— 이쁜 설정 페이지 디자인\n— 버그 수정 및 일부 기능 향상";
"lng_menu_insert_unicode" = "유니코드 문자를 입력하세요.";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "Profielfoto instellen";
"lng_settings_crop_profile" = "Kies een vierkant voor je profielfoto";
"lng_settings_uploading_photo" = "Foto uploaden...";
"lng_settings_edit" = "Wijzig";
"lng_settings_drop_area_subtitle" = "om als foto in te stellen";
"lng_username_title" = "Gebruikersnaam";
"lng_username_about" = "Je kunt hier je gebruikersnaam kiezen. \nHiermee kunnen anderen je vinden \nen contact met je opnemen zonder \nje telefoonnummer te weten.\n\na-z, 0-9 en underscore is toegestaan. \nDe minimale lengte is 5 tekens.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "Deze link opent een chat met jou:";
"lng_username_copied" = "Link gekopieerd naar klembord.";
"lng_settings_section_contact_info" = "Contactgegevens";
"lng_settings_section_info" = "Info";
"lng_settings_phone_number" = "Telefoonnummer:";
"lng_settings_username" = "Gebruikersnaam:";
"lng_settings_choose_username" = "gebruikersnaam kiezen";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "Taal wijzigen";
"lng_languages" = "Talen";
"lng_sure_save_language" = "Opnieuw starten om de taal te wijzen?";
"lng_settings_auto_update" = "Automatisch bijwerken";
"lng_settings_update_automatically" = "Automatisch bijwerken (ver. {version})";
"lng_settings_current_version" = "Versie {version}";
"lng_settings_check_now" = "Controleer op updates";
"lng_settings_update_checking" = "Controleren op updates...";
@ -264,10 +267,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_auto_start" = "Telegram uitvoeren bij opstarten";
"lng_settings_start_min" = "Minimaliseren bij uitvoeren";
"lng_settings_add_sendto" = "Telegram toevoegen aan \"Kopiëren naar\"-menu";
"lng_settings_scale_label" = "Interfaceschaal";
"lng_settings_section_scale" = "Interfaceschaal";
"lng_settings_scale_auto" = "Auto ({cur})";
"lng_settings_section_chat" = "Chatopties";
"lng_settings_section_chat_settings" = "Chatinstellingen";
"lng_settings_replace_emojis" = "Emoji's vervangen";
"lng_settings_view_emojis" = "Lijst bekijken";
"lng_settings_emoji_list" = "Ondersteunde emoji's";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "Gewist!";
"lng_download_path_clear_failed" = "Wissen mislukt";
"lng_settings_section_cache" = "Lokale opslag";
"lng_settings_section_privacy" = "Privacy en veilighed";
"lng_local_storage_title" = "Lokale opslag";
"lng_settings_no_data_cached" = "Geen cache-data gevonden!";
"lng_settings_images_cached" = "{count:_not_used_|# afbeelding|# afbeeldingen}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|# spraakbericht|# spraakberichten}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "Gewist!";
"lng_local_storage_clear_failed" = "Wissen mislukt";
"lng_settings_section_advanced" = "Geavanceerd";
"lng_settings_section_advanced_settings" = "Geavanceerde instellingen";
"lng_passcode_remove_button" = "Verwijder";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "Deze sessie beëindigen?";
"lng_settings_reset_button" = "Beëindigen";
"lng_settings_reset_done" = "Alle andere sessies zijn beëindigd";
"lng_settings_manage_local_storage" = "Lokale opslag beheren";
"lng_settings_ask_question" = "Een vraag stellen";
"lng_settings_ask_sure" = "De ondersteuning voor Telegram wordt gedaan door vrijwilligers. We proberen zo snel mogelijk te reageren maar het kan even duren. \n\nBekijk ook de veelgestelde vragen, deze bevat belangrijke tips en antwoorden op de meest gestelde vragen. ";
"lng_settings_faq_button" = "Veelgestelde vragen";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "Sorry, dit kanaal is privé.";
"lng_group_not_accessible" = "Sorry, deze groep is niet beschikbaar.";
"lng_channels_too_much_public_existing" = "Je hebt teveel publieke kanalen gemaakt. Verwijder er eerst één.";
"lng_channels_too_much_public" = "Het maximale aantal publieke kanalen is bereikt.\n\nMaak een privé-kanaal \nof verwijder eerst een publiek kanaal.";
"lng_channels_too_much_public_about" = "Het maximale aantal publieke gebruikersnamen is bereikt. Trek eerst een link van één van je oudere groepen of kanalen in.";
"lng_channels_too_much_public_revoke_confirm_group" = "Deze link echt intrekken {link}?\n\nDe groep «{group}» zal privé worden.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Deze link echt intrekken {link}?\n\nHet kanaal «{group}» zal privé worden.";
"lng_channels_too_much_public_revoke" = "Intrekken";
"lng_group_invite_bad_link" = "Deze uitnodigingslink is defect of verlopen.";
"lng_group_invite_want_join" = "Wil je lid worden van de groep \"{title}\"?";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram is bijgewerkt naar versie {version}\n\n{changes} \n\nVolledige versiegeschiedenis is hier te vinden:\n{link}";
"lng_new_version_minor" = "— Probleemoplossing en andere kleine verbeteringen";
"lng_new_version_text" = "— Populaire stickers. Zoek je nieuwe stickerbundels om te installeren? Populaire stickerbundels zijn nu te vinden onder instellingen.\n— Gearchiveerde stickers. Ongebruikte stickers archiveren we automatisch als je over de limiet van 200 stickerbundels gaat.\n— Voorvertoningen van groepen. Bekijk een groep voordat je besluit lid te worden.\n— Nieuwe ingebouwde videospeler.\n— Designverbeteringen voor de chatinterface.";
"lng_new_version_text" = "— Nieuw ontwerp voor het tabblad met instellingen\n— Probleemoplossing en andere kleine verbeteringen";
"lng_menu_insert_unicode" = "Unicode-besturingsteken invoegen";

View File

@ -217,6 +217,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_upload" = "Definir Foto de Perfil";
"lng_settings_crop_profile" = "Selecione uma área para a foto do perfil";
"lng_settings_uploading_photo" = "Carregando foto...";
"lng_settings_edit" = "Editar";
"lng_settings_drop_area_subtitle" = "para defini-la como sua foto";
"lng_username_title" = "Nome de usuário";
"lng_username_about" = "Você pode escolher um nome de usuário.\nAssim, outras pessoas poderão encontrar\nvocê pelo nome de usuário e entrar em\ncontato sem precisar saber seu telefone.\n\nVocê pode usar a-z, 0-9 e underline.\nO tamanho mínimo é de 5 caracteres.";
@ -231,7 +234,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_username_link" = "Esse link abre um chat com você:";
"lng_username_copied" = "Link copiado para área de transferência.";
"lng_settings_section_contact_info" = "Informação de contato";
"lng_settings_section_info" = "Info";
"lng_settings_phone_number" = "Número de telefone:";
"lng_settings_username" = "Nome de usuário:";
"lng_settings_choose_username" = "Escolher nome de usuário";
@ -242,7 +245,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_show_preview" = "Mostrar pré-visualização da mensagem";
"lng_settings_use_windows" = "Usar notificações do Windows";
"lng_settings_sound_notify" = "Tocar som";
"lng_settings_include_muted" = "Incluir chats silenciados no contador de notificações";
"lng_settings_include_muted" = "Incluir os chats silenciados no contador";
"lng_notification_preview" = "Você tem uma nova mensagem";
@ -250,7 +253,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_change_lang" = "Alterar idioma";
"lng_languages" = "Idiomas";
"lng_sure_save_language" = "Telegram irá reiniciar para alterar o idioma";
"lng_settings_auto_update" = "Atualizar automaticamente";
"lng_settings_update_automatically" = "Atualizar automaticamente (ver. {version})";
"lng_settings_current_version" = "Versão {version}";
"lng_settings_check_now" = "Verificar atualizações";
"lng_settings_update_checking" = "Verificando atualizações...";
@ -263,11 +266,11 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_workmode_window" = "Mostrar ícone na barra de ferramentas";
"lng_settings_auto_start" = "Iniciar Telegram junto ao sistema";
"lng_settings_start_min" = "Iniciar minimizado";
"lng_settings_add_sendto" = "Colocar o Telegram no menu «Enviar para»";
"lng_settings_scale_label" = "Escala de interface";
"lng_settings_add_sendto" = "Colocar Telegram no menu «Enviar para»";
"lng_settings_section_scale" = "Escala de Interface";
"lng_settings_scale_auto" = "Auto ({cur})";
"lng_settings_section_chat" = "Opções de conversa";
"lng_settings_section_chat_settings" = "Configurações de Conversa";
"lng_settings_replace_emojis" = "Substituir emoji";
"lng_settings_view_emojis" = "Lista de visualização";
"lng_settings_emoji_list" = "Emojis suportados";
@ -283,7 +286,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_backgrounds_header" = "Escolha o seu novo papel de parede";
"lng_download_path_dont_ask" = "Não perguntar onde salvar para cada arquivo";
"lng_download_path_dont_ask" = "Não perguntar onde salvar cada arquivo";
"lng_download_path_label" = "Baixar em:";
"lng_download_path_temp" = "pasta temporária";
"lng_download_path_default" = "pasta padrão";
@ -301,7 +304,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_download_path_cleared" = "Concluído!";
"lng_download_path_clear_failed" = "Limpeza falhou :(";
"lng_settings_section_cache" = "Armazenamento local";
"lng_settings_section_privacy" = "Privacidade e Segurança";
"lng_local_storage_title" = "Armazenamento local";
"lng_settings_no_data_cached" = "Nada encontrado no cache!";
"lng_settings_images_cached" = "{count:_not_used_|# imagem|# imagens}, {size}";
"lng_settings_audios_cached" = "{count:_not_used_|# mensagem de voz|# mensagens de voz}, {size}";
@ -310,7 +315,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_local_storage_cleared" = "Concluído!";
"lng_local_storage_clear_failed" = "Limpeza falhou :(";
"lng_settings_section_advanced" = "Avançado";
"lng_settings_section_advanced_settings" = "Configurações Avançadas";
"lng_passcode_remove_button" = "Remover";
@ -384,6 +389,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_reset_one_sure" = "Você deseja terminar essa sessão?";
"lng_settings_reset_button" = "Encerrar";
"lng_settings_reset_done" = "Outras sessões encerradas";
"lng_settings_manage_local_storage" = "Gerenciar armazenamento local";
"lng_settings_ask_question" = "Fazer uma Pergunta";
"lng_settings_ask_sure" = "Entenda que o suporte do Telegram é feito por voluntários. Tentaremos responder o mais rápido possível, mas poderemos demorar um pouco.\n\nPor favor verifique a página de Perguntas Frequentes do Telegram: há dicas e respostas para a maioria das perguntas.";
"lng_settings_faq_button" = "Ler o FAQ";
@ -599,8 +605,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_channel_not_accessible" = "Desculpe, esse canal não está acessível.";
"lng_group_not_accessible" = "Desculpe, esse grupo não está acessível.";
"lng_channels_too_much_public_existing" = "Desculpe, você já criou muitos canais públicos. Apague um primeiro.";
"lng_channels_too_much_public" = "Desculpe, você já criou muitos canais públicos.\n\nVocê pode criar um canal privado\nou apagar um de seus canais públicos.";
"lng_channels_too_much_public_about" = "Desculpe, você reservou muitos nomes públicos. Você pode remover o link público de um de seus grupos ou canais.";
"lng_channels_too_much_public_revoke_confirm_group" = "Você tem certeza que deseja remover o link {link}?\n\nO grupo «{group}» se tornará privado.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Você tem certeza que deseja remover o link {link}?\n\nO canal «{group}» se tornará privado.";
"lng_channels_too_much_public_revoke" = "Remover";
"lng_group_invite_bad_link" = "Link de convite quebrado ou expirado.";
"lng_group_invite_want_join" = "Você deseja entrar no grupo «{title}»?";
@ -654,7 +662,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_media_video" = "Vídeo";
"lng_media_audio" = "Mensagem de voz";
"lng_media_auto_settings" = "Configurações do download automático de mídia";
"lng_media_auto_settings" = "Download automático de mídia";
"lng_media_auto_photo" = "Baixar foto automaticamente";
"lng_media_auto_audio" = "Baixar mensagem de voz automaticamente";
"lng_media_auto_gif" = "Baixar GIF autometicamente";
@ -934,7 +942,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_new_version_wrap" = "Telegram Desktop foi atualizado para a versão {version}\n\n{changes}\n\nHistórico completo de mudanças disponível aqui:\n{link}";
"lng_new_version_minor" = "— Resolução de bugs e outras melhorias menores";
"lng_new_version_text" = "— Stickers populares. Veja e instale pacotes de stickers em destaque através da nova aba em Configurações.\n— Stickers arquivados. Stickers sem uso agora são arquivados automaticamente quando você chegar ao limite dos 200.\n— Pré-visualização de grupos. Visualize os grupos antes de entrar através do link de convite - veja quem mais está no grupo antes de entrar.\n— Novo reprodutor de vídeo interno.\n— Design melhorado nas conversas.";
"lng_new_version_text" = "— Novo design para a página de Configurações\n— Resolução de bugs e outras menores melhorias";
"lng_menu_insert_unicode" = "Inserir caractere de controle Unicode";

View File

@ -34,8 +34,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,10,4,0
PRODUCTVERSION 0,10,4,0
FILEVERSION 0,10,5,0
PRODUCTVERSION 0,10,5,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -51,10 +51,10 @@ BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "FileVersion", "0.10.4.0"
VALUE "FileVersion", "0.10.5.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2016"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "0.10.4.0"
VALUE "ProductVersion", "0.10.5.0"
END
END
BLOCK "VarFileInfo"

View File

@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,10,4,0
PRODUCTVERSION 0,10,4,0
FILEVERSION 0,10,5,0
PRODUCTVERSION 0,10,5,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -43,10 +43,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "FileDescription", "Telegram Updater"
VALUE "FileVersion", "0.10.4.0"
VALUE "FileVersion", "0.10.5.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2016"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "0.10.4.0"
VALUE "ProductVersion", "0.10.5.0"
END
END
BLOCK "VarFileInfo"

View File

@ -141,6 +141,7 @@ int main(int argc, char *argv[])
QString remove;
int version = 0;
bool target32 = false;
QFileInfoList files;
for (int i = 0; i < argc; ++i) {
if (string("-path") == argv[i] && i + 1 < argc) {
@ -148,6 +149,8 @@ int main(int argc, char *argv[])
QFileInfo info(path);
files.push_back(info);
if (remove.isEmpty()) remove = info.canonicalPath() + "/";
} else if (string("-target") == argv[i] && i + 1 < argc) {
target32 = (string("mac32") == argv[i + 1]);
} else if (string("-version") == argv[i] && i + 1 < argc) {
version = QString(argv[i + 1]).toInt();
} else if (string("-alpha") == argv[i]) {
@ -451,11 +454,11 @@ int main(int argc, char *argv[])
#ifdef Q_OS_WIN
QString outName(QString("tupdate%1").arg(BetaVersion ? BetaVersion : version));
#elif defined Q_OS_MAC
QString outName(QString("tmacupd%1").arg(BetaVersion ? BetaVersion : version));
QString outName((target32 ? QString("tmac32upd%1") : QString("tmacupd%1")).arg(BetaVersion ? BetaVersion : version));
#elif defined Q_OS_LINUX32
QString outName(QString("tlinux32upd%1").arg(BetaVersion ? BetaVersion : version));
QString outName(QString("tlinux32upd%1").arg(BetaVersion ? BetaVersion : version));
#elif defined Q_OS_LINUX64
QString outName(QString("tlinuxupd%1").arg(BetaVersion ? BetaVersion : version));
QString outName(QString("tlinuxupd%1").arg(BetaVersion ? BetaVersion : version));
#else
#error Unknown platform!
#endif

View File

@ -1067,7 +1067,7 @@ void AppClass::checkMapVersion() {
QString versionFeatures;
if ((cAlphaVersion() || cBetaVersion()) && Local::oldMapVersion() < 10003) {
versionFeatures = QString::fromUtf8("\xe2\x80\x94 New cute design for the Settings page");
} else if (Local::oldMapVersion() < 10000) {
} else if (!(cAlphaVersion() || cBetaVersion()) && Local::oldMapVersion() < 10005) {
versionFeatures = langNewVersionText();
} else {
versionFeatures = lang(lng_new_version_minor).trimmed();

View File

@ -24,7 +24,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
#define BETA_VERSION_MACRO (0ULL)
constexpr int AppVersion = 10004;
constexpr str_const AppVersionStr = "0.10.4";
constexpr bool AppAlphaVersion = true;
constexpr int AppVersion = 10005;
constexpr str_const AppVersionStr = "0.10.5";
constexpr bool AppAlphaVersion = false;
constexpr uint64 AppBetaVersion = BETA_VERSION_MACRO;

View File

@ -224,7 +224,7 @@ namespace {
}
} else {
secs = m.captured(1).toInt();
if (secs >= 60) return false;
// if (secs >= 60) return false;
}
uint64 sendAt = getms(true) + secs * 1000 + 10;
DelayedRequestsList::iterator i = delayedRequests.begin(), e = delayedRequests.end();

View File

@ -430,7 +430,7 @@ bool mtpFileLoader::loadPart() {
App::app()->killDownloadSessionsStop(_dc);
mtpRequestId reqId = MTP::send(MTPupload_GetFile(MTPupload_getFile(loc, MTP_int(offset), MTP_int(limit))), rpcDone(&mtpFileLoader::partLoaded, offset), rpcFail(&mtpFileLoader::partFailed), MTP::dldDcId(_dc, dcIndex), 50);
mtpRequestId reqId = MTP::send(MTPupload_GetFile(loc, MTP_int(offset), MTP_int(limit)), rpcDone(&mtpFileLoader::partLoaded, offset), rpcFail(&mtpFileLoader::partFailed), MTP::dldDcId(_dc, dcIndex), 50);
++_queue->queries;
dr.v[dcIndex] += limit;

View File

@ -155,9 +155,9 @@ void QGtkDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindo
Libs::gtk_widget_realize(gtkWidget); // creates X window
if (parent) {
Platform::internal::XSetTransientForHint(Libs::gtk_widget_get_window(gtkWidget), parent->winId());
}
if (parent) {
Platform::internal::XSetTransientForHint(Libs::gtk_widget_get_window(gtkWidget), parent->winId());
}
if (modality != Qt::NonModal) {
Libs::gdk_window_set_modal_hint(Libs::gtk_widget_get_window(gtkWidget), true);

View File

@ -25,15 +25,19 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
//Q_IMPORT_PLUGIN(QWinRTIntegrationPlugin)
//Q_IMPORT_PLUGIN(QWbmpPlugin)
#elif defined Q_OS_WIN // Q_OS_WINRT
Q_IMPORT_PLUGIN(QWebpPlugin)
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
#elif defined Q_OS_MAC // Q_OS_WIN
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
#elif defined Q_OS_LINUX // Q_OS_LINUX
Q_IMPORT_PLUGIN(QWebpPlugin)
Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
Q_IMPORT_PLUGIN(QConnmanEnginePlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
Q_IMPORT_PLUGIN(QNetworkManagerEnginePlugin)
Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin)
Q_IMPORT_PLUGIN(QIbusPlatformInputContextPlugin)
Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
#endif

View File

@ -1,633 +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/sharebox.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/sharebox.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

View File

@ -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
}

View File

@ -3,8 +3,6 @@ FullExecPath=$PWD
pushd `dirname $0` > /dev/null
FullScriptPath=`pwd`
popd > /dev/null
QMakePath="/usr/local/tdesktop/Qt-5.6.0/bin/qmake"
QMakeArgs="INCLUDEPATH+=/usr/local/include INCLUDEPATH+=/usr/local/include/opus"
if [ ! -d "$FullScriptPath/../../../TelegramPrivate" ]; then
echo ""
@ -54,15 +52,13 @@ if [ "$BuildTarget" == "linux" ]; then
echo "Building version $AppVersionStrFull for Linux 64bit.."
UpdateFile="tlinuxupd$AppVersion"
SetupFile="tsetup.$AppVersionStrFull.tar.xz"
WorkPath="$HomePath/../Linux"
ReleasePath="$WorkPath/Release"
ReleasePath="$HomePath/../out/Release"
BinaryName="Telegram"
elif [ "$BuildTarget" == "linux32" ]; then
echo "Building version $AppVersionStrFull for Linux 32bit.."
UpdateFile="tlinux32upd$AppVersion"
SetupFile="tsetup32.$AppVersionStrFull.tar.xz"
WorkPath="$HomePath/../Linux"
ReleasePath="$WorkPath/Release"
ReleasePath="$HomePath/../out/Release"
BinaryName="Telegram"
elif [ "$BuildTarget" == "mac" ]; then
echo "Building version $AppVersionStrFull for OS X 10.8+.."
@ -127,20 +123,9 @@ if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then
Error "Dropbox path not found!"
fi
mkdir -p "$WorkPath/ReleaseIntermediateUpdater"
cd "$WorkPath/ReleaseIntermediateUpdater"
"$QMakePath" "$HomePath/Updater.pro" -r -spec linux-g++
make
echo "Updater build complete!"
mkdir -p "$WorkPath/ReleaseIntermediate"
cd "$WorkPath/ReleaseIntermediate"
"$QMakePath" $QMakeArgs "$HomePath/Telegram.pro" -r -spec linux-g++
eval "$HomePath/build/makefile_static.sh"
./../codegen/Debug/codegen_style "-I./../../Telegram/Resources" "-I./../../Telegram/SourceFiles" "-o./GeneratedFiles/styles" all_files.style --rebuild
./../codegen/Debug/codegen_numbers "-o./GeneratedFiles" "./../../Telegram/Resources/numbers.txt"
./../DebugLang/MetaLang -lang_in ./../../Telegram/Resources/langs/lang.strings -lang_out ./GeneratedFiles/lang_auto
gyp/refresh.sh
cd $ReleasePath
make -j4
echo "$BinaryName build complete!"
@ -301,7 +286,7 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarg
hdiutil convert tsetup.dmg -format UDZO -imagekey zlib-level=9 -ov -o "$SetupFile"
fi
cd "$ReleasePath"
"./Packer" -path "$BinaryName.app" -version $VersionForPacker $AlphaBetaParam
"./Packer" -path "$BinaryName.app" -target "$BuildTarget" -version $VersionForPacker $AlphaBetaParam
echo "Packer done!"
if [ "$BetaVersion" != "0" ]; then

View File

@ -50,13 +50,13 @@ if [ "$BuildTarget" == "linux" ]; then
echo "Deploying version $AppVersionStrFull for Linux 64bit.."
UpdateFile="tlinuxupd$AppVersion"
SetupFile="tsetup.$AppVersionStrFull.tar.xz"
ReleasePath="$HomePath/../Linux/Release"
ReleasePath="$HomePath/../out/Release"
RemoteFolder="tlinux"
elif [ "$BuildTarget" == "linux32" ]; then
echo "Deploying version $AppVersionStrFull for Linux 32bit.."
UpdateFile="tlinux32upd$AppVersion"
SetupFile="tsetup32.$AppVersionStrFull.tar.xz"
ReleasePath="$HomePath/../Linux/Release"
ReleasePath="$HomePath/../out/Release"
RemoteFolder="tlinux32"
elif [ "$BuildTarget" == "mac" ]; then
DeployMac="0"

View File

@ -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

View File

@ -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

View File

@ -1,6 +1,6 @@
AppVersion 10004
AppVersion 10005
AppVersionStrMajor 0.10
AppVersionStrSmall 0.10.4
AppVersionStr 0.10.4
AlphaChannel 1
AppVersionStrSmall 0.10.5
AppVersionStr 0.10.5
AlphaChannel 0
BetaVersion 0

View File

@ -0,0 +1,161 @@
##
## Modified for Telegram Desktop project by Telegram Desktop authors.
##
# Function for setting up precompiled headers. Usage:
#
# add_library/executable(target
# pchheader.c pchheader.cpp pchheader.h)
#
# add_precompiled_header(target pchheader.h
# [FORCEINCLUDE]
# [SOURCE_C pchheader.c]
# [SOURCE_CXX pchheader.cpp])
#
# Options:
#
# FORCEINCLUDE: Add compiler flags to automatically include the
# pchheader.h from every source file. Works with both GCC and
# MSVC. This is recommended.
#
# SOURCE_C/CXX: Specifies the .c/.cpp source file that includes
# pchheader.h for generating the pre-compiled header
# output. Defaults to pchheader.c. Only required for MSVC.
#
# Caveats:
#
# * Its not currently possible to use the same precompiled-header in
# more than a single target in the same directory (No way to set
# the source file properties differently for each target).
#
# * MSVC: A source file with the same name as the header must exist
# and be included in the target (E.g. header.cpp). Name of file
# can be changed using the SOURCE_CXX/SOURCE_C options.
#
# License:
#
# Copyright (C) 2009-2013 Lars Christensen <larsch@belunktum.dk>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the 'Software') deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
include(CMakeParseArguments)
macro(combine_arguments _variable)
set(_result "")
foreach(_element ${${_variable}})
set(_result "${_result} \"${_element}\"")
endforeach()
string(STRIP "${_result}" _result)
set(${_variable} "${_result}")
endmacro()
function(export_all_flags _filename _source_name_for_flags)
set(_include_directories "$<TARGET_PROPERTY:${_target},INCLUDE_DIRECTORIES>")
set(_compile_definitions "$<TARGET_PROPERTY:${_target},COMPILE_DEFINITIONS>")
get_source_file_property(_compile_flags "${_source_name_for_flags}" COMPILE_FLAGS)
set(_compile_options "$<TARGET_PROPERTY:${_target},COMPILE_OPTIONS>")
set(_include_directories "$<$<BOOL:${_include_directories}>:-I$<JOIN:${_include_directories},\n-I>\n>")
set(_compile_definitions "$<$<BOOL:${_compile_definitions}>:-D$<JOIN:${_compile_definitions},\n-D>\n>")
set(_compile_flags "$<$<BOOL:${_compile_flags}>:$<JOIN:${_compile_flags},\n>\n>")
set(_compile_options "$<$<BOOL:${_compile_options}>:$<JOIN:${_compile_options},\n>\n>")
file(GENERATE OUTPUT "${_filename}" CONTENT "${_source_name_for_flags}\n${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
endfunction()
function(add_precompiled_header _target _input)
if(CMAKE_COMPILER_IS_GNUCXX)
get_filename_component(_name ${_input} NAME)
set(_pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
set(_pch_binary_dir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch")
set(_pchfile "${_pch_binary_dir}/${_name}")
set(_outdir "${_pch_binary_dir}/${_name}.gch")
make_directory(${_outdir})
set(_output_cxx "${_outdir}/.c++")
set(_output_c "${_outdir}/.c")
get_property(_sources TARGET ${_target} PROPERTY SOURCES)
foreach(_source ${_sources})
if(_source MATCHES \\.\(c\)$ AND NOT _source_for_c_flags)
set(_source_for_c_flags "${_source}")
elseif(_source MATCHES \\.\(cc|cxx|cpp\)$ AND NOT _source_for_cpp_flags)
set(_source_for_cpp_flags "${_source}")
endif()
endforeach()
add_custom_command(
OUTPUT "${_pchfile}"
COMMAND "${CMAKE_COMMAND}" -E copy "${_pch_header}" "${_pchfile}"
DEPENDS "${_pch_header}"
COMMENT "Updating ${_name}")
if(_source_for_c_flags)
set(_pch_c_flags_file "${_pch_binary_dir}/compile_flags_c.rsp")
export_all_flags("${_pch_c_flags_file}" "${_source_for_c_flags}")
set(_compiler_FLAGS "@${_pch_c_flags_file}")
add_custom_command(
OUTPUT "${_output_c}"
COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" -c "${_pchfile}"
DEPENDS "${_pchfile}" "${_pch_c_flags_file}"
COMMENT "Precompiling ${_name} for ${_target} (C)")
endif()
if(_source_for_cpp_flags)
set(_pch_cpp_flags_file "${_pch_binary_dir}/compile_flags_cpp.rsp")
export_all_flags("${_pch_cpp_flags_file}" "${_source_for_cpp_flags}")
set(_compiler_FLAGS "@${_pch_cpp_flags_file}")
add_custom_command(
OUTPUT "${_output_cxx}"
COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" -c "${_pchfile}"
DEPENDS "${_pchfile}" "${_pch_cpp_flags_file}"
COMMENT "Precompiling ${_name} for ${_target} (C++)")
endif()
foreach(_source ${_sources})
set(_pch_compile_flags "")
if(_source MATCHES \\.\(cc|cxx|cpp|c\)$)
get_source_file_property(_pch_compile_flags "${_source}" COMPILE_FLAGS)
if(NOT _pch_compile_flags)
set(_pch_compile_flags)
endif()
separate_arguments(_pch_compile_flags)
if(_source MATCHES \\.\(cc|cxx|cpp\)$)
list(APPEND _pch_compile_flags -Winvalid-pch -include "${_pchfile}")
else()
list(APPEND _pch_compile_flags -Winvalid-pch "-I${_pch_binary_dir}")
endif()
get_source_file_property(_object_depends "${_source}" OBJECT_DEPENDS)
if(NOT _object_depends)
set(_object_depends)
endif()
list(APPEND _object_depends "${_pchfile}")
if(_source MATCHES \\.\(cc|cxx|cpp\)$)
list(APPEND _object_depends "${_output_cxx}")
else()
list(APPEND _object_depends "${_output_c}")
endif()
combine_arguments(_pch_compile_flags)
set_source_files_properties(${_source} PROPERTIES
COMPILE_FLAGS "${_pch_compile_flags}"
OBJECT_DEPENDS "${_object_depends}")
endif()
endforeach()
endif(CMAKE_COMPILER_IS_GNUCXX)
endfunction()

View File

@ -58,6 +58,7 @@
'telegram_mac.gypi',
'telegram_linux.gypi',
'qt.gypi',
'qt_rcc.gypi',
'codegen_rules.gypi',
],
@ -202,6 +203,7 @@
'<(src_loc)/core/qthelp_url.cpp',
'<(src_loc)/core/qthelp_url.h',
'<(src_loc)/core/vector_of_moveable.h',
'<(src_loc)/core/version.h',
'<(src_loc)/data/data_abstract_structure.cpp',
'<(src_loc)/data/data_abstract_structure.h',
'<(src_loc)/data/data_drafts.cpp',
@ -462,19 +464,11 @@
'<(src_loc)/window/top_bar_widget.cpp',
'<(src_loc)/window/top_bar_widget.h',
],
'configurations': {
'Release': {
'conditions': [
['"<(official_build_target)" != ""', {
'defines': [
'CUSTOM_API_ID',
],
}],
],
},
},
'conditions': [
[ '"<(official_build_target)" != ""', {
'defines': [
'CUSTOM_API_ID',
],
'dependencies': [
'utils.gyp:Packer',
],

View File

@ -18,10 +18,11 @@
# Copyright (c) 2014 John Preston, https://desktop.telegram.org
{
'includes': [
'includes': [
'settings_win.gypi',
'settings_mac.gypi',
],
'settings_linux.gypi',
],
'variables': {
'variables': {
'variables': {
@ -58,7 +59,7 @@
'build_mac%': '<(build_mac)',
'build_linux%': '<(build_linux)',
'official_build_target%': '<!(python <(DEPTH)/official.py --read-target)',
'official_build_target%': '<!(python <(DEPTH)/official.py --read-target)',
},
'build_os%': '<(build_os)',
'build_win%': '<(build_win)',

View File

@ -23,14 +23,13 @@
'variables': {
'variables': {
'qt_libs': [
'Qt5Core',
'Qt5Gui',
'Qt5Widgets',
'qtharfbuzzng',
'Qt5Network',
'Qt5PlatformSupport',
'Qt5PrintSupport',
'qwebp',
'Qt5PrintSupport',
'Qt5PlatformSupport',
'Qt5Network',
'Qt5Widgets',
'Qt5Gui',
'qtharfbuzzng',
],
'conditions': [
[ 'build_macold', {
@ -48,8 +47,11 @@
'qt_lib_release_postfix': '<(ld_lib_postfix)',
'qt_libs': [
'<@(qt_libs)',
'Qt5Core',
'qtmain',
'qwindows',
'qtfreetype',
'qtpcre',
],
}],
[ 'build_mac', {
@ -58,20 +60,54 @@
'qt_lib_release_postfix': '<(ld_lib_postfix)',
'qt_libs': [
'<@(qt_libs)',
'Qt5Core',
'qgenericbearer',
'qcocoa',
],
}],
[ 'build_macold', {
'qt_loc_unix': '/usr/local/Qt-<(qt_version)'
}, {
}],
[ 'build_mac and not build_macold', {
'qt_loc_unix': '/usr/local/tdesktop/Qt-<(qt_version)',
'qt_libs': [
'<@(qt_libs)',
'qtfreetype',
'qtpcre',
'<@(qt_libs)',
'Qt5Core',
'qtfreetype',
'qtpcre',
],
}]
}],
[ 'build_linux', {
'qt_loc_unix': '/usr/local/tdesktop/Qt-<(qt_version)',
'qt_lib_prefix': 'lib',
'qt_lib_debug_postfix': '.a',
'qt_lib_release_postfix': '.a',
'qt_libs': [
'qxcb',
'Qt5XcbQpa',
'qconnmanbearer',
'qgenericbearer',
'qnmbearer',
'<@(qt_libs)',
'Qt5DBus',
'Qt5Core',
'qtpcre',
'ssl',
'crypto',
'Xi',
'Xext',
'SM',
'ICE',
'fontconfig',
'expat',
'freetype',
'xcb',
'xcb-shm',
'xcb-xfixes',
'xcb-render',
'xcb-static',
],
}],
],
},
'qt_version%': '<(qt_version)',
@ -143,6 +179,10 @@
'include_dirs': [
'<(qt_loc)/include',
'<(qt_loc)/include/QtCore',
'<(qt_loc)/include/QtGui',
'<(qt_loc)/include/QtCore/<(qt_version)',
'<(qt_loc)/include/QtGui/<(qt_version)',
'<(qt_loc)/include/QtCore/<(qt_version)/QtCore',
'<(qt_loc)/include/QtGui/<(qt_version)/QtGui',
],
@ -152,6 +192,7 @@
'<(qt_loc)/plugins/bearer',
'<(qt_loc)/plugins/platforms',
'<(qt_loc)/plugins/imageformats',
'<(qt_loc)/plugins/platforminputcontexts',
],
'defines': [
'QT_WIDGETS_LIB',
@ -159,6 +200,33 @@
'QT_GUI_LIB',
'QT_CORE_LIB',
],
'conditions': [
[ 'build_linux', {
'library_dirs': [
'<(qt_loc)/plugins/platforms/xcb/xcb-static',
],
'libraries': [
'/usr/local/lib/libxkbcommon.a',
'<@(qt_libs_release)',
'X11',
'X11-xcb',
'dbus-1',
'dl',
'gthread-2.0',
'glib-2.0',
'pthread',
],
'include_dirs': [
'<(qt_loc)/mkspecs/linux-g++',
],
'ldflags': [
'-static-libstdc++',
'-pthread',
'-g',
'-rdynamic',
],
}],
],
'rules': [{
'rule_name': 'qt_moc',
@ -179,23 +247,5 @@
],
'message': 'Moc-ing <(RULE_INPUT_ROOT).h..',
'process_outputs_as_sources': 1,
}, {
'rule_name': 'qt_rcc',
'extension': 'qrc',
'inputs': [
'<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
],
'action': [
'<(qt_loc)/bin/rcc<(exe_ext)',
'-name', '<(RULE_INPUT_ROOT)',
'-no-compress',
'<(RULE_INPUT_PATH)',
'-o', '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
],
'message': 'Rcc-ing <(RULE_INPUT_ROOT).qrc..',
'process_outputs_as_sources': 1,
}],
}

40
Telegram/gyp/qt_rcc.gypi Normal file
View File

@ -0,0 +1,40 @@
# This file is part of Telegram Desktop,
# the official desktop version of Telegram messaging app, see https://telegram.org
#
# Telegram Desktop is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# It is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# In addition, as a special exception, the copyright holders give permission
# to link the code of portions of this program with the OpenSSL library.
#
# Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
# Copyright (c) 2014 John Preston, https://desktop.telegram.org
{
'rules': [{
'rule_name': 'qt_rcc',
'extension': 'qrc',
'inputs': [
'<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
],
'action': [
'<(qt_loc)/bin/rcc<(exe_ext)',
'-name', '<(RULE_INPUT_ROOT)',
'-no-compress',
'<(RULE_INPUT_PATH)',
'-o', '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
],
'message': 'Rcc-ing <(RULE_INPUT_ROOT).qrc..',
'process_outputs_as_sources': 1,
}],
}

View File

@ -4,12 +4,24 @@ pushd `dirname $0` > /dev/null
FullScriptPath=`pwd`
popd > /dev/null
MySystem=`uname -s`
cd $FullScriptPath
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=ninja
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode-ninja
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode
# use patched gyp with Xcode project generator
../../../Libraries/gyp/gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode
if [ "$MySystem" == "Linux" ]; then
../../../Libraries/gyp/gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=cmake
cd ../../out/Debug
../../../Libraries/cmake-3.6.2/bin/cmake .
cd ../Release
../../../Libraries/cmake-3.6.2/bin/cmake .
cd ../../Telegram/gyp
else
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=ninja
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode-ninja
#gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode
# use patched gyp with Xcode project generator
../../../Libraries/gyp/gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode
fi
cd ../..
cd $FullExecPath

View File

@ -0,0 +1,79 @@
# This file is part of Telegram Desktop,
# the official desktop version of Telegram messaging app, see https://telegram.org
#
# Telegram Desktop is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# It is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# In addition, as a special exception, the copyright holders give permission
# to link the code of portions of this program with the OpenSSL library.
#
# Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
# Copyright (c) 2014 John Preston, https://desktop.telegram.org
{
'conditions': [
[ 'build_linux', {
'variables': {
'linux_common_flags': [
'-pipe',
'-g',
'-Wall',
'-W',
'-fPIC',
'-Wno-unused-result',
'-Wno-unused-variable',
'-Wno-unused-parameter',
'-Wno-unused-function',
'-Wno-switch',
'-Wno-comment',
'-Wno-unused-but-set-variable',
'-Wno-missing-field-initializers',
],
},
'conditions': [
[ '"<!(uname -p)" == "x86_64"', {
'defines': [
'Q_OS_LINUX64',
],
'conditions': [
[ '"<(official_build_target)" != "" and "<(official_build_target)" != "linux"', {
'sources': [ '__Wrong_Official_Build_Target__' ],
}],
],
}, {
'defines': [
'Q_OS_LINUX32',
],
'conditions': [
[ '"<(official_build_target)" != "" and "<(official_build_target)" != "linux32"', {
'sources': [ '__Wrong_Official_Build_Target_<(official_build_target)_' ],
}],
],
}],
],
'defines': [
'_REENTRANT',
'QT_STATICPLUGIN',
'QT_PLUGIN',
],
'cflags': [
'<@(linux_common_flags)',
],
'cflags_cc': [
'<@(linux_common_flags)',
'-std=gnu++1y',
],
'configurations': {
'Debug': {
},
},
}],
],
}

View File

@ -73,13 +73,18 @@
'CLANG_CXX_LANGUAGE_STANDARD': 'c++14',
},
'configurations': {
'Debug': {
'xcode_settings': {
'ENABLE_TESTABILITY': 'YES',
'ONLY_ACTIVE_ARCH': 'YES',
},
},
'Debug': {
'xcode_settings': {
'ENABLE_TESTABILITY': 'YES',
'ONLY_ACTIVE_ARCH': 'YES',
},
},
},
'conditions': [
[ '"<(official_build_target)" != "" and "<(official_build_target)" != "mac" and "<(official_build_target)" != "mac32" and "<(official_build_target)" != "macstore"', {
'sources': [ '__Wrong_Official_Build_Target__' ],
}],
],
}],
[ 'build_macold', {
'xcode_settings': {

View File

@ -101,6 +101,11 @@
},
},
},
'conditions': [
[ '"<(official_build_target)" != "" and "<(official_build_target)" != "win"', {
'sources': [ '__Wrong_Official_Build_Target__' ],
}],
],
}],
],
}

View File

@ -19,6 +19,15 @@
{
'conditions': [[ 'build_linux', {
'variables': {
'pkgconfig_libs': [
# 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',
],
},
'include_dirs': [
'/usr/local/include',
'<(libs_loc)/openssl-xcode/include'
@ -26,11 +35,52 @@
'library_dirs': [
'/usr/local/lib',
'<(libs_loc)/libexif-0.6.20/libexif/.libs',
'<(libs_loc)/breakpad/src/client/linux',
],
'libraries': [
'-lssl',
'-lcrypto',
'-llzma',
'breakpad_client',
'composeplatforminputcontextplugin',
'ibusplatforminputcontextplugin',
'fcitxplatforminputcontextplugin',
'liblzma.a',
'libopenal.a',
'libavformat.a',
'libavcodec.a',
'libswresample.a',
'libswscale.a',
'libavutil.a',
'libopus.a',
'libva-x11.a',
'libva-drm.a',
'libva.a',
'libz.a',
# '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
],
'cflags_cc': [
'<!(pkg-config 2> /dev/null --cflags appindicator-0.1)',
'<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
'<!(pkg-config 2> /dev/null --cflags glib-2.0)',
'<!(pkg-config 2> /dev/null --cflags dee-1.0)',
],
'configurations': {
'Release': {
'cflags': [
'-Ofast',
'-flto',
'-fno-strict-aliasing',
],
'cflags_cc': [
'-Ofast',
'-flto',
'-fno-strict-aliasing',
],
'ldflags': [
'-Ofast',
'-flto',
],
},
},
'cmake_precompiled_header': '<(src_loc)/stdafx.h',
'cmake_precompiled_header_script': 'PrecompiledHeader.cmake',
}]],
}

View File

@ -84,6 +84,13 @@
'LzmaLib',
],
}],
[ 'build_linux', {
'libraries': [
'ssl',
'crypto',
'lzma',
],
}],
],
'xcode_settings': {
'OTHER_LDFLAGS': [

View File

@ -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

193
doc/building-cmake.md Normal file
View File

@ -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.

View File

@ -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

View File

@ -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
@ -186,3 +188,5 @@ In Terminal go to **/home/user/TBuild/tdesktop** and run
* Open Telegram.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediate** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediate** and build for Debug, if GeneratedFiles are not found click **Run qmake** from **Build** menu and try again
* Open Updater.pro, configure project with paths **/home/user/TBuild/tdesktop/Linux/DebugIntermediateUpdater** and **/home/user/TBuild/tdesktop/Linux/ReleaseIntermediateUpdater** and build for Debug
* Release Telegram build will require removing **CUSTOM_API_ID** definition in Telegram.pro project and may require changing paths in **/home/user/TBuild/tdesktop/Telegram/FixMake.sh** or **/home/user/TBuild/tdesktop/Telegram/FixMake32.sh** for static library linking fix, static linking applies only on second Release build (first uses old Makefile)
[cmake]: building-cmake.md

View File

@ -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

View File

@ -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,17 @@ 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
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.