First attempt to build OS X version using GYP/Ninja.

Utils and codegen builds are ready, bundle is not prepared yet.
This commit is contained in:
John Preston 2016-08-28 13:36:51 -06:00
parent ac7064963d
commit f50cd2892a
16 changed files with 516 additions and 190 deletions

View File

@ -27,14 +27,7 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
#endif
#ifdef Q_OS_MAC
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QDDSPlugin)
Q_IMPORT_PLUGIN(QICNSPlugin)
Q_IMPORT_PLUGIN(QICOPlugin)
Q_IMPORT_PLUGIN(QTgaPlugin)
Q_IMPORT_PLUGIN(QTiffPlugin)
Q_IMPORT_PLUGIN(QWbmpPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
//Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
#endif
typedef unsigned int uint32;

View File

@ -23,14 +23,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
#include <QtCore/QtPlugin>
#ifdef Q_OS_MAC
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QDDSPlugin)
Q_IMPORT_PLUGIN(QICNSPlugin)
Q_IMPORT_PLUGIN(QICOPlugin)
Q_IMPORT_PLUGIN(QTgaPlugin)
Q_IMPORT_PLUGIN(QTiffPlugin)
Q_IMPORT_PLUGIN(QWbmpPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
//Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
#endif
bool AlphaChannel = false;

View File

@ -30,12 +30,6 @@ Q_IMPORT_PLUGIN(QWebpPlugin)
#elif defined Q_OS_MAC // Q_OS_WIN
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QDDSPlugin)
Q_IMPORT_PLUGIN(QICNSPlugin)
Q_IMPORT_PLUGIN(QICOPlugin)
Q_IMPORT_PLUGIN(QTgaPlugin)
Q_IMPORT_PLUGIN(QTiffPlugin)
Q_IMPORT_PLUGIN(QWbmpPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
#elif defined Q_OS_LINUX // Q_OS_LINUX
Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin)

View File

@ -24,6 +24,7 @@
'libs_loc': '../../../Libraries',
'src_loc': '../SourceFiles',
'res_loc': '../Resources',
'minizip_loc': '../ThirdParty/minizip',
'style_files': [
'<(res_loc)/basic.style',
'<(res_loc)/basic_types.style',
@ -35,13 +36,14 @@
'<(src_loc)/profile/profile.style',
'<(src_loc)/ui/widgets/widgets.style',
],
'qrc_files': [
'<(res_loc)/telegram.qrc',
'<(res_loc)/telegram_emojis.qrc',
],
'mac_target': '10.8',
},
'includes': [
'common_executable.gypi',
'telegram_qrc.gypi',
'telegram_win.gypi',
'telegram_mac.gypi',
'telegram_linux.gypi',
'qt.gypi',
'codegen_rules.gypi',
],
@ -61,12 +63,14 @@
'<(src_loc)',
'<(SHARED_INTERMEDIATE_DIR)',
'<(libs_loc)/breakpad/src',
'<(libs_loc)/crashpad/crashpad',
'<(libs_loc)/crashpad/crashpad/third_party/mini_chromium/mini_chromium',
'<(libs_loc)/lzma/C',
'<(libs_loc)/libexif-0.6.20',
'<(libs_loc)/zlib-1.2.8',
'<(libs_loc)/ffmpeg',
'<(libs_loc)/openal-soft/include',
'../ThirdParty/minizip',
'<(minizip_loc)',
],
'library_dirs': [
'<(libs_loc)/ffmpeg',
@ -277,6 +281,12 @@
'<(src_loc)/overview/overview_layout.h',
'<(src_loc)/pspecific_win.cpp',
'<(src_loc)/pspecific_win.h',
'<(src_loc)/pspecific_mac.cpp',
'<(src_loc)/pspecific_mac.h',
'<(src_loc)/pspecific_mac_p.mm',
'<(src_loc)/pspecific_mac_p.h',
'<(src_loc)/pspecific_linux.cpp',
'<(src_loc)/pspecific_linux.h',
'<(src_loc)/platform/linux/linux_gdk_helper.cpp',
'<(src_loc)/platform/linux/linux_gdk_helper.h',
'<(src_loc)/platform/linux/linux_libs.cpp',
@ -407,20 +417,6 @@
'<(src_loc)/window/top_bar_widget.h',
],
'configurations': {
'Debug': {
'include_dirs': [
'<(libs_loc)/openssl_debug/Debug/include',
],
'library_dirs': [
'<(libs_loc)/lzma/C/Util/LzmaLib/Debug',
'<(libs_loc)/libexif-0.6.20/win32/Debug',
'<(libs_loc)/opus/win32/VS2010/Win32/Debug',
'<(libs_loc)/openal-soft/build/Debug',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatDebug',
'<(libs_loc)/openssl_debug/Debug/lib',
'<(libs_loc)/breakpad/src/client/windows/Debug',
],
},
'Release': {
'conditions': [
['"<(official_build_target)" != ""', {
@ -429,79 +425,18 @@
],
}],
],
'include_dirs': [
'<(libs_loc)/openssl/Release/include',
],
'library_dirs': [
'<(libs_loc)/lzma/C/Util/LzmaLib/Release',
'<(libs_loc)/libexif-0.6.20/win32/Release',
'<(libs_loc)/opus/win32/VS2010/Win32/Release',
'<(libs_loc)/openal-soft/build/Release',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatRelease',
'<(libs_loc)/openssl/Release/lib',
'<(libs_loc)/breakpad/src/client/windows/Release',
],
},
},
'libraries': [
'libeay32',
'ssleay32',
'Crypt32',
'zlibstat',
'LzmaLib',
'lib_exif',
'UxTheme',
'DbgHelp',
'OpenAL32',
'common',
'libavformat\libavformat.a',
'libavcodec\libavcodec.a',
'libavutil\libavutil.a',
'libswresample\libswresample.a',
'libswscale\libswscale.a',
'opus',
'celt',
'silk_common',
'silk_float',
'lib\common',
'lib\exception_handler',
'lib\crash_generation_client',
],
'conditions': [
[ '"<(official_build_target)" != ""', {
'dependencies': [
'utils.gyp:Packer',
],
}],
[ 'build_linux', {
'variables': {
'qrc_files': [
'<(res_loc)/telegram_linux.qrc',
],
}
}],
[ 'build_mac', {
'variables': {
'qrc_files': [
'<(res_loc)/telegram_mac.qrc',
],
}
}],
[ 'build_win', {
'msvs_precompiled_source': '<(src_loc)/stdafx.cpp',
'msvs_precompiled_header': '<(src_loc)/stdafx.h',
'msbuild_toolset': 'v140_xp', #Windows7.1SDK
'sources': [
'<(res_loc)/winrc/Telegram.rc',
],
'variables': {
'qrc_files': [
'<(res_loc)/telegram_wnd.qrc',
],
}
}],
[ '"<(build_linux)" != "1"', {
'sources!': [
'<(src_loc)/pspecific_linux.cpp',
'<(src_loc)/pspecific_linux.h',
'<(src_loc)/platform/linux/linux_gdk_helper.cpp',
'<(src_loc)/platform/linux/linux_gdk_helper.h',
'<(src_loc)/platform/linux/linux_libs.cpp',
@ -514,12 +449,25 @@
}],
[ '"<(build_mac)" != "1"', {
'sources!': [
'<(src_loc)/pspecific_mac.cpp',
'<(src_loc)/pspecific_mac.h',
'<(src_loc)/pspecific_mac_p.mm',
'<(src_loc)/pspecific_mac_p.h',
'<(src_loc)/platform/mac/main_window_mac.mm',
'<(src_loc)/platform/mac/main_window_mac.h',
],
}],
[ '"<(build_win)" != "1"', {
'sources': [
'<(minizip_loc)/crypt.h',
'<(minizip_loc)/ioapi.c',
'<(minizip_loc)/ioapi.h',
'<(minizip_loc)/zip.c',
'<(minizip_loc)/zip.h',
],
'sources!': [
'<(src_loc)/pspecific_win.cpp',
'<(src_loc)/pspecific_win.h',
'<(src_loc)/platform/win/main_window_win.cpp',
'<(src_loc)/platform/win/main_window_win.h',
'<(src_loc)/platform/win/windows_app_user_model_id.cpp',

View File

@ -24,6 +24,7 @@
'libs_loc': '../../../Libraries',
'src_loc': '../SourceFiles',
'gen_loc': '../GeneratedFiles',
'mac_target': '10.10',
},
'includes': [
'common_executable.gypi',
@ -45,6 +46,7 @@
'variables': {
'libs_loc': '../../../Libraries',
'src_loc': '../SourceFiles',
'mac_target': '10.10',
},
'includes': [
'common_executable.gypi',
@ -88,6 +90,7 @@
'variables': {
'libs_loc': '../../../Libraries',
'src_loc': '../SourceFiles',
'mac_target': '10.10',
},
'includes': [
'common_executable.gypi',

View File

@ -21,7 +21,7 @@
'actions': [{
'action_name': 'update_sprites',
'inputs': [
'<(PRODUCT_DIR)/codegen_style.exe',
'<(PRODUCT_DIR)/codegen_style<(exe_ext)',
'<(res_loc)/basic.style',
'<(res_loc)/art/sprite.png',
'<(res_loc)/art/sprite_200x.png',
@ -31,7 +31,7 @@
'<(res_loc)/art/sprite_150x.png',
],
'action': [
'<(PRODUCT_DIR)/codegen_style.exe',
'<(PRODUCT_DIR)/codegen_style<(exe_ext)',
'-I<(res_loc)', '-I<(src_loc)',
'--skip-styles', '<(res_loc)/basic.style',
],
@ -71,7 +71,7 @@
}, {
'action_name': 'codegen_lang',
'inputs': [
'<(PRODUCT_DIR)/MetaLang.exe',
'<(PRODUCT_DIR)/MetaLang<(exe_ext)',
'<(res_loc)/langs/lang.strings',
],
'outputs': [
@ -79,7 +79,7 @@
'<(SHARED_INTERMEDIATE_DIR)/lang_auto.h',
],
'action': [
'<(PRODUCT_DIR)/MetaLang.exe',
'<(PRODUCT_DIR)/MetaLang<(exe_ext)',
'-lang_in', '<(res_loc)/langs/lang.strings',
'-lang_out', '<(SHARED_INTERMEDIATE_DIR)/lang_auto',
],
@ -88,7 +88,7 @@
}, {
'action_name': 'codegen_numbers',
'inputs': [
'<(PRODUCT_DIR)/codegen_numbers.exe',
'<(PRODUCT_DIR)/codegen_numbers<(exe_ext)',
'<(res_loc)/numbers.txt',
],
'outputs': [
@ -96,7 +96,7 @@
'<(SHARED_INTERMEDIATE_DIR)/numbers.h',
],
'action': [
'<(PRODUCT_DIR)/codegen_numbers.exe',
'<(PRODUCT_DIR)/codegen_numbers<(exe_ext)',
'-o<(SHARED_INTERMEDIATE_DIR)', '<(res_loc)/numbers.txt',
],
'message': 'codegen_numbers-ing numbers.txt..',
@ -106,7 +106,7 @@
'rule_name': 'codegen_style',
'extension': 'style',
'inputs': [
'<(PRODUCT_DIR)/codegen_style.exe',
'<(PRODUCT_DIR)/codegen_style<(exe_ext)',
'<(SHARED_INTERMEDIATE_DIR)/update_dependent_styles.timestamp',
],
'outputs': [
@ -114,7 +114,7 @@
'<(SHARED_INTERMEDIATE_DIR)/styles/style_<(RULE_INPUT_ROOT).cpp',
],
'action': [
'<(PRODUCT_DIR)/codegen_style.exe',
'<(PRODUCT_DIR)/codegen_style<(exe_ext)',
'-I<(res_loc)', '-I<(src_loc)', '--skip-sprites',
'-o<(SHARED_INTERMEDIATE_DIR)/styles', '<(RULE_INPUT_PATH)',
],

View File

@ -21,31 +21,44 @@
'variables': {
'variables': {
'variables': {
'build_os%': '<(OS)',
'variables': {
'variables': {
'build_os%': '<(OS)',
},
'build_os%': '<(build_os)',
'conditions': [
[ 'build_os == "win"', {
'build_win': 1,
}, {
'build_win': 0,
}],
[ 'build_os == "mac"', {
'build_mac': 1,
}, {
'build_mac': 0,
}],
[ 'build_os == "linux"', {
'build_linux': 1,
}, {
'build_linux': 0,
}],
],
},
'build_os%': '<(build_os)',
'build_win%': '<(build_win)',
'build_mac%': '<(build_mac)',
'build_linux%': '<(build_linux)',
},
'build_os%': '<(build_os)',
'conditions': [
[ 'build_os == "win"', {
'build_win': 1,
}, {
'build_win': 0,
}],
[ 'build_os == "mac"', {
'build_mac': 1,
}, {
'build_mac': 0,
}],
[ 'build_os == "linux"', {
'build_linux': 1,
}, {
'build_linux': 0,
}],
],
'build_win%': '<(build_win)',
'build_mac%': '<(build_mac)',
'build_linux%': '<(build_linux)',
},
'build_os%': '<(build_os)',
'build_win%': '<(build_win)',
'build_mac%': '<(build_mac)',
'build_linux%': '<(build_linux)',
'mac_target%': '10.8',
# GYP does not support per-configuration libraries :(
# So they will be emulated through additional link flags,
@ -54,13 +67,16 @@
[ 'build_win', {
'ld_lib_prefix': '',
'ld_lib_postfix': '.lib',
'exe_ext': '.exe',
}, {
'ld_lib_prefix': '-l',
'ld_lib_postfix': '',
'exe_ext': '',
}],
],
'ld_lib_prefix': '<(ld_lib_prefix)',
'ld_lib_postfix': '<(ld_lib_postfix)',
'exe_ext': '<(exe_ext)',
'library%': 'static_library',

View File

@ -25,5 +25,6 @@
'includes': [
'common.gypi',
'settings_win.gypi',
'settings_mac.gypi',
],
}

View File

@ -21,51 +21,61 @@
'variables': {
'variables': {
'variables': {
'variables': {
'qt_libs': [
'Qt5Core',
'qtpcre',
'Qt5Gui',
'qtfreetype',
'Qt5Widgets',
'qtharfbuzzng',
'Qt5Network',
'Qt5PlatformSupport',
'Qt5PrintSupport',
'qwebp',
],
},
'qt_version%': '5.6.0',
'conditions': [
[ 'build_win', {
'qt_lib_prefix': '<(ld_lib_prefix)',
'qt_lib_debug_postfix': 'd<(ld_lib_postfix)',
'qt_lib_release_postfix': '<(ld_lib_postfix)',
'qt_libs': [
'<@(qt_libs)',
'qtmain',
'qwindows',
],
}],
[ 'build_mac', {
'qt_lib_prefix': '<(ld_lib_prefix)',
'qt_lib_debug_postfix': '_debug<(ld_lib_postfix)',
'qt_lib_release_postfix': '<(ld_lib_postfix)',
'qt_libs': [
'<@(qt_libs)',
'qgenericbearer',
'qcocoa',
],
}],
],
},
'qt_version%': '<(qt_version)',
'qt_version_loc': '<!(python -c "print(\'<(qt_version)\'.replace(\'.\', \'_\')))',
'qtlibs_debug': [
'<(ld_lib_prefix)Qt5Cored<(ld_lib_postfix)',
'<(ld_lib_prefix)qtmaind<(ld_lib_postfix)',
'<(ld_lib_prefix)qtpcred<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Guid<(ld_lib_postfix)',
'<(ld_lib_prefix)qtfreetyped<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Widgetsd<(ld_lib_postfix)',
'<(ld_lib_prefix)qtharfbuzzngd<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Networkd<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5PlatformSupportd<(ld_lib_postfix)',
'<(ld_lib_prefix)imageformats\qwebpd<(ld_lib_postfix)',
'qt_version_loc': '<!(python -c "print(\'<(qt_version)\'.replace(\'.\', \'_\'))")',
'qt_libs_debug': [
'<!@(python -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_debug_postfix)\')")',
],
'qtlibs_release': [
'<(ld_lib_prefix)Qt5Core<(ld_lib_postfix)',
'<(ld_lib_prefix)qtmain<(ld_lib_postfix)',
'<(ld_lib_prefix)qtpcre<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Gui<(ld_lib_postfix)',
'<(ld_lib_prefix)qtfreetype<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Widgets<(ld_lib_postfix)',
'<(ld_lib_prefix)qtharfbuzzng<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5Network<(ld_lib_postfix)',
'<(ld_lib_prefix)Qt5PlatformSupport<(ld_lib_postfix)',
'<(ld_lib_prefix)imageformats\qwebp<(ld_lib_postfix)',
'qt_libs_release': [
'<!@(python -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_release_postfix)\')")',
],
},
'qt_libs_debug': [ '<@(qt_libs_debug)' ],
'qt_libs_release': [ '<@(qt_libs_release)' ],
'qt_version%': '<(qt_version)',
'conditions': [
[ 'build_win', {
'qtlibs_debug': [
'<(ld_lib_prefix)platforms/qwindowsd<(ld_lib_postfix)',
'<@(qtlibs_debug)',
],
'qtlibs_release': [
'<(ld_lib_prefix)platforms/qwindows<(ld_lib_postfix)',
'<@(qtlibs_release)',
],
'qt_loc': '../../../Libraries/qt<(qt_version_loc)/qtbase',
}, {
'qtlibs_debug': [ '<@(qtlibs_debug)' ],
'qtlibs_release': [ '<@(qtlibs_release)' ],
'qt_loc': '/usr/local/qt<(qt_version_loc)/qtbase',
'qt_loc': '/usr/local/tdesktop/Qt-<(qt_version)',
}],
],
},
@ -77,11 +87,19 @@
'msvs_settings': {
'VCLinkerTool': {
'AdditionalDependencies': [
'<@(qtlibs_debug)'
'<@(qt_libs_debug)',
],
},
},
}],
[ 'build_mac', {
'xcode_settings': {
'OTHER_LDFLAGS': [
'<@(qt_libs_debug)',
'/usr/local/lib/libz.a',
],
},
}],
],
},
'Release': {
@ -90,11 +108,19 @@
'msvs_settings': {
'VCLinkerTool': {
'AdditionalDependencies': [
'<@(qtlibs_release)',
'<@(qt_libs_release)',
],
},
},
}],
[ 'build_mac', {
'xcode_settings': {
'OTHER_LDFLAGS': [
'<@(qt_libs_release)',
'/usr/local/lib/libz.a',
],
},
}],
],
},
},
@ -107,6 +133,9 @@
'library_dirs': [
'<(qt_loc)/lib',
'<(qt_loc)/plugins',
'<(qt_loc)/plugins/bearer',
'<(qt_loc)/plugins/platforms',
'<(qt_loc)/plugins/imageformats',
],
'defines': [
'QT_WIDGETS_LIB',
@ -122,13 +151,13 @@
'<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
],
'action': [
'<(qt_loc)/bin/moc.exe',
'<(qt_loc)/bin/moc<(exe_ext)',
# Silence "Note: No relevant classes found. No output generated."
'--no-notes',
'<!@(python -c "for s in \'<@(_defines)\'.split(\' \'): print(\'-D\' + s))',
# '<!@(python -c "for s in \'<@(_include_dirs)\'.split(\' \'): print(\'-I\' + s))',
'<!@(python -c "for s in \'<@(_defines)\'.split(\' \'): print(\'-D\' + s)")',
# '<!@(python -c "for s in \'<@(_include_dirs)\'.split(\' \'): print(\'-I\' + s)")',
'<(RULE_INPUT_PATH)',
'-o', '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
],
@ -144,7 +173,7 @@
'<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
],
'action': [
'<(qt_loc)/bin/rcc.exe',
'<(qt_loc)/bin/rcc<(exe_ext)',
'-name', '<(RULE_INPUT_ROOT)',
'-no-compress',
'<(RULE_INPUT_PATH)',

13
Telegram/gyp/refresh.sh Executable file
View File

@ -0,0 +1,13 @@
set -e
FullExecPath=$PWD
pushd `dirname $0` > /dev/null
FullScriptPath=`pwd`
popd > /dev/null
cd $FullScriptPath
gyp --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=xcode
cd ../..
cd $FullExecPath
exit

View File

@ -0,0 +1,64 @@
# 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_mac', {
'variables': {
'mac_frameworks': [
'Cocoa',
'CoreFoundation',
'CoreServices',
'CoreText',
'CoreGraphics',
'OpenGL',
'VideoToolbox',
'VideoDecodeAcceleration',
'AudioUnit',
'ApplicationServices',
'Foundation',
'AGL',
'Security',
'SystemConfiguration',
'Carbon',
'AudioToolbox',
'CoreAudio',
'QuartzCore',
'AVFoundation',
'CoreMedia',
'AppKit',
'CoreWLAN',
'IOKit',
],
},
'xcode_settings': {
'OTHER_CPLUSPLUSFLAGS': [
'-std=c++14',
'-Wno-switch',
'-stdlib=libc++',
],
'OTHER_LDFLAGS': [
'-stdlib=libc++',
'<!@(python -c "for s in \'<@(mac_frameworks)\'.split(\' \'): print(\'-framework \' + s)")',
],
'MACOSX_DEPLOYMENT_TARGET': '<(mac_target)',
},
}],
],
}

View File

@ -0,0 +1,36 @@
# 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', {
'include_dirs': [
'/usr/local/include',
'<(libs_loc)/openssl-xcode/include'
],
'library_dirs': [
'/usr/local/lib',
'<(libs_loc)/libexif-0.6.20/libexif/.libs',
],
'libraries': [
'-lssl',
'-lcrypto',
'-llzma',
],
}]],
}

View File

@ -0,0 +1,68 @@
# 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_mac', {
'xcode_settings': {
'GCC_PREFIX_HEADER': '<(src_loc)/stdafx.h',
'GCC_PRECOMPILE_PREFIX_HEADER': 'YES',
},
'include_dirs': [
'/usr/local/include',
'<(libs_loc)/openssl-xcode/include'
],
'library_dirs': [
'/usr/local/lib',
'<(libs_loc)/libexif-0.6.20/libexif/.libs',
'<(libs_loc)/openssl-xcode',
],
'configurations': {
'Debug': {
'library_dirs': [
'<(libs_loc)/crashpad/crashpad/out/Debug',
],
},
'Release': {
'library_dirs': [
'<(libs_loc)/crashpad/crashpad/out/Release',
],
},
},
'libraries': [
'-lcups',
'-lbsm',
'-lm',
'-lssl',
'-lcrypto',
'-llzma',
'-lopenal',
'-lopus',
'-lexif',
'-lavcodec',
'-lavformat',
'-lswscale',
'-lswresample',
'-lavutil',
'-liconv',
'-lbase',
'-lcrashpad_client',
'-lcrashpad_util',
],
}]],
}

View File

@ -0,0 +1,50 @@
# 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
{
'variables': {
'qrc_files': [
'<(res_loc)/telegram.qrc',
'<(res_loc)/telegram_emojis.qrc',
],
},
'conditions': [
[ 'build_linux', {
'variables': {
'qrc_files': [
'<(res_loc)/telegram_linux.qrc',
],
}
}],
[ 'build_mac', {
'variables': {
'qrc_files': [
'<(res_loc)/telegram_mac.qrc',
],
},
}],
[ 'build_win', {
'variables': {
'qrc_files': [
'<(res_loc)/telegram_wnd.qrc',
],
}
}],
],
}

View File

@ -0,0 +1,83 @@
# 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_win', {
'msvs_precompiled_source': '<(src_loc)/stdafx.cpp',
'msvs_precompiled_header': '<(src_loc)/stdafx.h',
'msbuild_toolset': 'v140_xp', #Windows7.1SDK
'sources': [
'<(res_loc)/winrc/Telegram.rc',
],
'libraries': [
'libeay32',
'ssleay32',
'Crypt32',
'zlibstat',
'LzmaLib',
'UxTheme',
'DbgHelp',
'lib_exif',
'OpenAL32',
'common',
'libavformat/libavformat.a',
'libavcodec/libavcodec.a',
'libavutil/libavutil.a',
'libswresample/libswresample.a',
'libswscale/libswscale.a',
'opus',
'celt',
'silk_common',
'silk_float',
'lib/common',
'lib/exception_handler',
'lib/crash_generation_client',
],
'configurations': {
'Debug': {
'include_dirs': [
'<(libs_loc)/openssl_debug/Debug/include',
],
'library_dirs': [
'<(libs_loc)/openssl_debug/Debug/lib',
'<(libs_loc)/lzma/C/Util/LzmaLib/Debug',
'<(libs_loc)/libexif-0.6.20/win32/Debug',
'<(libs_loc)/opus/win32/VS2010/Win32/Debug',
'<(libs_loc)/openal-soft/build/Debug',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatDebug',
'<(libs_loc)/breakpad/src/client/windows/Debug',
],
},
'Release': {
'include_dirs': [
'<(libs_loc)/openssl/Release/include',
],
'library_dirs': [
'<(libs_loc)/openssl/Release/lib',
'<(libs_loc)/lzma/C/Util/LzmaLib/Release',
'<(libs_loc)/libexif-0.6.20/win32/Release',
'<(libs_loc)/opus/win32/VS2010/Win32/Release',
'<(libs_loc)/openal-soft/build/Release',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatRelease',
'<(libs_loc)/breakpad/src/client/windows/Release',
],
},
},
}]],
}

View File

@ -65,17 +65,28 @@
'variables': {
'libs_loc': '../../../Libraries',
'src_loc': '../SourceFiles',
'mac_target': '10.10',
},
'includes': [
'common_executable.gypi',
'qt.gypi',
],
'libraries': [
'libeay32',
'ssleay32',
'Crypt32',
'zlibstat',
'LzmaLib',
'conditions': [
[ 'build_win', {
'libraries': [
'libeay32',
'ssleay32',
'Crypt32',
'zlibstat',
'LzmaLib',
],
}, {
'libraries': [
'-lssl',
'-lcrypto',
'-llzma',
],
}],
],
'include_dirs': [
@ -89,23 +100,47 @@
],
'configurations': {
'Debug': {
'include_dirs': [
'<(libs_loc)/openssl_debug/Debug/include',
],
'library_dirs': [
'<(libs_loc)/lzma/C/Util/LzmaLib/Debug',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatDebug',
'<(libs_loc)/openssl_debug/Debug/lib',
'conditions': [
[ 'build_win', {
'include_dirs': [
'<(libs_loc)/openssl_debug/Debug/include',
],
'library_dirs': [
'<(libs_loc)/openssl_debug/Debug/lib',
'<(libs_loc)/lzma/C/Util/LzmaLib/Debug',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatDebug',
],
}, {
'include_dirs': [
'/usr/local/include',
'<(libs_loc)/openssl-xcode/include'
],
'library_dirs': [
'/usr/local/lib',
],
}]
],
},
'Release': {
'include_dirs': [
'<(libs_loc)/openssl/Release/include',
],
'library_dirs': [
'<(libs_loc)/lzma/C/Util/LzmaLib/Release',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatRelease',
'<(libs_loc)/openssl/Release/lib',
'conditions': [
[ 'build_win', {
'include_dirs': [
'<(libs_loc)/openssl/Release/include',
],
'library_dirs': [
'<(libs_loc)/openssl/Release/lib',
'<(libs_loc)/lzma/C/Util/LzmaLib/Release',
'<(libs_loc)/zlib-1.2.8/contrib/vstudio/vc11/x86/ZlibStatRelease',
],
}, {
'include_dirs': [
'/usr/local/include',
'<(libs_loc)/openssl-xcode/include'
],
'library_dirs': [
'/usr/local/lib',
],
}]
],
},
},