mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-03-19 01:48:09 +00:00
version 0.5.5 - first release build of os x version
This commit is contained in:
parent
f90db67c30
commit
0c7baa86a4
@ -2,21 +2,21 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSPrincipalClass</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>NSApplication</string>
|
<string>Packer</string>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>Update packer utility for tdesktop</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.ddesktop.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>Created by Qt/QMake</string>
|
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>MetaStyle</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
|
|
||||||
<key>NOTE</key>
|
<key>NOTE</key>
|
||||||
<string>This file was generated by Qt/QMake.</string>
|
<string></string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>NSApplication</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
32
Telegram/Packer.pro
Normal file
32
Telegram/Packer.pro
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
QT += core
|
||||||
|
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
DEFINES += _DEBUG
|
||||||
|
OBJECTS_DIR = ./../Mac/DebugIntermediatePacker
|
||||||
|
MOC_DIR = ./GeneratedFiles/Debug
|
||||||
|
DESTDIR = ./../Mac/DebugPacker
|
||||||
|
}
|
||||||
|
CONFIG(release, debug|release) {
|
||||||
|
OBJECTS_DIR = ./../Mac/ReleaseIntermediatePacker
|
||||||
|
MOC_DIR = ./GeneratedFiles/Release
|
||||||
|
DESTDIR = ./../Mac/ReleasePacker
|
||||||
|
}
|
||||||
|
|
||||||
|
macx {
|
||||||
|
QMAKE_INFO_PLIST = ./SourceFiles/_other/Packer.plist
|
||||||
|
QMAKE_LFLAGS += -framework Cocoa
|
||||||
|
}
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
./SourceFiles/_other/packer.cpp \
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
./SourceFiles/_other/packer.h \
|
||||||
|
|
||||||
|
INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include\
|
||||||
|
./../../Libraries/lzma/C
|
||||||
|
|
||||||
|
LIBS += -lcrypto -lssl -lz
|
||||||
|
|
823
Telegram/Packer.xcodeproj/project.pbxproj
Normal file
823
Telegram/Packer.xcodeproj/project.pbxproj
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXAggregateTarget section */
|
||||||
|
6E977D353048DB44129F752B /* Preprocess */ = {
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */;
|
||||||
|
buildPhases = (
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */,
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = Preprocess;
|
||||||
|
productName = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DBF506D10449BFABD45B82DA /* Qt5PrintSupport */; };
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */; };
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DFD7912080BC557230093752 /* ApplicationServices.framework */; };
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8F500B5166907B6D9A7C3E3D /* qico */; };
|
||||||
|
52B661A713AE959F9084E291 /* packer_plugin_import.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F0681BC551FC8A2B132FC646 /* qjp2 */; };
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9742F24EE18EA44D52824F1E /* CoreServices.framework */; };
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 31120EDB269DFF13E1D49847 /* qicns */; };
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DCEFD9167C239650120B0145 /* qtga */; };
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = A1A67BEAA744704B29168D39 /* IOKit.framework */; };
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D6193B79CECC9DD0142D1200 /* qtharfbuzzng */; };
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 04391BE7A8B9D811E255100A /* Qt5Gui */; };
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8CF51323544B886B8F4A2232 /* qwbmp */; };
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D3D1BE0BEA3AEE0551AD39AC /* qdds */; };
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 5A80A1907B6CFFB524C1E57D /* Qt5Core */; };
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */; };
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F2453BA07315EB9F34F1CD57 /* qtiff */; };
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D53D8E6A188E05078A114294 /* qcocoa */; };
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */; };
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */; };
|
||||||
|
EAA05789DF6EBAD24D3EFF96 /* packer.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = FCC237CA5AD60B9BA4447615 /* Foundation.framework */; };
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = ADC6308023253CEA51F86E21 /* qwebp */; };
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */; };
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9DFF62A901D70814B8A323D4 /* Carbon.framework */; };
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 83D37373949868693FB7816D /* qmng */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
072AB35C1955F39D00328D9B /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 6E977D353048DB44129F752B;
|
||||||
|
remoteInfo = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Gui; path = "/usr/local/Qt-5.3.0/lib/libQt5Gui$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = "<absolute>"; };
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri"; sourceTree = "<absolute>"; };
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri"; sourceTree = "<absolute>"; };
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qicns; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqicns$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri"; sourceTree = "<absolute>"; };
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf"; sourceTree = "<absolute>"; };
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Widgets; path = "/usr/local/Qt-5.3.0/lib/libQt5Widgets$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5520A59148EC5EC44EF0D3CD /* Packer.pro */ = {isa = PBXFileReference; lastKnownFileType = text; path = Packer.pro; sourceTree = "<absolute>"; };
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Core; path = "/usr/local/Qt-5.3.0/lib/libQt5Core$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
5AA25EFD83BC060B26945285 /* packer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = packer.h; path = SourceFiles/_other/packer.h; sourceTree = "<absolute>"; };
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qdevice.pri"; sourceTree = "<absolute>"; };
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri"; sourceTree = "<absolute>"; };
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri"; sourceTree = "<absolute>"; };
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/macx.conf"; sourceTree = "<absolute>"; };
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
83D37373949868693FB7816D /* qmng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qmng; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqmng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri"; sourceTree = "<absolute>"; };
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang.conf"; sourceTree = "<absolute>"; };
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwbmp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qico; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqico$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A5588D4B50885E2A9CAA5505 /* Packer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Packer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */ = {isa = PBXFileReference; lastKnownFileType = file; path = .qmake.stash; sourceTree = "<absolute>"; };
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwebp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = packer_plugin_import.cpp; sourceTree = "<absolute>"; };
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qdds; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqdds$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qconfig.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qcocoa; path = "/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtharfbuzzng; path = "/usr/local/Qt-5.3.0/lib/libqtharfbuzzng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PrintSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PrintSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtga; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtga$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = packer.cpp; path = SourceFiles/_other/packer.cpp; sourceTree = "<absolute>"; };
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PlatformSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qjp2; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtiff; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri"; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */,
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */,
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */,
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */,
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */,
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */,
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */,
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */,
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */,
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */,
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */,
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */,
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */,
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */,
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */,
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */,
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */,
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */,
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */,
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */,
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */,
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */,
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
name = "Link Binary With Libraries";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */,
|
||||||
|
CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */,
|
||||||
|
);
|
||||||
|
name = Sources;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */,
|
||||||
|
5AA25EFD83BC060B26945285 /* packer.h */,
|
||||||
|
);
|
||||||
|
name = _other;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */,
|
||||||
|
);
|
||||||
|
name = SourceFiles;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5520A59148EC5EC44EF0D3CD /* Packer.pro */,
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */,
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */,
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */,
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */,
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */,
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */,
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */,
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */,
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */,
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */,
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */,
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */,
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */,
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */,
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */,
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */,
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */,
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */,
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */,
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */,
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */,
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */,
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */,
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */,
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */,
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */,
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */,
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */,
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */,
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */,
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */,
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */,
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */,
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */,
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */,
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */,
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */,
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */,
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */,
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */,
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */,
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */,
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */,
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */,
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */,
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */,
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */,
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */,
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */,
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */,
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */,
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */,
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */,
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */,
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */,
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */,
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */,
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */,
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */,
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */,
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */,
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */,
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */,
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */,
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */,
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */,
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */,
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */,
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */,
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */,
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */,
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */,
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */,
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */,
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */,
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */,
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */,
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */,
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */,
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */,
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */,
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */,
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */,
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */,
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */,
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */,
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */,
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */,
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */,
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */,
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */,
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */,
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */,
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */,
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */,
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */,
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */,
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */,
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */,
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */,
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */,
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */,
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */,
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */,
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */,
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */,
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */,
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */,
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */,
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */,
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */,
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */,
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */,
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */,
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */,
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */,
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */,
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */,
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */,
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */,
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */,
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */,
|
||||||
|
);
|
||||||
|
name = "Supporting Files";
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */,
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */,
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */,
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */,
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */,
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */,
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */,
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */,
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */,
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */,
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */,
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */,
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */,
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */,
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */,
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */,
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */,
|
||||||
|
83D37373949868693FB7816D /* qmng */,
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */,
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */,
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */,
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */,
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */,
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */,
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
E8C543AB96796ECAA2E65C57 /* Packer */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */,
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */,
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */,
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */,
|
||||||
|
);
|
||||||
|
name = Packer;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
A5588D4B50885E2A9CAA5505 /* Packer.app */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
FD92333211119EF3CA40F70D /* Packer */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */;
|
||||||
|
buildPhases = (
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */,
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
A7CD3B627B093BF0A5BBA9AE /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = Packer;
|
||||||
|
productInstallPath = ../Mac/DebugPacker/;
|
||||||
|
productName = Packer;
|
||||||
|
productReference = A5588D4B50885E2A9CAA5505 /* Packer.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
6DB9C3763D02B1415CD9D565 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
};
|
||||||
|
buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "Packer" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = E8C543AB96796ECAA2E65C57 /* Packer */;
|
||||||
|
productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
FD92333211119EF3CA40F70D /* Packer */,
|
||||||
|
6E977D353048DB44129F752B /* Preprocess */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
name = "Qt Preprocessors";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "make -C . -f Packer.xcodeproj/qt_preprocess.mak";
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
EAA05789DF6EBAD24D3EFF96 /* packer.cpp in Compile Sources */,
|
||||||
|
52B661A713AE959F9084E291 /* packer_plugin_import.cpp in Compile Sources */,
|
||||||
|
);
|
||||||
|
name = "Compile Sources";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
A7CD3B627B093BF0A5BBA9AE /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = 6E977D353048DB44129F752B /* Preprocess */;
|
||||||
|
targetProxy = 072AB35C1955F39D00328D9B /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
/usr/local/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Packer.plist;
|
||||||
|
INSTALL_DIR = "../Mac/$(CONFIGURATION)";
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker/";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-lcrypto",
|
||||||
|
"-lssl",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
/usr/local/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Packer.plist;
|
||||||
|
INSTALL_DIR = "../Mac/$(CONFIGURATION)";
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker/";
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-lcrypto",
|
||||||
|
"-lssl",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
6666AA5E688052234F6758D8 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
77418F46922677BB04ED38DD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
77418F46922677BB04ED38DD /* Debug */,
|
||||||
|
6666AA5E688052234F6758D8 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "Packer" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */,
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
}
|
52
Telegram/Packer.xcodeproj/qt_preprocess.mak
Normal file
52
Telegram/Packer.xcodeproj/qt_preprocess.mak
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#############################################################################
|
||||||
|
# Makefile for building: ../Mac/DebugPacker/Packer.app/Contents/MacOS/Packer
|
||||||
|
# Generated by qmake (3.0) (Qt 5.3.0)
|
||||||
|
# Project: Packer.pro
|
||||||
|
# Template: app
|
||||||
|
# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o Packer.xcodeproj/project.pbxproj Packer.pro
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
MAKEFILE = project.pbxproj
|
||||||
|
|
||||||
|
MOC = /usr/local/Qt-5.3.0/bin/moc
|
||||||
|
UIC =
|
||||||
|
LEX = flex
|
||||||
|
LEXFLAGS =
|
||||||
|
YACC = yacc
|
||||||
|
YACCFLAGS = -d
|
||||||
|
DEFINES = -D_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
|
||||||
|
INCPATH = -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui -I../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore -I../../Libraries/QtStatic/qtbase/include -I../../Libraries/lzma/C -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -IGeneratedFiles/Debug -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers
|
||||||
|
DEL_FILE = rm -f
|
||||||
|
MOVE = mv -f
|
||||||
|
|
||||||
|
IMAGES =
|
||||||
|
PARSERS =
|
||||||
|
preprocess: $(PARSERS) compilers
|
||||||
|
clean preprocess_clean: parser_clean compiler_clean
|
||||||
|
|
||||||
|
parser_clean:
|
||||||
|
mocclean: compiler_moc_header_clean compiler_moc_source_clean
|
||||||
|
|
||||||
|
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
|
||||||
|
|
||||||
|
check: first
|
||||||
|
|
||||||
|
compilers:
|
||||||
|
compiler_objective_c_make_all:
|
||||||
|
compiler_objective_c_clean:
|
||||||
|
compiler_rcc_make_all:
|
||||||
|
compiler_rcc_clean:
|
||||||
|
compiler_moc_header_make_all:
|
||||||
|
compiler_moc_header_clean:
|
||||||
|
compiler_moc_source_make_all:
|
||||||
|
compiler_moc_source_clean:
|
||||||
|
compiler_rez_source_make_all:
|
||||||
|
compiler_rez_source_clean:
|
||||||
|
compiler_yacc_decl_make_all:
|
||||||
|
compiler_yacc_decl_clean:
|
||||||
|
compiler_yacc_impl_make_all:
|
||||||
|
compiler_yacc_impl_clean:
|
||||||
|
compiler_lex_make_all:
|
||||||
|
compiler_lex_clean:
|
||||||
|
compiler_clean:
|
||||||
|
|
32
Telegram/Prepare.sh
Executable file
32
Telegram/Prepare.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
AppVersionStr=0.5.5
|
||||||
|
AppVersion=5005
|
||||||
|
|
||||||
|
if [ -d "deploy/$AppVersionStr" ]; then
|
||||||
|
echo "Deploy folder for version $AppVersionStr already exists!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "tupdate$AppVersion" ]; then
|
||||||
|
echo "Update file for version $AppVersion already exists!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "Telegram.app" ]; then
|
||||||
|
echo "Telegram.app not found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Preparing version $AppVersionStr, executing Packer.."
|
||||||
|
./Packer.app/Contents/MacOS/Packer -path Telegram.app -version $AppVersion
|
||||||
|
echo "Packer done!"
|
||||||
|
|
||||||
|
if [ ! -d "deploy/" ]; then
|
||||||
|
mkdir "deploy"
|
||||||
|
fi
|
||||||
|
echo "Copying Telegram.app and tmacupd$AppVersion to deploy/$AppVersionStr..";
|
||||||
|
mkdir "deploy/$AppVersionStr"
|
||||||
|
mkdir "deploy/$AppVersionStr/Telegram"
|
||||||
|
mv Telegram.app deploy/$AppVersionStr/Telegram/
|
||||||
|
mv tmacupd$AppVersion deploy/$AppVersionStr/
|
||||||
|
mv Telegram.dmg deploy/$AppVersionStr/
|
||||||
|
echo "Version $AppVersionStr prepared!";
|
||||||
|
|
@ -111,12 +111,26 @@ int32 *hashSha1(const void *data, uint32 len, void *dest) {
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
QString workDir;
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
if (QDir(QString()).absolutePath() == "/") {
|
||||||
|
QString first = argc ? QString::fromLocal8Bit(argv[0]) : QString();
|
||||||
|
if (!first.isEmpty()) {
|
||||||
|
QFileInfo info(first);
|
||||||
|
if (info.exists()) {
|
||||||
|
QDir result(info.absolutePath() + "/../../..");
|
||||||
|
workDir = result.absolutePath() + '/';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QString remove;
|
QString remove;
|
||||||
int version = 0;
|
int version = 0;
|
||||||
QFileInfoList files;
|
QFileInfoList files;
|
||||||
for (int i = 0; i < argc; ++i) {
|
for (int i = 0; i < argc; ++i) {
|
||||||
if (string("-path") == argv[i] && i + 1 < argc) {
|
if (string("-path") == argv[i] && i + 1 < argc) {
|
||||||
QString path = QString(argv[i + 1]);
|
QString path = workDir + QString(argv[i + 1]);
|
||||||
QFileInfo info(path);
|
QFileInfo info(path);
|
||||||
files.push_back(info);
|
files.push_back(info);
|
||||||
if (remove.isEmpty()) remove = info.canonicalPath() + "/";
|
if (remove.isEmpty()) remove = info.canonicalPath() + "/";
|
||||||
@ -126,8 +140,12 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (files.isEmpty() || remove.isEmpty() || version <= 1016 || version > 999999) { // not for release =)
|
if (files.isEmpty() || remove.isEmpty() || version <= 1016 || version > 999999) { // not for release =)
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
cout << "Usage: Packer.exe -path {file} -version {version} OR Packer.exe -path {dir} -version {version}\n";
|
cout << "Usage: Packer.exe -path {file} -version {version} OR Packer.exe -path {dir} -version {version}\n";
|
||||||
return 0;
|
#elif defined Q_OS_MAC
|
||||||
|
cout << "Usage: Packer.app -path {file} -version {version} OR Packer.app -path {dir} -version {version}\n";
|
||||||
|
#endif
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasDirs = true;
|
bool hasDirs = true;
|
||||||
@ -147,6 +165,10 @@ int main(int argc, char *argv[])
|
|||||||
} else if (!info.isReadable()) {
|
} else if (!info.isReadable()) {
|
||||||
cout << "Can't read: " << info.absoluteFilePath().toUtf8().constData() << "\n";
|
cout << "Can't read: " << info.absoluteFilePath().toUtf8().constData() << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
|
} else if (info.isHidden()) {
|
||||||
|
hasDirs = true;
|
||||||
|
files.erase(i);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -182,6 +204,9 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
QByteArray inner = f.readAll();
|
QByteArray inner = f.readAll();
|
||||||
stream << name << quint32(inner.size()) << inner;
|
stream << name << quint32(inner.size()) << inner;
|
||||||
|
#if defined Q_OS_MAC || defined Q_OS_LINUX
|
||||||
|
stream << (QFileInfo(fullName).isExecutable() ? true : false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (stream.status() != QDataStream::Ok) {
|
if (stream.status() != QDataStream::Ok) {
|
||||||
cout << "Stream status is bad: " << stream.status() << "\n";
|
cout << "Stream status is bad: " << stream.status() << "\n";
|
||||||
@ -193,20 +218,19 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Compression start, size: " << resultSize << "\n";
|
cout << "Compression start, size: " << resultSize << "\n";
|
||||||
|
|
||||||
QByteArray compressed, resultCheck;
|
QByteArray compressed, resultCheck;
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
||||||
|
|
||||||
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
||||||
|
|
||||||
size_t compressedLen = compressed.size() - hSize;
|
size_t compressedLen = compressed.size() - hSize;
|
||||||
uchar outProps[LZMA_PROPS_SIZE];
|
|
||||||
size_t outPropsSize = LZMA_PROPS_SIZE;
|
size_t outPropsSize = LZMA_PROPS_SIZE;
|
||||||
int res = LzmaCompress((uchar*)(compressed.data() + hSize), &compressedLen, (const uchar*)(result.constData()), result.size(), (uchar*)(compressed.data() + hSigLen + hShaLen), &outPropsSize, 9, 64 * 1024 * 1024, 0, 0, 0, 0, 0);
|
int res = LzmaCompress((uchar*)(compressed.data() + hSize), &compressedLen, (const uchar*)(result.constData()), result.size(), (uchar*)(compressed.data() + hSigLen + hShaLen), &outPropsSize, 9, 64 * 1024 * 1024, 0, 0, 0, 0, 0);
|
||||||
if (res != SZ_OK) {
|
if (res != SZ_OK) {
|
||||||
cout << "Error in compression: " << res << "\n";
|
cout << "Error in compression: " << res << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
compressed.resize(hSize + compressedLen);
|
compressed.resize(int(hSize + compressedLen));
|
||||||
memcpy(compressed.data() + hSigLen + hShaLen + hPropsLen, &resultSize, hOriginalSizeLen);
|
memcpy(compressed.data() + hSigLen + hShaLen + hPropsLen, &resultSize, hOriginalSizeLen);
|
||||||
|
|
||||||
cout << "Compressed to size: " << compressedLen << "\n";
|
cout << "Compressed to size: " << compressedLen << "\n";
|
||||||
@ -228,10 +252,112 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Uncompress failed: " << uncompressRes << "\n";
|
cout << "Uncompress failed: " << uncompressRes << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (resultLen != result.size()) {
|
if (resultLen != size_t(result.size())) {
|
||||||
cout << "Uncompress bad size: " << resultLen << ", was: " << result.size() << "\n";
|
cout << "Uncompress bad size: " << resultLen << ", was: " << result.size() << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#else // use liblzma for others
|
||||||
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = 0, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hOriginalSizeLen; // header
|
||||||
|
|
||||||
|
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
||||||
|
|
||||||
|
size_t compressedLen = compressed.size() - hSize;
|
||||||
|
|
||||||
|
lzma_stream stream = LZMA_STREAM_INIT;
|
||||||
|
|
||||||
|
int preset = 9 | LZMA_PRESET_EXTREME;
|
||||||
|
lzma_ret ret = lzma_easy_encoder(&stream, preset, LZMA_CHECK_CRC64);
|
||||||
|
if (ret != LZMA_OK) {
|
||||||
|
const char *msg;
|
||||||
|
switch (ret) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Specified preset is not supported"; break;
|
||||||
|
case LZMA_UNSUPPORTED_CHECK: msg = "Specified integrity check is not supported"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error initializing the encoder: " << msg << " (error code " << ret << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.avail_in = resultSize;
|
||||||
|
stream.next_in = (uint8_t*)result.constData();
|
||||||
|
stream.avail_out = compressedLen;
|
||||||
|
stream.next_out = (uint8_t*)(compressed.data() + hSize);
|
||||||
|
|
||||||
|
lzma_ret res = lzma_code(&stream, LZMA_FINISH);
|
||||||
|
compressedLen -= stream.avail_out;
|
||||||
|
lzma_end(&stream);
|
||||||
|
if (res != LZMA_OK && res != LZMA_STREAM_END) {
|
||||||
|
const char *msg;
|
||||||
|
switch (res) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_DATA_ERROR: msg = "File size limits exceeded"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error in compression: " << msg << " (error code " << res << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
compressed.resize(int(hSize + compressedLen));
|
||||||
|
memcpy(compressed.data() + hSigLen + hShaLen, &resultSize, hOriginalSizeLen);
|
||||||
|
|
||||||
|
cout << "Compressed to size: " << compressedLen << "\n";
|
||||||
|
|
||||||
|
cout << "Checking uncompressed..\n";
|
||||||
|
|
||||||
|
int32 resultCheckLen;
|
||||||
|
memcpy(&resultCheckLen, compressed.constData() + hSigLen + hShaLen, hOriginalSizeLen);
|
||||||
|
if (resultCheckLen <= 0 || resultCheckLen > 1024 * 1024 * 1024) {
|
||||||
|
cout << "Bad result len: " << resultCheckLen << "\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
resultCheck.resize(resultCheckLen);
|
||||||
|
|
||||||
|
size_t resultLen = resultCheck.size();
|
||||||
|
|
||||||
|
stream = LZMA_STREAM_INIT;
|
||||||
|
|
||||||
|
ret = lzma_stream_decoder(&stream, UINT64_MAX, LZMA_CONCATENATED);
|
||||||
|
if (ret != LZMA_OK) {
|
||||||
|
const char *msg;
|
||||||
|
switch (ret) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Specified preset is not supported"; break;
|
||||||
|
case LZMA_UNSUPPORTED_CHECK: msg = "Specified integrity check is not supported"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error initializing the decoder: " << msg << " (error code " << ret << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.avail_in = compressedLen;
|
||||||
|
stream.next_in = (uint8_t*)(compressed.constData() + hSize);
|
||||||
|
stream.avail_out = resultLen;
|
||||||
|
stream.next_out = (uint8_t*)resultCheck.data();
|
||||||
|
|
||||||
|
res = lzma_code(&stream, LZMA_FINISH);
|
||||||
|
if (stream.avail_in) {
|
||||||
|
cout << "Error in decompression, " << stream.avail_in << " bytes left in _in of " << compressedLen << " whole.\n";
|
||||||
|
return -1;
|
||||||
|
} else if (stream.avail_out) {
|
||||||
|
cout << "Error in decompression, " << stream.avail_out << " bytes free left in _out of " << resultLen << " whole.\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
lzma_end(&stream);
|
||||||
|
if (res != LZMA_OK && res != LZMA_STREAM_END) {
|
||||||
|
const char *msg;
|
||||||
|
switch (res) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_FORMAT_ERROR: msg = "The input data is not in the .xz format"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Unsupported compression options"; break;
|
||||||
|
case LZMA_DATA_ERROR: msg = "Compressed file is corrupt"; break;
|
||||||
|
case LZMA_BUF_ERROR: msg = "Compressed data is truncated or otherwise corrupt"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error in decompression: " << msg << " (error code " << res << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (memcmp(result.constData(), resultCheck.constData(), resultLen)) {
|
if (memcmp(result.constData(), resultCheck.constData(), resultLen)) {
|
||||||
cout << "Data differ :(\n";
|
cout << "Data differ :(\n";
|
||||||
return -1;
|
return -1;
|
||||||
@ -242,7 +368,7 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Counting SHA1 hash..\n";
|
cout << "Counting SHA1 hash..\n";
|
||||||
|
|
||||||
uchar sha1Buffer[20];
|
uchar sha1Buffer[20];
|
||||||
memcpy(compressed.data() + hSigLen, hashSha1(compressed.constData() + hSigLen + hShaLen, compressedLen + hPropsLen + hOriginalSizeLen, sha1Buffer), hShaLen); // count sha1
|
memcpy(compressed.data() + hSigLen, hashSha1(compressed.constData() + hSigLen + hShaLen, uint32(compressedLen + hPropsLen + hOriginalSizeLen), sha1Buffer), hShaLen); // count sha1
|
||||||
|
|
||||||
uint32 siglen = 0;
|
uint32 siglen = 0;
|
||||||
|
|
||||||
@ -283,7 +409,15 @@ int main(int argc, char *argv[])
|
|||||||
cout << "Signature verified!\n";
|
cout << "Signature verified!\n";
|
||||||
RSA_free(pbKey);
|
RSA_free(pbKey);
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
QString outName(QString("tupdate%1").arg(version));
|
QString outName(QString("tupdate%1").arg(version));
|
||||||
|
#elif defined Q_OS_MAC
|
||||||
|
QString outName(QString("tmacupd%1").arg(version));
|
||||||
|
#elif defined Q_OS_LINUX
|
||||||
|
QString outName(QString("tlinuxupd%1").arg(version));
|
||||||
|
#else
|
||||||
|
#error Unknown platform!
|
||||||
|
#endif
|
||||||
QFile out(outName);
|
QFile out(outName);
|
||||||
if (!out.open(QIODevice::WriteOnly)) {
|
if (!out.open(QIODevice::WriteOnly)) {
|
||||||
cout << "Can't open '" << outName.toUtf8().constData() << "' for write..\n";
|
cout << "Can't open '" << outName.toUtf8().constData() << "' for write..\n";
|
||||||
|
@ -34,7 +34,11 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
|||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
#include <LzmaLib.h>
|
#include <LzmaLib.h>
|
||||||
|
#else
|
||||||
|
#include <lzma.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
207
Telegram/SourceFiles/_other/updater_osx.m
Normal file
207
Telegram/SourceFiles/_other/updater_osx.m
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
an unofficial desktop 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.
|
||||||
|
|
||||||
|
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
||||||
|
Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
|
*/
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
NSString *appName = @"Telegram.app";
|
||||||
|
NSString *appDir = nil;
|
||||||
|
NSString *workDir = nil;
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
BOOL _debug = YES;
|
||||||
|
#else
|
||||||
|
BOOL _debug = NO;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NSFileHandle *_logFile = nil;
|
||||||
|
void openLog() {
|
||||||
|
if (!_debug || _logFile) return;
|
||||||
|
NSString *logDir = [workDir stringByAppendingString:@"DebugLogs"];
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:logDir withIntermediateDirectories:YES attributes:nil error:nil]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSDateFormatter *fmt = [[NSDateFormatter alloc] initWithDateFormat:@"DebugLogs/%Y%m%d %H%M%S_upd.txt" allowNaturalLanguage:NO];
|
||||||
|
NSString *logPath = [workDir stringByAppendingString:[fmt stringFromDate:[NSDate date]]];
|
||||||
|
[[NSFileManager defaultManager] createFileAtPath:logPath contents:nil attributes:nil];
|
||||||
|
_logFile = [NSFileHandle fileHandleForWritingAtPath:logPath];
|
||||||
|
}
|
||||||
|
|
||||||
|
void closeLog() {
|
||||||
|
if (!_logFile) return;
|
||||||
|
|
||||||
|
[_logFile closeFile];
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeLog(NSString *msg) {
|
||||||
|
if (!_logFile) return;
|
||||||
|
|
||||||
|
[_logFile writeData:[[msg stringByAppendingString:@"\n"] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[_logFile synchronizeFile];
|
||||||
|
}
|
||||||
|
|
||||||
|
void delFolder() {
|
||||||
|
[[NSFileManager defaultManager] removeItemAtPath:[workDir stringByAppendingString:@"tupdates/ready"] error:nil];
|
||||||
|
rmdir([[workDir stringByAppendingString:@"tupdates"] fileSystemRepresentation]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, const char * argv[]) {
|
||||||
|
NSString *path = [[NSBundle mainBundle] bundlePath];
|
||||||
|
if (!path) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
NSRange range = [path rangeOfString:appName options:NSBackwardsSearch];
|
||||||
|
if (range.location == NSNotFound) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
appDir = [path substringToIndex:range.location > 0 ? range.location : 0];
|
||||||
|
|
||||||
|
openLog();
|
||||||
|
pid_t procId = 0;
|
||||||
|
BOOL update = YES, toSettings = NO, autoStart = NO;
|
||||||
|
NSString *key = nil;
|
||||||
|
for (int i = 0; i < argc; ++i) {
|
||||||
|
if ([@"-workpath" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) {
|
||||||
|
workDir = [NSString stringWithUTF8String:argv[i]];
|
||||||
|
}
|
||||||
|
} else if ([@"-procid" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) {
|
||||||
|
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
|
||||||
|
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
|
||||||
|
procId = [[formatter numberFromString:[NSString stringWithUTF8String:argv[i]]] intValue];
|
||||||
|
}
|
||||||
|
} else if ([@"-noupdate" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
update = NO;
|
||||||
|
} else if ([@"-tosettings" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
toSettings = YES;
|
||||||
|
} else if ([@"-autostart" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
autoStart = YES;
|
||||||
|
} else if ([@"-debug" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
_debug = YES;
|
||||||
|
} else if ([@"-key" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) key = [NSString stringWithUTF8String:argv[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!workDir) workDir = appDir;
|
||||||
|
openLog();
|
||||||
|
NSMutableArray *argsArr = [[NSMutableArray alloc] initWithCapacity:argc];
|
||||||
|
for (int i = 0; i < argc; ++i) {
|
||||||
|
[argsArr addObject:[NSString stringWithUTF8String:argv[i]]];
|
||||||
|
}
|
||||||
|
writeLog([[NSArray arrayWithObjects:@"Arguments: '", [argsArr componentsJoinedByString:@"' '"], @"'..", nil] componentsJoinedByString:@""]);
|
||||||
|
if (key) writeLog([@"Key: " stringByAppendingString:key]);
|
||||||
|
if (toSettings) writeLog(@"To Settings!");
|
||||||
|
|
||||||
|
if (procId) {
|
||||||
|
NSRunningApplication *app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
for (int i = 0; i < 5 && app != nil && ![app isTerminated]; ++i) {
|
||||||
|
usleep(200000);
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
}
|
||||||
|
if (app) [app forceTerminate];
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
for (int i = 0; i < 5 && app != nil && ![app isTerminated]; ++i) {
|
||||||
|
usleep(200000);
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (update) {
|
||||||
|
writeLog(@"Starting update files iteration!");
|
||||||
|
|
||||||
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
|
NSString *srcDir = [workDir stringByAppendingString:@"tupdates/ready/"];
|
||||||
|
NSArray *keys = [NSArray arrayWithObject:NSURLIsDirectoryKey];
|
||||||
|
NSDirectoryEnumerator *enumerator = [fileManager
|
||||||
|
enumeratorAtURL:[NSURL fileURLWithPath:[workDir stringByAppendingString:@"tupdates/ready"]]
|
||||||
|
includingPropertiesForKeys:keys
|
||||||
|
options:0
|
||||||
|
errorHandler:^(NSURL *url, NSError *error) {
|
||||||
|
return NO;
|
||||||
|
}];
|
||||||
|
for (NSURL *url in enumerator) {
|
||||||
|
NSString *srcPath = [url path];
|
||||||
|
writeLog([@"Handling file " stringByAppendingString:srcPath]);
|
||||||
|
NSRange r = [srcPath rangeOfString:srcDir];
|
||||||
|
if (r.location != 0) {
|
||||||
|
writeLog([@"Bad file found, no base path " stringByAppendingString:srcPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
NSString *pathPart = [srcPath substringFromIndex:r.length];
|
||||||
|
if ([pathPart rangeOfString:appName].location != 0) {
|
||||||
|
writeLog([@"Skipping not app file " stringByAppendingString:srcPath]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
NSString *dstPath = [appDir stringByAppendingString:pathPart];
|
||||||
|
NSError *error;
|
||||||
|
NSNumber *isDirectory = nil;
|
||||||
|
writeLog([[NSArray arrayWithObjects: @"Copying file ", srcPath, @" to ", dstPath, nil] componentsJoinedByString:@""]);
|
||||||
|
if (![url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:&error]) {
|
||||||
|
writeLog([@"Failed to get IsDirectory for file " stringByAppendingString:[url path]]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ([isDirectory boolValue]) {
|
||||||
|
if (![fileManager createDirectoryAtPath:dstPath withIntermediateDirectories:YES attributes:nil error:nil]) {
|
||||||
|
writeLog([@"Failed to force path for directory " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if ([fileManager fileExistsAtPath:dstPath]) {
|
||||||
|
if (![[NSData dataWithContentsOfFile:srcPath] writeToFile:dstPath atomically:YES]) {
|
||||||
|
writeLog([@"Failed to edit file " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (![fileManager copyItemAtPath:srcPath toPath:dstPath error:nil]) {
|
||||||
|
writeLog([@"Failed to copy file to " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delFolder();
|
||||||
|
}
|
||||||
|
|
||||||
|
NSString *appPath = [[NSArray arrayWithObjects:appDir, appName, nil] componentsJoinedByString:@""];
|
||||||
|
NSMutableArray *args = [[NSMutableArray alloc] initWithObjects:@"-noupdate", nil];
|
||||||
|
if (toSettings) [args addObject:@"-tosettings"];
|
||||||
|
if (_debug) [args addObject:@"-debug"];
|
||||||
|
if (autoStart) [args addObject:@"-autostart"];
|
||||||
|
if (key) {
|
||||||
|
[args addObject:@"-key"];
|
||||||
|
[args addObject:key];
|
||||||
|
}
|
||||||
|
writeLog([[NSArray arrayWithObjects:@"Running application '", appPath, @"' with args '", [args componentsJoinedByString:@"' '"], @"'..", nil] componentsJoinedByString:@""]);
|
||||||
|
NSError *error = nil;
|
||||||
|
NSRunningApplication *result = [[NSWorkspace sharedWorkspace]
|
||||||
|
launchApplicationAtURL:[NSURL fileURLWithPath:appPath]
|
||||||
|
options:NSWorkspaceLaunchDefault
|
||||||
|
configuration:[NSDictionary
|
||||||
|
dictionaryWithObject:args
|
||||||
|
forKey:NSWorkspaceLaunchConfigurationArguments]
|
||||||
|
error:&error];
|
||||||
|
if (!result) {
|
||||||
|
writeLog([@"Could not run application, error: " stringByAppendingString:error ? [error localizedDescription] : @"(nil)"]);
|
||||||
|
}
|
||||||
|
closeLog();
|
||||||
|
return result ? 0 : -1;
|
||||||
|
}
|
||||||
|
|
@ -183,7 +183,7 @@ void Application::updateGotCurrent() {
|
|||||||
if (updates.exists()) {
|
if (updates.exists()) {
|
||||||
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
||||||
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
||||||
if (QRegularExpression("^tupdate\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
||||||
QFile(i->absoluteFilePath()).remove();
|
QFile(i->absoluteFilePath()).remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,6 +191,7 @@ void Application::updateGotCurrent() {
|
|||||||
emit updateLatest();
|
emit updateLatest();
|
||||||
}
|
}
|
||||||
startUpdateCheck(true);
|
startUpdateCheck(true);
|
||||||
|
App::writeConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::updateFailedCurrent(QNetworkReply::NetworkError e) {
|
void Application::updateFailedCurrent(QNetworkReply::NetworkError e) {
|
||||||
@ -409,16 +410,16 @@ void Application::startUpdateCheck(bool forceWait) {
|
|||||||
if (updates.exists()) {
|
if (updates.exists()) {
|
||||||
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
||||||
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
||||||
if (QRegularExpression("^tupdate\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
||||||
sendRequest = true;
|
sendRequest = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((cManyInstance() && !cDebug()) || cPlatform() == dbipMac) return; // only main instance is updating
|
if ((cManyInstance() && !cDebug()) || cPlatform() == dbipLinux) return; // only main instance is updating
|
||||||
|
|
||||||
if (sendRequest) {
|
if (sendRequest) {
|
||||||
QNetworkRequest checkVersion(QUrl(qsl("http://tdesktop.com/win/tupdates/current")));
|
QNetworkRequest checkVersion(cUpdateURL());
|
||||||
if (updateReply) updateReply->deleteLater();
|
if (updateReply) updateReply->deleteLater();
|
||||||
|
|
||||||
App::setProxySettings(updateManager);
|
App::setProxySettings(updateManager);
|
||||||
|
@ -17,9 +17,13 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
static const int32 AppVersion = 5004;
|
static const int32 AppVersion = 5005;
|
||||||
static const wchar_t *AppVersionStr = L"0.5.4";
|
static const wchar_t *AppVersionStr = L"0.5.5";
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
static const wchar_t *AppName = L"Telegram Win (Unofficial)";
|
static const wchar_t *AppName = L"Telegram Win (Unofficial)";
|
||||||
|
#else
|
||||||
|
static const wchar_t *AppName = L"Telegram Desktop";
|
||||||
|
#endif
|
||||||
static const wchar_t *AppId = L"{53F49750-6209-4FBF-9CA8-7A333C87D1ED}";
|
static const wchar_t *AppId = L"{53F49750-6209-4FBF-9CA8-7A333C87D1ED}";
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
@ -528,7 +528,7 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const {
|
|||||||
|
|
||||||
// draw check
|
// draw check
|
||||||
if (last->out() && last->needCheck()) {
|
if (last->out() && last->needCheck()) {
|
||||||
const QRect *check;
|
const style::sprite *check;
|
||||||
if (last->id > 0) {
|
if (last->id > 0) {
|
||||||
if (last->unread()) {
|
if (last->unread()) {
|
||||||
check = act ? &st::dlgActiveCheckImg : &st::dlgCheckImg;
|
check = act ? &st::dlgActiveCheckImg : &st::dlgCheckImg;
|
||||||
@ -538,7 +538,7 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const {
|
|||||||
} else {
|
} else {
|
||||||
check = act ? &st::dlgActiveSendImg : &st::dlgSendImg;
|
check = act ? &st::dlgActiveSendImg : &st::dlgSendImg;
|
||||||
}
|
}
|
||||||
rectForName.setWidth(rectForName.width() - check->width() - st::dlgCheckSkip);
|
rectForName.setWidth(rectForName.width() - check->pxWidth() - st::dlgCheckSkip);
|
||||||
p.drawPixmap(QPoint(rectForName.left() + rectForName.width() + st::dlgCheckLeft, rectForName.top() + st::dlgCheckTop), App::sprite(), *check);
|
p.drawPixmap(QPoint(rectForName.left() + rectForName.width() + st::dlgCheckLeft, rectForName.top() + st::dlgCheckTop), App::sprite(), *check);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,9 +69,8 @@ void debugLogWrite(const char *file, int32 line, const QString &v) {
|
|||||||
debugLogStream->flush();
|
debugLogStream->flush();
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
|
OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
|
||||||
#endif
|
#elif defined Q_OS_MAC
|
||||||
#ifdef Q_OS_MAC
|
objc_outputDebugString(msg);
|
||||||
objc_outputDebugString(msg.toUtf8().constData());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -118,9 +117,7 @@ void logsInit() {
|
|||||||
if (mainLogStream) return;
|
if (mainLogStream) return;
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
if (QDir(cWorkingDir()).absolutePath() == qsl("/")) {
|
cForceWorkingDir(psAppDataPath());
|
||||||
cSetWorkingDir(cExeDir());
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString oldDir = cWorkingDir();
|
QString oldDir = cWorkingDir();
|
||||||
|
@ -34,63 +34,9 @@ namespace {
|
|||||||
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) {
|
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) {
|
||||||
Window *wnd = Application::wnd();
|
Window *wnd = Application::wnd();
|
||||||
if (!wnd) return false;
|
if (!wnd) return false;
|
||||||
/*
|
|
||||||
MSG *msg = (MSG*)message;
|
|
||||||
if (msg->message == WM_ENDSESSION) {
|
|
||||||
App::quit();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (msg->hwnd == wnd->psHwnd() || msg->hwnd && !wnd->psHwnd()) {
|
|
||||||
return mainWindowEvent(msg->hwnd, msg->message, msg->wParam, msg->lParam, (LRESULT*)result);
|
|
||||||
}*/
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
bool mainWindowEvent(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *result) {
|
|
||||||
if (tbCreatedMsgId && msg == tbCreatedMsgId) {
|
|
||||||
if (CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_ALL, IID_ITaskbarList3, (void**)&tbListInterface) != S_OK) {
|
|
||||||
tbListInterface = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch (msg) {
|
|
||||||
|
|
||||||
case WM_DESTROY: {
|
|
||||||
App::quit();
|
|
||||||
} return false;
|
|
||||||
|
|
||||||
case WM_ACTIVATE: {
|
|
||||||
if (LOWORD(wParam) == WA_CLICKACTIVE) {
|
|
||||||
App::wnd()->inactivePress(true);
|
|
||||||
}
|
|
||||||
} return false;
|
|
||||||
|
|
||||||
case WM_SIZE: {
|
|
||||||
if (App::wnd()) {
|
|
||||||
if (wParam == SIZE_MAXIMIZED || wParam == SIZE_RESTORED || wParam == SIZE_MINIMIZED) {
|
|
||||||
if (wParam != SIZE_RESTORED || App::wnd()->windowState() != Qt::WindowNoState) {
|
|
||||||
Qt::WindowState state = Qt::WindowNoState;
|
|
||||||
if (wParam == SIZE_MAXIMIZED) {
|
|
||||||
state = Qt::WindowMaximized;
|
|
||||||
} else if (wParam == SIZE_MINIMIZED) {
|
|
||||||
state = Qt::WindowMinimized;
|
|
||||||
}
|
|
||||||
emit App::wnd()->windowHandle()->windowStateChanged(state);
|
|
||||||
} else {
|
|
||||||
App::wnd()->psUpdatedPosition();
|
|
||||||
}
|
|
||||||
int changes = (wParam == SIZE_MINIMIZED || wParam == SIZE_MAXIMIZED) ? _PsShadowHidden : (_PsShadowResized | _PsShadowShown);
|
|
||||||
_psShadowWindows.update(changes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} return false;
|
|
||||||
|
|
||||||
case WM_MOVE: {
|
|
||||||
_psShadowWindows.update(_PsShadowMoved);
|
|
||||||
App::wnd()->psUpdatedPosition();
|
|
||||||
} return false;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}*/
|
|
||||||
};
|
};
|
||||||
_PsEventFilter *_psEventFilter = 0;
|
_PsEventFilter *_psEventFilter = 0;
|
||||||
|
|
||||||
@ -176,50 +122,9 @@ bool PsMainWindow::psIsActive(int state) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psRefreshTaskbarIcon() {
|
void PsMainWindow::psRefreshTaskbarIcon() {
|
||||||
/*QWidget *w = new QWidget(this);
|
|
||||||
w->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
|
|
||||||
w->setGeometry(x() + 1, y() + 1, 1, 1);
|
|
||||||
QPalette p(w->palette());
|
|
||||||
p.setColor(QPalette::Background, st::titleBG->c);
|
|
||||||
QWindow *wnd = w->windowHandle();
|
|
||||||
w->setPalette(p);
|
|
||||||
w->show();
|
|
||||||
w->activateWindow();
|
|
||||||
delete w;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psUpdateWorkmode() {
|
void PsMainWindow::psUpdateWorkmode() {
|
||||||
/*switch (cWorkMode()) {
|
|
||||||
case dbiwmWindowAndTray: {
|
|
||||||
setupTrayIcon();
|
|
||||||
HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT);
|
|
||||||
if (psOwner) {
|
|
||||||
SetWindowLong(ps_hWnd, GWL_HWNDPARENT, 0);
|
|
||||||
psRefreshTaskbarIcon();
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case dbiwmTrayOnly: {
|
|
||||||
setupTrayIcon();
|
|
||||||
HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT);
|
|
||||||
if (!psOwner) {
|
|
||||||
SetWindowLong(ps_hWnd, GWL_HWNDPARENT, (LONG)ps_tbHider_hWnd);
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case dbiwmWindowOnly: {
|
|
||||||
if (trayIconMenu) trayIconMenu->deleteLater();
|
|
||||||
trayIconMenu = 0;
|
|
||||||
if (trayIcon) trayIcon->deleteLater();
|
|
||||||
trayIcon = 0;
|
|
||||||
|
|
||||||
HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT);
|
|
||||||
if (psOwner) {
|
|
||||||
SetWindowLong(ps_hWnd, GWL_HWNDPARENT, 0);
|
|
||||||
psRefreshTaskbarIcon();
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psUpdateCounter() {
|
void PsMainWindow::psUpdateCounter() {
|
||||||
@ -228,59 +133,38 @@ void PsMainWindow::psUpdateCounter() {
|
|||||||
setWindowTitle((counter > 0) ? qsl("Telegram (%1)").arg(counter) : qsl("Telegram"));
|
setWindowTitle((counter > 0) ? qsl("Telegram (%1)").arg(counter) : qsl("Telegram"));
|
||||||
|
|
||||||
QString cnt = (counter < 1000) ? QString("%1").arg(counter) : QString("..%1").arg(counter % 100, 2, 10, QChar('0'));
|
QString cnt = (counter < 1000) ? QString("%1").arg(counter) : QString("..%1").arg(counter % 100, 2, 10, QChar('0'));
|
||||||
_private.setWindowBadge(counter ? cnt.toUtf8().constData() : "");
|
_private.setWindowBadge(counter ? cnt : QString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*namespace {
|
|
||||||
HMONITOR enumMonitor = 0;
|
|
||||||
RECT enumMonitorWork;
|
|
||||||
|
|
||||||
BOOL CALLBACK _monitorEnumProc(
|
|
||||||
_In_ HMONITOR hMonitor,
|
|
||||||
_In_ HDC hdcMonitor,
|
|
||||||
_In_ LPRECT lprcMonitor,
|
|
||||||
_In_ LPARAM dwData
|
|
||||||
) {
|
|
||||||
MONITORINFOEX info;
|
|
||||||
info.cbSize = sizeof(info);
|
|
||||||
GetMonitorInfo(hMonitor, &info);
|
|
||||||
if (dwData == hashCrc32(info.szDevice, sizeof(info.szDevice))) {
|
|
||||||
enumMonitor = hMonitor;
|
|
||||||
enumMonitorWork = info.rcWork;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void PsMainWindow::psInitSize() {
|
void PsMainWindow::psInitSize() {
|
||||||
setMinimumWidth(st::wndMinWidth);
|
setMinimumWidth(st::wndMinWidth);
|
||||||
setMinimumHeight(st::wndMinHeight);
|
setMinimumHeight(st::wndMinHeight);
|
||||||
|
|
||||||
TWindowPos pos(cWindowPos());
|
TWindowPos pos(cWindowPos());
|
||||||
if (cDebug()) { // temp while design
|
|
||||||
pos.w = 800;
|
|
||||||
pos.h = 600;
|
|
||||||
}
|
|
||||||
QRect avail(QDesktopWidget().availableGeometry());
|
QRect avail(QDesktopWidget().availableGeometry());
|
||||||
bool maximized = false;
|
bool maximized = false;
|
||||||
QRect geom(avail.x() + (avail.width() - st::wndDefWidth) / 2, avail.y() + (avail.height() - st::wndDefHeight) / 2, st::wndDefWidth, st::wndDefHeight);
|
QRect geom(avail.x() + (avail.width() - st::wndDefWidth) / 2, avail.y() + (avail.height() - st::wndDefHeight) / 2, st::wndDefWidth, st::wndDefHeight);
|
||||||
if (pos.w && pos.h) {
|
if (pos.w && pos.h) {
|
||||||
if (pos.y < 0) pos.y = 0;
|
QList<QScreen*> screens = App::app()->screens();
|
||||||
//enumMonitor = 0;
|
for (QList<QScreen*>::const_iterator i = screens.cbegin(), e = screens.cend(); i != e; ++i) {
|
||||||
//EnumDisplayMonitors(0, 0, &_monitorEnumProc, pos.moncrc);
|
QByteArray name = (*i)->name().toUtf8();
|
||||||
/*if (enumMonitor) {
|
if (pos.moncrc == hashCrc32(name.constData(), name.size())) {
|
||||||
int32 w = enumMonitorWork.right - enumMonitorWork.left, h = enumMonitorWork.bottom - enumMonitorWork.top;
|
QRect screen((*i)->geometry());
|
||||||
if (w >= st::wndMinWidth && h >= st::wndMinHeight) {
|
int32 w = screen.width(), h = screen.height();
|
||||||
if (pos.w > w) pos.w = w;
|
if (w >= st::wndMinWidth && h >= st::wndMinHeight) {
|
||||||
if (pos.h > h) pos.h = h;
|
if (pos.w > w) pos.w = w;
|
||||||
pos.x += enumMonitorWork.left;
|
if (pos.h > h) pos.h = h;
|
||||||
pos.y += enumMonitorWork.top;
|
pos.x += screen.x();
|
||||||
if (pos.x < enumMonitorWork.right - 10 && pos.y < enumMonitorWork.bottom - 10) {
|
pos.y += screen.y();
|
||||||
geom = QRect(pos.x, pos.y, pos.w, pos.h);
|
if (pos.x < screen.x() + screen.width() - 10 && pos.y < screen.y() + screen.height() - 10) {
|
||||||
|
geom = QRect(pos.x, pos.y, pos.w, pos.h);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
if (pos.y < 0) pos.y = 0;
|
||||||
maximized = pos.maximized;
|
maximized = pos.maximized;
|
||||||
}
|
}
|
||||||
setGeometry(geom);
|
setGeometry(geom);
|
||||||
@ -300,31 +184,36 @@ void PsMainWindow::psInitFrameless() {
|
|||||||
void PsMainWindow::psSavePosition(Qt::WindowState state) {
|
void PsMainWindow::psSavePosition(Qt::WindowState state) {
|
||||||
if (state == Qt::WindowActive) state = windowHandle()->windowState();
|
if (state == Qt::WindowActive) state = windowHandle()->windowState();
|
||||||
if (state == Qt::WindowMinimized || !posInited) return;
|
if (state == Qt::WindowMinimized || !posInited) return;
|
||||||
/*
|
|
||||||
TWindowPos pos(cWindowPos()), curPos = pos;
|
TWindowPos pos(cWindowPos()), curPos = pos;
|
||||||
|
|
||||||
if (state == Qt::WindowMaximized) {
|
if (state == Qt::WindowMaximized) {
|
||||||
curPos.maximized = 1;
|
curPos.maximized = 1;
|
||||||
} else {
|
} else {
|
||||||
RECT w;
|
QRect r(geometry());
|
||||||
GetWindowRect(ps_hWnd, &w);
|
curPos.x = r.x();
|
||||||
curPos.x = w.left;
|
curPos.y = r.y();
|
||||||
curPos.y = w.top;
|
curPos.w = r.width();
|
||||||
curPos.w = w.right - w.left;
|
curPos.h = r.height();
|
||||||
curPos.h = w.bottom - w.top;
|
|
||||||
curPos.maximized = 0;
|
curPos.maximized = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMONITOR hMonitor = MonitorFromWindow(ps_hWnd, MONITOR_DEFAULTTONEAREST);
|
int px = curPos.x + curPos.w / 2, py = curPos.y + curPos.h / 2, d = 0;
|
||||||
if (hMonitor) {
|
QScreen *chosen = 0;
|
||||||
MONITORINFOEX info;
|
QList<QScreen*> screens = App::app()->screens();
|
||||||
info.cbSize = sizeof(info);
|
for (QList<QScreen*>::const_iterator i = screens.cbegin(), e = screens.cend(); i != e; ++i) {
|
||||||
GetMonitorInfo(hMonitor, &info);
|
int dx = (*i)->geometry().x() + (*i)->geometry().width() / 2 - px; if (dx < 0) dx = -dx;
|
||||||
if (!curPos.maximized) {
|
int dy = (*i)->geometry().y() + (*i)->geometry().height() / 2 - py; if (dy < 0) dy = -dy;
|
||||||
curPos.x -= info.rcWork.left;
|
if (!chosen || dx + dy < d) {
|
||||||
curPos.y -= info.rcWork.top;
|
d = dx + dy;
|
||||||
|
chosen = *i;
|
||||||
}
|
}
|
||||||
curPos.moncrc = hashCrc32(info.szDevice, sizeof(info.szDevice));
|
}
|
||||||
|
if (chosen) {
|
||||||
|
curPos.x -= chosen->geometry().x();
|
||||||
|
curPos.y -= chosen->geometry().y();
|
||||||
|
QByteArray name = chosen->name().toUtf8();
|
||||||
|
curPos.moncrc = hashCrc32(name.constData(), name.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curPos.w >= st::wndMinWidth && curPos.h >= st::wndMinHeight) {
|
if (curPos.w >= st::wndMinWidth && curPos.h >= st::wndMinHeight) {
|
||||||
@ -332,20 +221,20 @@ void PsMainWindow::psSavePosition(Qt::WindowState state) {
|
|||||||
cSetWindowPos(curPos);
|
cSetWindowPos(curPos);
|
||||||
App::writeConfig();
|
App::writeConfig();
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psUpdatedPosition() {
|
void PsMainWindow::psUpdatedPosition() {
|
||||||
//psUpdatedPositionTimer.start(4000);
|
psUpdatedPositionTimer.start(4000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psStateChanged(Qt::WindowState state) {
|
void PsMainWindow::psStateChanged(Qt::WindowState state) {
|
||||||
psUpdateSysMenu(state);
|
psUpdateSysMenu(state);
|
||||||
psUpdateMargins();
|
psUpdateMargins();
|
||||||
/*if (state == Qt::WindowMinimized && GetWindowLong(ps_hWnd, GWL_HWNDPARENT)) {
|
// if (state == Qt::WindowMinimized && GetWindowLong(ps_hWnd, GWL_HWNDPARENT)) {
|
||||||
minimizeToTray();
|
// minimizeToTray();
|
||||||
}
|
// }
|
||||||
psSavePosition(state);*/
|
psSavePosition(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMainWindow::psFirstShow() {
|
void PsMainWindow::psFirstShow() {
|
||||||
@ -620,7 +509,7 @@ void PsMainWindow::psShowNextNotify(PsNotifyWindow *remove) {
|
|||||||
_private.showOverAll(notify->winId());
|
_private.showOverAll(notify->winId());
|
||||||
--count;
|
--count;
|
||||||
} else {
|
} else {
|
||||||
_private.showNotify(notifyItem->history()->peer->id, notifyItem->history()->peer->name.toUtf8().constData(), notifyItem->notificationHeader().toUtf8().constData(), notifyItem->notificationText().toUtf8().constData());
|
_private.showNotify(notifyItem->history()->peer->id, notifyItem->history()->peer->name, notifyItem->notificationHeader(), notifyItem->notificationText());
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64 ms = getms();
|
uint64 ms = getms();
|
||||||
@ -1083,23 +972,7 @@ void PsUpdateDownloader::partFailed(QNetworkReply::NetworkError e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PsUpdateDownloader::deleteDir(const QString &dir) {
|
void PsUpdateDownloader::deleteDir(const QString &dir) {
|
||||||
/*std::wstring wDir = QDir::toNativeSeparators(dir).toStdWString();
|
objc_deleteDir(dir);
|
||||||
WCHAR path[4096];
|
|
||||||
memcpy(path, wDir.c_str(), (wDir.size() + 1) * sizeof(WCHAR));
|
|
||||||
path[wDir.size() + 1] = 0;
|
|
||||||
SHFILEOPSTRUCT file_op = {
|
|
||||||
NULL,
|
|
||||||
FO_DELETE,
|
|
||||||
path,
|
|
||||||
L"",
|
|
||||||
FOF_NOCONFIRMATION |
|
|
||||||
FOF_NOERRORUI |
|
|
||||||
FOF_SILENT,
|
|
||||||
false,
|
|
||||||
0,
|
|
||||||
L""
|
|
||||||
};
|
|
||||||
int res = SHFileOperation(&file_op);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsUpdateDownloader::fatalFail() {
|
void PsUpdateDownloader::fatalFail() {
|
||||||
@ -1111,15 +984,25 @@ void PsUpdateDownloader::clearAll() {
|
|||||||
deleteDir(cWorkingDir() + qsl("tupdates"));
|
deleteDir(cWorkingDir() + qsl("tupdates"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
typedef DWORD VerInt;
|
||||||
|
typedef WCHAR VerChar;
|
||||||
|
#else
|
||||||
|
typedef int VerInt;
|
||||||
|
typedef wchar_t VerChar;
|
||||||
|
#endif
|
||||||
|
|
||||||
void PsUpdateDownloader::unpackUpdate() {
|
void PsUpdateDownloader::unpackUpdate() {
|
||||||
/*QByteArray packed;
|
QByteArray packed;
|
||||||
if (!outputFile.open(QIODevice::ReadOnly)) {
|
if (!outputFile.open(QIODevice::ReadOnly)) {
|
||||||
LOG(("Update Error: cant read updates file!"));
|
LOG(("Update Error: cant read updates file!"));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
||||||
|
#else
|
||||||
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = 0, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hOriginalSizeLen; // header
|
||||||
|
#endif
|
||||||
QByteArray compressed = outputFile.readAll();
|
QByteArray compressed = outputFile.readAll();
|
||||||
int32 compressedLen = compressed.size() - hSize;
|
int32 compressedLen = compressed.size() - hSize;
|
||||||
if (compressedLen <= 0) {
|
if (compressedLen <= 0) {
|
||||||
@ -1164,12 +1047,57 @@ void PsUpdateDownloader::unpackUpdate() {
|
|||||||
uncompressed.resize(uncompressedLen);
|
uncompressed.resize(uncompressedLen);
|
||||||
|
|
||||||
size_t resultLen = uncompressed.size();
|
size_t resultLen = uncompressed.size();
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
SizeT srcLen = compressedLen;
|
SizeT srcLen = compressedLen;
|
||||||
int uncompressRes = LzmaUncompress((uchar*)uncompressed.data(), &resultLen, (const uchar*)(compressed.constData() + hSize), &srcLen, (const uchar*)(compressed.constData() + hSigLen + hShaLen), LZMA_PROPS_SIZE);
|
int uncompressRes = LzmaUncompress((uchar*)uncompressed.data(), &resultLen, (const uchar*)(compressed.constData() + hSize), &srcLen, (const uchar*)(compressed.constData() + hSigLen + hShaLen), LZMA_PROPS_SIZE);
|
||||||
if (uncompressRes != SZ_OK) {
|
if (uncompressRes != SZ_OK) {
|
||||||
LOG(("Update Error: could not uncompress lzma, code: %1").arg(uncompressRes));
|
LOG(("Update Error: could not uncompress lzma, code: %1").arg(uncompressRes));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
lzma_stream stream = LZMA_STREAM_INIT;
|
||||||
|
|
||||||
|
lzma_ret ret = lzma_stream_decoder(&stream, UINT64_MAX, LZMA_CONCATENATED);
|
||||||
|
if (ret != LZMA_OK) {
|
||||||
|
const char *msg;
|
||||||
|
switch (ret) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Specified preset is not supported"; break;
|
||||||
|
case LZMA_UNSUPPORTED_CHECK: msg = "Specified integrity check is not supported"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
LOG(("Error initializing the decoder: %1 (error code %2)").arg(msg).arg(ret));
|
||||||
|
return fatalFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.avail_in = compressedLen;
|
||||||
|
stream.next_in = (uint8_t*)(compressed.constData() + hSize);
|
||||||
|
stream.avail_out = resultLen;
|
||||||
|
stream.next_out = (uint8_t*)uncompressed.data();
|
||||||
|
|
||||||
|
lzma_ret res = lzma_code(&stream, LZMA_FINISH);
|
||||||
|
if (stream.avail_in) {
|
||||||
|
LOG(("Error in decompression, %1 bytes left in _in of %2 whole.").arg(stream.avail_in).arg(compressedLen));
|
||||||
|
return fatalFail();
|
||||||
|
} else if (stream.avail_out) {
|
||||||
|
LOG(("Error in decompression, %1 bytes free left in _out of %2 whole.").arg(stream.avail_out).arg(resultLen));
|
||||||
|
return fatalFail();
|
||||||
|
}
|
||||||
|
lzma_end(&stream);
|
||||||
|
if (res != LZMA_OK && res != LZMA_STREAM_END) {
|
||||||
|
const char *msg;
|
||||||
|
switch (res) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_FORMAT_ERROR: msg = "The input data is not in the .xz format"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Unsupported compression options"; break;
|
||||||
|
case LZMA_DATA_ERROR: msg = "Compressed file is corrupt"; break;
|
||||||
|
case LZMA_BUF_ERROR: msg = "Compressed data is truncated or otherwise corrupt"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
LOG(("Error in decompression: %1 (error code %2)").arg(msg).arg(res));
|
||||||
|
return fatalFail();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
tempDir.mkdir(tempDir.absolutePath());
|
tempDir.mkdir(tempDir.absolutePath());
|
||||||
|
|
||||||
@ -1200,22 +1128,30 @@ void PsUpdateDownloader::unpackUpdate() {
|
|||||||
LOG(("Update Error: update is empty!"));
|
LOG(("Update Error: update is empty!"));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
for (int32 i = 0; i < filesCount; ++i) {
|
for (uint32 i = 0; i < filesCount; ++i) {
|
||||||
QString relativeName;
|
QString relativeName;
|
||||||
quint32 fileSize;
|
quint32 fileSize;
|
||||||
QByteArray fileInnerData;
|
QByteArray fileInnerData;
|
||||||
|
bool executable = false;
|
||||||
|
|
||||||
stream >> relativeName >> fileSize >> fileInnerData;
|
stream >> relativeName >> fileSize >> fileInnerData;
|
||||||
|
#if defined Q_OS_MAC || defined Q_OS_LINUX
|
||||||
|
stream >> executable;
|
||||||
|
#endif
|
||||||
if (stream.status() != QDataStream::Ok) {
|
if (stream.status() != QDataStream::Ok) {
|
||||||
LOG(("Update Error: cant read file from downloaded stream, status: %1").arg(stream.status()));
|
LOG(("Update Error: cant read file from downloaded stream, status: %1").arg(stream.status()));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
if (fileSize != fileInnerData.size()) {
|
if (fileSize != quint32(fileInnerData.size())) {
|
||||||
LOG(("Update Error: bad file size %1 not matching data size %2").arg(fileSize).arg(fileInnerData.size()));
|
LOG(("Update Error: bad file size %1 not matching data size %2").arg(fileSize).arg(fileInnerData.size()));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
|
|
||||||
QFile f(tempDirPath + '/' + relativeName);
|
QFile f(tempDirPath + '/' + relativeName);
|
||||||
|
if (!QDir().mkpath(QFileInfo(f).absolutePath())) {
|
||||||
|
LOG(("Update Error: cant mkpath for file '%1'").arg(tempDirPath + '/' + relativeName));
|
||||||
|
return fatalFail();
|
||||||
|
}
|
||||||
if (!f.open(QIODevice::WriteOnly)) {
|
if (!f.open(QIODevice::WriteOnly)) {
|
||||||
LOG(("Update Error: cant open file '%1' for writing").arg(tempDirPath + '/' + relativeName));
|
LOG(("Update Error: cant open file '%1' for writing").arg(tempDirPath + '/' + relativeName));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
@ -1226,13 +1162,19 @@ void PsUpdateDownloader::unpackUpdate() {
|
|||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
f.close();
|
f.close();
|
||||||
|
if (executable) {
|
||||||
|
QFileDevice::Permissions p = f.permissions();
|
||||||
|
p |= QFileDevice::ExeOwner | QFileDevice::ExeUser | QFileDevice::ExeGroup | QFileDevice::ExeOther;
|
||||||
|
f.setPermissions(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// create tdata/version file
|
// create tdata/version file
|
||||||
tempDir.mkdir(QDir(tempDirPath + qsl("/tdata")).absolutePath());
|
tempDir.mkdir(QDir(tempDirPath + qsl("/tdata")).absolutePath());
|
||||||
std::wstring versionString = ((version % 1000) ? QString("%1.%2.%3").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000)).arg(int(version % 1000)) : QString("%1.%2").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000))).toStdWString();
|
std::wstring versionString = ((version % 1000) ? QString("%1.%2.%3").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000)).arg(int(version % 1000)) : QString("%1.%2").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000))).toStdWString();
|
||||||
DWORD versionNum = DWORD(version), versionLen = DWORD(versionString.size() * sizeof(WCHAR));
|
|
||||||
WCHAR versionStr[32];
|
VerInt versionNum = VerInt(version), versionLen = VerInt(versionString.size() * sizeof(VerChar));
|
||||||
|
VerChar versionStr[32];
|
||||||
memcpy(versionStr, versionString.c_str(), versionLen);
|
memcpy(versionStr, versionString.c_str(), versionLen);
|
||||||
|
|
||||||
QFile fVersion(tempDirPath + qsl("/tdata/version"));
|
QFile fVersion(tempDirPath + qsl("/tdata/version"));
|
||||||
@ -1240,8 +1182,8 @@ void PsUpdateDownloader::unpackUpdate() {
|
|||||||
LOG(("Update Error: cant write version file '%1'").arg(tempDirPath + qsl("/version")));
|
LOG(("Update Error: cant write version file '%1'").arg(tempDirPath + qsl("/version")));
|
||||||
return fatalFail();
|
return fatalFail();
|
||||||
}
|
}
|
||||||
fVersion.write((const char*)&versionNum, sizeof(DWORD));
|
fVersion.write((const char*)&versionNum, sizeof(VerInt));
|
||||||
fVersion.write((const char*)&versionLen, sizeof(DWORD));
|
fVersion.write((const char*)&versionLen, sizeof(VerInt));
|
||||||
fVersion.write((const char*)&versionStr[0], versionLen);
|
fVersion.write((const char*)&versionStr[0], versionLen);
|
||||||
fVersion.close();
|
fVersion.close();
|
||||||
}
|
}
|
||||||
@ -1253,7 +1195,7 @@ void PsUpdateDownloader::unpackUpdate() {
|
|||||||
deleteDir(tempDirPath);
|
deleteDir(tempDirPath);
|
||||||
outputFile.remove();
|
outputFile.remove();
|
||||||
|
|
||||||
emit App::app()->updateReady();*/
|
emit App::app()->updateReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
PsUpdateDownloader::~PsUpdateDownloader() {
|
PsUpdateDownloader::~PsUpdateDownloader() {
|
||||||
@ -1261,208 +1203,22 @@ PsUpdateDownloader::~PsUpdateDownloader() {
|
|||||||
reply = 0;
|
reply = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*namespace {
|
|
||||||
BOOL CALLBACK _ActivateProcess(HWND hWnd, LPARAM lParam) {
|
|
||||||
uint64 &processId(*(uint64*)lParam);
|
|
||||||
|
|
||||||
DWORD dwProcessId;
|
|
||||||
::GetWindowThreadProcessId(hWnd, &dwProcessId);
|
|
||||||
|
|
||||||
if ((uint64)dwProcessId == processId) { // found top-level window
|
|
||||||
static const int32 nameBufSize = 1024;
|
|
||||||
WCHAR nameBuf[nameBufSize];
|
|
||||||
int32 len = GetWindowText(hWnd, nameBuf, nameBufSize);
|
|
||||||
if (len && len < nameBufSize) {
|
|
||||||
if (QRegularExpression(qsl("^Telegram(\\s*\\(\\d+\\))?$")).match(QString::fromStdWString(nameBuf)).hasMatch()) {
|
|
||||||
BOOL res = ::SetForegroundWindow(hWnd);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void psActivateProcess(uint64 pid) {
|
void psActivateProcess(uint64 pid) {
|
||||||
//::EnumWindows((WNDENUMPROC)_ActivateProcess, (LPARAM)&pid);
|
objc_activateProgram();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString psCurrentCountry() {
|
QString psCurrentCountry() {
|
||||||
/*int chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, 0, 0);
|
QString country = objc_currentCountry();
|
||||||
if (chCount && chCount < 128) {
|
return country.isEmpty() ? QString::fromLatin1(DefaultCountry) : country;
|
||||||
WCHAR wstrCountry[128];
|
|
||||||
int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, wstrCountry, chCount);
|
|
||||||
return len ? QString::fromStdWString(std::wstring(wstrCountry)) : QString::fromLatin1(DefaultCountry);
|
|
||||||
}
|
|
||||||
return QString::fromLatin1(DefaultCountry);*/
|
|
||||||
return QString("");
|
|
||||||
//TODO
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*namespace {
|
|
||||||
QString langById(int lngId) {
|
|
||||||
int primary = lngId & 0xFF;
|
|
||||||
switch (primary) {
|
|
||||||
case 0x36: return qsl("af");
|
|
||||||
case 0x1C: return qsl("sq");
|
|
||||||
case 0x5E: return qsl("am");
|
|
||||||
case 0x01: return qsl("ar");
|
|
||||||
case 0x2B: return qsl("hy");
|
|
||||||
case 0x4D: return qsl("as");
|
|
||||||
case 0x2C: return qsl("az");
|
|
||||||
case 0x45: return qsl("bn");
|
|
||||||
case 0x6D: return qsl("ba");
|
|
||||||
case 0x2D: return qsl("eu");
|
|
||||||
case 0x23: return qsl("be");
|
|
||||||
case 0x1A:
|
|
||||||
if (lngId == LANG_CROATIAN) {
|
|
||||||
return qsl("hr");
|
|
||||||
} else if (lngId == LANG_BOSNIAN_NEUTRAL || lngId == LANG_BOSNIAN) {
|
|
||||||
return qsl("bs");
|
|
||||||
}
|
|
||||||
return qsl("sr");
|
|
||||||
break;
|
|
||||||
case 0x7E: return qsl("br");
|
|
||||||
case 0x02: return qsl("bg");
|
|
||||||
case 0x92: return qsl("ku");
|
|
||||||
case 0x03: return qsl("ca");
|
|
||||||
case 0x04: return qsl("zh");
|
|
||||||
case 0x83: return qsl("co");
|
|
||||||
case 0x05: return qsl("cs");
|
|
||||||
case 0x06: return qsl("da");
|
|
||||||
case 0x65: return qsl("dv");
|
|
||||||
case 0x13: return qsl("nl");
|
|
||||||
case 0x09: return qsl("en");
|
|
||||||
case 0x25: return qsl("et");
|
|
||||||
case 0x38: return qsl("fo");
|
|
||||||
case 0x0B: return qsl("fi");
|
|
||||||
case 0x0c: return qsl("fr");
|
|
||||||
case 0x62: return qsl("fy");
|
|
||||||
case 0x56: return qsl("gl");
|
|
||||||
case 0x37: return qsl("ka");
|
|
||||||
case 0x07: return qsl("de");
|
|
||||||
case 0x08: return qsl("el");
|
|
||||||
case 0x6F: return qsl("kl");
|
|
||||||
case 0x47: return qsl("gu");
|
|
||||||
case 0x68: return qsl("ha");
|
|
||||||
case 0x0D: return qsl("he");
|
|
||||||
case 0x39: return qsl("hi");
|
|
||||||
case 0x0E: return qsl("hu");
|
|
||||||
case 0x0F: return qsl("is");
|
|
||||||
case 0x70: return qsl("ig");
|
|
||||||
case 0x21: return qsl("id");
|
|
||||||
case 0x5D: return qsl("iu");
|
|
||||||
case 0x3C: return qsl("ga");
|
|
||||||
case 0x34: return qsl("xh");
|
|
||||||
case 0x35: return qsl("zu");
|
|
||||||
case 0x10: return qsl("it");
|
|
||||||
case 0x11: return qsl("ja");
|
|
||||||
case 0x4B: return qsl("kn");
|
|
||||||
case 0x3F: return qsl("kk");
|
|
||||||
case 0x53: return qsl("kh");
|
|
||||||
case 0x87: return qsl("rw");
|
|
||||||
case 0x12: return qsl("ko");
|
|
||||||
case 0x40: return qsl("ky");
|
|
||||||
case 0x54: return qsl("lo");
|
|
||||||
case 0x26: return qsl("lv");
|
|
||||||
case 0x27: return qsl("lt");
|
|
||||||
case 0x6E: return qsl("lb");
|
|
||||||
case 0x2F: return qsl("mk");
|
|
||||||
case 0x3E: return qsl("ms");
|
|
||||||
case 0x4C: return qsl("ml");
|
|
||||||
case 0x3A: return qsl("mt");
|
|
||||||
case 0x81: return qsl("mi");
|
|
||||||
case 0x4E: return qsl("mr");
|
|
||||||
case 0x50: return qsl("mn");
|
|
||||||
case 0x61: return qsl("ne");
|
|
||||||
case 0x14: return qsl("no");
|
|
||||||
case 0x82: return qsl("oc");
|
|
||||||
case 0x48: return qsl("or");
|
|
||||||
case 0x63: return qsl("ps");
|
|
||||||
case 0x29: return qsl("fa");
|
|
||||||
case 0x15: return qsl("pl");
|
|
||||||
case 0x16: return qsl("pt");
|
|
||||||
case 0x67: return qsl("ff");
|
|
||||||
case 0x46: return qsl("pa");
|
|
||||||
case 0x18: return qsl("ro");
|
|
||||||
case 0x17: return qsl("rm");
|
|
||||||
case 0x19: return qsl("ru");
|
|
||||||
case 0x3B: return qsl("se");
|
|
||||||
case 0x4F: return qsl("sa");
|
|
||||||
case 0x32: return qsl("tn");
|
|
||||||
case 0x59: return qsl("sd");
|
|
||||||
case 0x5B: return qsl("si");
|
|
||||||
case 0x1B: return qsl("sk");
|
|
||||||
case 0x24: return qsl("sl");
|
|
||||||
case 0x0A: return qsl("es");
|
|
||||||
case 0x41: return qsl("sw");
|
|
||||||
case 0x1D: return qsl("sv");
|
|
||||||
case 0x28: return qsl("tg");
|
|
||||||
case 0x49: return qsl("ta");
|
|
||||||
case 0x44: return qsl("tt");
|
|
||||||
case 0x4A: return qsl("te");
|
|
||||||
case 0x1E: return qsl("th");
|
|
||||||
case 0x51: return qsl("bo");
|
|
||||||
case 0x73: return qsl("ti");
|
|
||||||
case 0x1F: return qsl("tr");
|
|
||||||
case 0x42: return qsl("tk");
|
|
||||||
case 0x22: return qsl("uk");
|
|
||||||
case 0x20: return qsl("ur");
|
|
||||||
case 0x80: return qsl("ug");
|
|
||||||
case 0x43: return qsl("uz");
|
|
||||||
case 0x2A: return qsl("vi");
|
|
||||||
case 0x52: return qsl("cy");
|
|
||||||
case 0x88: return qsl("wo");
|
|
||||||
case 0x78: return qsl("ii");
|
|
||||||
case 0x6A: return qsl("yo");
|
|
||||||
}
|
|
||||||
return QString::fromLatin1(DefaultLanguage);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
QString psCurrentLanguage() {
|
QString psCurrentLanguage() {
|
||||||
/* int chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNAME, 0, 0);
|
QString lng = objc_currentLang();
|
||||||
if (chCount && chCount < 128) {
|
return lng.isEmpty() ? QString::fromLatin1(DefaultLanguage) : lng;
|
||||||
WCHAR wstrLocale[128];
|
|
||||||
int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNAME, wstrLocale, chCount);
|
|
||||||
if (!len) return QString::fromLatin1(DefaultLanguage);
|
|
||||||
QString locale = QString::fromStdWString(std::wstring(wstrLocale));
|
|
||||||
QRegularExpressionMatch m = QRegularExpression("(^|[^a-z])([a-z]{2})-").match(locale);
|
|
||||||
if (m.hasMatch()) {
|
|
||||||
return m.captured(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, 0, 0);
|
|
||||||
if (chCount && chCount < 128) {
|
|
||||||
WCHAR wstrLocale[128];
|
|
||||||
int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, wstrLocale, chCount), lngId = 0;
|
|
||||||
if (len < 5) return QString::fromLatin1(DefaultLanguage);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
WCHAR ch = wstrLocale[i];
|
|
||||||
lngId *= 16;
|
|
||||||
if (ch >= WCHAR('0') && ch <= WCHAR('9')) {
|
|
||||||
lngId += (ch - WCHAR('0'));
|
|
||||||
} else if (ch >= WCHAR('A') && ch <= WCHAR('F')) {
|
|
||||||
lngId += (10 + ch - WCHAR('A'));
|
|
||||||
} else {
|
|
||||||
return QString::fromLatin1(DefaultLanguage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return langById(lngId);
|
|
||||||
}
|
|
||||||
return QString::fromLatin1(DefaultLanguage);*/
|
|
||||||
return QString("en");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString psAppDataPath() {
|
QString psAppDataPath() {
|
||||||
/*static const int maxFileLen = MAX_PATH * 10;
|
return objc_appDataPath();
|
||||||
WCHAR wstrPath[maxFileLen];
|
|
||||||
if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) {
|
|
||||||
QDir appData(QString::fromStdWString(std::wstring(wstrPath)));
|
|
||||||
return appData.absolutePath() + "/" + QString::fromWCharArray(AppName) + "/";
|
|
||||||
}*/
|
|
||||||
return QString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString psCurrentExeDirectory(int argc, char *argv[]) {
|
QString psCurrentExeDirectory(int argc, char *argv[]) {
|
||||||
@ -1485,81 +1241,20 @@ void psDoCleanup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int psCleanup() {
|
int psCleanup() {
|
||||||
/*__try
|
psDoCleanup();
|
||||||
{
|
|
||||||
psDoCleanup();
|
|
||||||
}
|
|
||||||
__except(EXCEPTION_EXECUTE_HANDLER)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}*/
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void psDoFixPrevious() {
|
void psDoFixPrevious() {
|
||||||
/*try {
|
|
||||||
static const int bufSize = 4096;
|
|
||||||
DWORD checkType, checkSize = bufSize * 2;
|
|
||||||
WCHAR checkStr[bufSize];
|
|
||||||
|
|
||||||
QString appId = QString::fromStdWString(AppId);
|
|
||||||
QString newKeyStr1 = QString("Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId);
|
|
||||||
QString newKeyStr2 = QString("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId);
|
|
||||||
QString oldKeyStr1 = QString("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId);
|
|
||||||
QString oldKeyStr2 = QString("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId);
|
|
||||||
HKEY newKey1, newKey2, oldKey1, oldKey2;
|
|
||||||
LSTATUS newKeyRes1 = RegOpenKeyEx(HKEY_CURRENT_USER, newKeyStr1.toStdWString().c_str(), 0, KEY_READ, &newKey1);
|
|
||||||
LSTATUS newKeyRes2 = RegOpenKeyEx(HKEY_CURRENT_USER, newKeyStr2.toStdWString().c_str(), 0, KEY_READ, &newKey2);
|
|
||||||
LSTATUS oldKeyRes1 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, oldKeyStr1.toStdWString().c_str(), 0, KEY_READ, &oldKey1);
|
|
||||||
LSTATUS oldKeyRes2 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, oldKeyStr2.toStdWString().c_str(), 0, KEY_READ, &oldKey2);
|
|
||||||
|
|
||||||
bool existNew1 = (newKeyRes1 == ERROR_SUCCESS) && (RegQueryValueEx(newKey1, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2;
|
|
||||||
bool existNew2 = (newKeyRes2 == ERROR_SUCCESS) && (RegQueryValueEx(newKey2, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2;
|
|
||||||
bool existOld1 = (oldKeyRes1 == ERROR_SUCCESS) && (RegQueryValueEx(oldKey1, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2;
|
|
||||||
bool existOld2 = (oldKeyRes2 == ERROR_SUCCESS) && (RegQueryValueEx(oldKey2, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2;
|
|
||||||
|
|
||||||
if (newKeyRes1 == ERROR_SUCCESS) RegCloseKey(newKey1);
|
|
||||||
if (newKeyRes2 == ERROR_SUCCESS) RegCloseKey(newKey2);
|
|
||||||
if (oldKeyRes1 == ERROR_SUCCESS) RegCloseKey(oldKey1);
|
|
||||||
if (oldKeyRes2 == ERROR_SUCCESS) RegCloseKey(oldKey2);
|
|
||||||
|
|
||||||
if (existNew1 || existNew2) {
|
|
||||||
oldKeyRes1 = existOld1 ? RegDeleteKey(HKEY_LOCAL_MACHINE, oldKeyStr1.toStdWString().c_str()) : ERROR_SUCCESS;
|
|
||||||
oldKeyRes2 = existOld2 ? RegDeleteKey(HKEY_LOCAL_MACHINE, oldKeyStr2.toStdWString().c_str()) : ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString userDesktopLnk, commonDesktopLnk;
|
|
||||||
WCHAR userDesktopFolder[MAX_PATH], commonDesktopFolder[MAX_PATH];
|
|
||||||
HRESULT userDesktopRes = SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, userDesktopFolder);
|
|
||||||
HRESULT commonDesktopRes = SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, commonDesktopFolder);
|
|
||||||
if (SUCCEEDED(userDesktopRes)) {
|
|
||||||
userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Telegram.lnk";
|
|
||||||
}
|
|
||||||
if (SUCCEEDED(commonDesktopRes)) {
|
|
||||||
commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Telegram.lnk";
|
|
||||||
}
|
|
||||||
QFile userDesktopFile(userDesktopLnk), commonDesktopFile(commonDesktopLnk);
|
|
||||||
if (QFile::exists(userDesktopLnk) && QFile::exists(commonDesktopLnk) && userDesktopLnk != commonDesktopLnk) {
|
|
||||||
bool removed = QFile::remove(commonDesktopLnk);
|
|
||||||
}
|
|
||||||
} catch (...) {
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int psFixPrevious() {
|
int psFixPrevious() {
|
||||||
/*__try
|
psDoFixPrevious();
|
||||||
{
|
|
||||||
psDoFixPrevious();
|
|
||||||
}
|
|
||||||
__except(EXCEPTION_EXECUTE_HANDLER)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}*/
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool psCheckReadyUpdate() {
|
bool psCheckReadyUpdate() {
|
||||||
/*QString readyPath = cWorkingDir() + qsl("tupdates/ready");
|
QString readyPath = cWorkingDir() + qsl("tupdates/ready");
|
||||||
if (!QDir(readyPath).exists()) {
|
if (!QDir(readyPath).exists()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1573,8 +1268,8 @@ bool psCheckReadyUpdate() {
|
|||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
DWORD versionNum;
|
VerInt versionNum;
|
||||||
if (fVersion.read((char*)&versionNum, sizeof(DWORD)) != sizeof(DWORD)) {
|
if (fVersion.read((char*)&versionNum, sizeof(VerInt)) != sizeof(VerInt)) {
|
||||||
LOG(("Update Error: cant read version from file '%1'").arg(versionPath));
|
LOG(("Update Error: cant read version from file '%1'").arg(versionPath));
|
||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
@ -1587,19 +1282,25 @@ bool psCheckReadyUpdate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
QString curUpdater = (cExeDir() + "Updater.exe");
|
QString curUpdater = (cExeDir() + "Updater.exe");
|
||||||
QFileInfo updater(cWorkingDir() + "tupdates/ready/Updater.exe");
|
QFileInfo updater(cWorkingDir() + "tupdates/ready/Updater.exe");
|
||||||
|
#elif defined Q_OS_MAC
|
||||||
|
QString curUpdater = (cExeDir() + "Telegram.app/Contents/Frameworks/Updater");
|
||||||
|
QFileInfo updater(cWorkingDir() + "tupdates/ready/Telegram.app/Contents/Frameworks/Updater");
|
||||||
|
#endif
|
||||||
if (!updater.exists()) {
|
if (!updater.exists()) {
|
||||||
QFileInfo current(curUpdater);
|
QFileInfo current(curUpdater);
|
||||||
if (!current.exists()) {
|
if (!current.exists()) {
|
||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (CopyFile(current.absoluteFilePath().toStdWString().c_str(), updater.absoluteFilePath().toStdWString().c_str(), TRUE) == FALSE) {
|
if (!QFile(current.absoluteFilePath()).copy(updater.absoluteFilePath())) {
|
||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
if (CopyFile(updater.absoluteFilePath().toStdWString().c_str(), curUpdater.toStdWString().c_str(), FALSE) == FALSE) {
|
if (CopyFile(updater.absoluteFilePath().toStdWString().c_str(), curUpdater.toStdWString().c_str(), FALSE) == FALSE) {
|
||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
@ -1607,34 +1308,27 @@ bool psCheckReadyUpdate() {
|
|||||||
if (DeleteFile(updater.absoluteFilePath().toStdWString().c_str()) == FALSE) {
|
if (DeleteFile(updater.absoluteFilePath().toStdWString().c_str()) == FALSE) {
|
||||||
PsUpdateDownloader::clearAll();
|
PsUpdateDownloader::clearAll();
|
||||||
return false;
|
return false;
|
||||||
}*/
|
}
|
||||||
return false; // TODO
|
#elif defined Q_OS_MAC
|
||||||
|
QFileInfo to(curUpdater);
|
||||||
|
QDir().mkpath(to.absolutePath());
|
||||||
|
if (!objc_moveFile(updater.absoluteFilePath(), curUpdater)) {
|
||||||
|
PsUpdateDownloader::clearAll();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void psPostprocessFile(const QString &name) {
|
void psPostprocessFile(const QString &name) {
|
||||||
/*std::wstring zoneFile = QDir::toNativeSeparators(name).toStdWString() + L":Zone.Identifier";
|
|
||||||
HANDLE f = CreateFile(zoneFile.c_str(), GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
|
|
||||||
if (f == INVALID_HANDLE_VALUE) { // :(
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char data[] = "[ZoneTransfer]\r\nZoneId=3\r\n";
|
|
||||||
|
|
||||||
DWORD written = 0;
|
|
||||||
BOOL result = WriteFile(f, data, sizeof(data), &written, NULL);
|
|
||||||
CloseHandle(f);
|
|
||||||
|
|
||||||
if (!result || written != sizeof(data)) { // :(
|
|
||||||
return;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void psOpenFile(const QString &name, bool openWith) {
|
void psOpenFile(const QString &name, bool openWith) {
|
||||||
objc_openFile(name.toUtf8().constData(), openWith);
|
objc_openFile(name, openWith);
|
||||||
}
|
}
|
||||||
|
|
||||||
void psShowInFolder(const QString &name) {
|
void psShowInFolder(const QString &name) {
|
||||||
objc_showInFinder(name.toUtf8().constData(), QFileInfo(name).absolutePath().toUtf8().constData());
|
objc_showInFinder(name, QFileInfo(name).absolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
void psFinish() {
|
void psFinish() {
|
||||||
@ -1642,69 +1336,15 @@ void psFinish() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void psExecUpdater() {
|
void psExecUpdater() {
|
||||||
/*QString targs = qsl("-update");
|
if (!objc_execUpdater()) {
|
||||||
if (cFromAutoStart()) targs += qsl(" -autostart");
|
|
||||||
if (cDebug()) targs += qsl(" -debug");
|
|
||||||
|
|
||||||
QString updater(QDir::toNativeSeparators(cExeDir() + "Updater.exe")), wdir(QDir::toNativeSeparators(cWorkingDir()));
|
|
||||||
|
|
||||||
DEBUG_LOG(("Application Info: executing %1 %2").arg(cExeDir() + "Updater.exe").arg(targs));
|
|
||||||
HINSTANCE r = ShellExecute(0, 0, updater.toStdWString().c_str(), targs.toStdWString().c_str(), wdir.isEmpty() ? 0 : wdir.toStdWString().c_str(), SW_SHOWNORMAL);
|
|
||||||
if (long(r) < 32) {
|
|
||||||
DEBUG_LOG(("Application Error: failed to execute %1, working directory: '%2', result: %3").arg(updater).arg(wdir).arg(long(r)));
|
|
||||||
QString readyPath = cWorkingDir() + qsl("tupdates/ready");
|
QString readyPath = cWorkingDir() + qsl("tupdates/ready");
|
||||||
PsUpdateDownloader::deleteDir(readyPath);
|
PsUpdateDownloader::deleteDir(readyPath);
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void psExecTelegram() {
|
void psExecTelegram() {
|
||||||
/*QString targs = qsl("-noupdate -tosettings");
|
objc_execTelegram();
|
||||||
if (cFromAutoStart()) targs += qsl(" -autostart");
|
|
||||||
if (cDebug()) targs += qsl(" -debug");
|
|
||||||
if (cDataFile() != (cTestMode() ? qsl("data_test") : qsl("data"))) targs += qsl(" -key \"") + cDataFile() + '"';
|
|
||||||
|
|
||||||
QString telegram(QDir::toNativeSeparators(cExeDir() + "Telegram.exe")), wdir(QDir::toNativeSeparators(cWorkingDir()));
|
|
||||||
|
|
||||||
DEBUG_LOG(("Application Info: executing %1 %2").arg(cExeDir() + "Telegram.exe").arg(targs));
|
|
||||||
HINSTANCE r = ShellExecute(0, 0, telegram.toStdWString().c_str(), targs.toStdWString().c_str(), wdir.isEmpty() ? 0 : wdir.toStdWString().c_str(), SW_SHOWNORMAL);
|
|
||||||
if (long(r) < 32) {
|
|
||||||
DEBUG_LOG(("Application Error: failed to execute %1, working directory: '%2', result: %3").arg(telegram).arg(wdir).arg(long(r)));
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void psAutoStart(bool start, bool silent) {
|
void psAutoStart(bool start, bool silent) {
|
||||||
/*WCHAR startupFolder[MAX_PATH];
|
|
||||||
HRESULT hres = SHGetFolderPath(0, CSIDL_STARTUP, 0, SHGFP_TYPE_CURRENT, startupFolder);
|
|
||||||
if (SUCCEEDED(hres)) {
|
|
||||||
QString lnk = QString::fromWCharArray(startupFolder) + "\\Telegram.lnk";
|
|
||||||
if (start) {
|
|
||||||
IShellLink* psl;
|
|
||||||
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl);
|
|
||||||
if (SUCCEEDED(hres)) {
|
|
||||||
IPersistFile* ppf;
|
|
||||||
|
|
||||||
QString exe = QDir::toNativeSeparators(QDir(cExeDir()).absolutePath() + "//Telegram.exe"), dir = QDir::toNativeSeparators(QDir(cWorkingDir()).absolutePath());
|
|
||||||
psl->SetArguments(L"-autostart");
|
|
||||||
psl->SetPath(exe.toStdWString().c_str());
|
|
||||||
psl->SetWorkingDirectory(dir.toStdWString().c_str());
|
|
||||||
psl->SetDescription(L"Telegram autorun link.\nYou can disable autorun in Telegram settings.");
|
|
||||||
|
|
||||||
hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);
|
|
||||||
|
|
||||||
if (SUCCEEDED(hres)) {
|
|
||||||
hres = ppf->Save(lnk.toStdWString().c_str(), TRUE);
|
|
||||||
ppf->Release();
|
|
||||||
} else {
|
|
||||||
if (!silent) LOG(("App Error: could not create interface IID_IPersistFile %1").arg(hres));
|
|
||||||
}
|
|
||||||
psl->Release();
|
|
||||||
} else {
|
|
||||||
if (!silent) LOG(("App Error: could not create instance of IID_IShellLink %1").arg(hres));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
QFile::remove(lnk);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!silent) LOG(("App Error: could not get CSIDL_STARTUP folder %1").arg(hres));
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
@ -24,14 +24,14 @@ public:
|
|||||||
|
|
||||||
PsMacWindowPrivate();
|
PsMacWindowPrivate();
|
||||||
|
|
||||||
void setWindowBadge(const char *utf8str);
|
void setWindowBadge(const QString &str);
|
||||||
void startBounce();
|
void startBounce();
|
||||||
|
|
||||||
void holdOnTop(WId winId);
|
void holdOnTop(WId winId);
|
||||||
void showOverAll(WId winId);
|
void showOverAll(WId winId);
|
||||||
void activateWnd(WId winId);
|
void activateWnd(WId winId);
|
||||||
void showNotify(unsigned long long peer, const char *utf8title, const char *subtitle, const char *utf8msg);
|
void showNotify(uint64 peer, const QString &title, const QString &subtitle, const QString &msg);
|
||||||
void clearNotifies(unsigned long long peer = 0);
|
void clearNotifies(uint64 peer = 0);
|
||||||
|
|
||||||
void enableShadow(WId winId);
|
void enableShadow(WId winId);
|
||||||
|
|
||||||
@ -48,10 +48,20 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void objc_debugShowAlert(const char *utf8str);
|
void objc_debugShowAlert(const QString &str);
|
||||||
void objc_outputDebugString(const char *utf8str);
|
void objc_outputDebugString(const QString &str);
|
||||||
int64 objc_idleTime();
|
int64 objc_idleTime();
|
||||||
|
|
||||||
void objc_showInFinder(const char *utf8file, const char *utf8path);
|
void objc_showInFinder(const QString &file, const QString &path);
|
||||||
void objc_openFile(const char *utf8file, bool openwith);
|
void objc_openFile(const QString &file, bool openwith);
|
||||||
void objc_finish();
|
void objc_finish();
|
||||||
|
bool objc_execUpdater();
|
||||||
|
void objc_execTelegram();
|
||||||
|
|
||||||
|
void objc_activateProgram();
|
||||||
|
bool objc_moveFile(const QString &from, const QString &to);
|
||||||
|
void objc_deleteDir(const QString &dir);
|
||||||
|
|
||||||
|
QString objc_appDataPath();
|
||||||
|
QString objc_currentCountry();
|
||||||
|
QString objc_currentLang();
|
||||||
|
@ -26,21 +26,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
|||||||
|
|
||||||
class QNSString {
|
class QNSString {
|
||||||
public:
|
public:
|
||||||
QNSString(const QString &str) : _str([[NSString alloc] initWithUTF8String:str.toUtf8().constData()]) {
|
QNSString(const QString &str) : _str([NSString stringWithUTF8String:str.toUtf8().constData()]) {
|
||||||
}
|
}
|
||||||
QNSString &operator=(const QNSString &other) {
|
|
||||||
if (this != &other) {
|
|
||||||
[_str release];
|
|
||||||
_str = [other._str copy];
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
QNSString(const QNSString &other) : _str([other._str copy]) {
|
|
||||||
}
|
|
||||||
~QNSString() {
|
|
||||||
[_str release];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *s() {
|
NSString *s() {
|
||||||
return _str;
|
return _str;
|
||||||
}
|
}
|
||||||
@ -163,10 +150,8 @@ PsMacWindowPrivate::PsMacWindowPrivate() : data(new PsMacWindowData(this)) {
|
|||||||
[center setDelegate:data->notifyHandler];
|
[center setDelegate:data->notifyHandler];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::setWindowBadge(const char *utf8str) {
|
void PsMacWindowPrivate::setWindowBadge(const QString &str) {
|
||||||
NSString *badgeString = [[NSString alloc] initWithUTF8String:utf8str];
|
[[NSApp dockTile] setBadgeLabel:QNSString(str).s()];
|
||||||
[[NSApp dockTile] setBadgeLabel:badgeString];
|
|
||||||
[badgeString release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::startBounce() {
|
void PsMacWindowPrivate::startBounce() {
|
||||||
@ -190,25 +175,15 @@ void PsMacWindowPrivate::activateWnd(WId winId) {
|
|||||||
[wnd orderFront:wnd];
|
[wnd orderFront:wnd];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::showNotify(unsigned long long peer, const char *utf8title, const char *utf8subtitle, const char *utf8msg) {
|
void PsMacWindowPrivate::showNotify(uint64 peer, const QString &title, const QString &subtitle, const QString &msg) {
|
||||||
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
||||||
|
|
||||||
NSDictionary *uinfo = [[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithUnsignedLongLong:peer],@"peer",[NSNumber numberWithUnsignedLongLong:cInstance()],@"inst",nil];
|
[notification setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithUnsignedLongLong:peer],@"peer",[NSNumber numberWithUnsignedLongLong:cInstance()],@"inst",nil]];
|
||||||
[notification setUserInfo:uinfo];
|
|
||||||
[uinfo release];
|
|
||||||
|
|
||||||
NSString *title = [[NSString alloc] initWithUTF8String:utf8title];
|
[notification setTitle:QNSString(title).s()];
|
||||||
[notification setTitle:title];
|
[notification setSubtitle:QNSString(subtitle).s()];
|
||||||
[title release];
|
[notification setInformativeText:QNSString(msg).s()];
|
||||||
|
|
||||||
NSString *subtitle = [[NSString alloc] initWithUTF8String:utf8subtitle];
|
|
||||||
[notification setSubtitle:subtitle];
|
|
||||||
[subtitle release];
|
|
||||||
|
|
||||||
NSString *msg = [[NSString alloc] initWithUTF8String:utf8msg];
|
|
||||||
[notification setInformativeText:msg];
|
|
||||||
[msg release];
|
|
||||||
|
|
||||||
[notification setHasReplyButton:YES];
|
[notification setHasReplyButton:YES];
|
||||||
|
|
||||||
[notification setSoundName:nil];
|
[notification setSoundName:nil];
|
||||||
@ -238,18 +213,12 @@ void PsMacWindowPrivate::clearNotifies(unsigned long long peer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void objc_debugShowAlert(const char *utf8str) {
|
void objc_debugShowAlert(const QString &str) {
|
||||||
NSString *text = [[NSString alloc] initWithUTF8String: utf8str];
|
[[NSAlert alertWithMessageText:@"Debug Message" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@", QNSString(str).s()] runModal];
|
||||||
NSAlert *alert = [NSAlert alertWithMessageText:@"Debug Message" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@", text];
|
|
||||||
[alert runModal];
|
|
||||||
[alert release];
|
|
||||||
[text release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void objc_outputDebugString(const char *utf8str) {
|
void objc_outputDebugString(const QString &str) {
|
||||||
NSString *text = [[NSString alloc] initWithUTF8String:utf8str];
|
NSLog(@"%@", QNSString(str).s());
|
||||||
NSLog(@"%@", text);
|
|
||||||
[text release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PsMacWindowPrivate::~PsMacWindowPrivate() {
|
PsMacWindowPrivate::~PsMacWindowPrivate() {
|
||||||
@ -306,11 +275,8 @@ int64 objc_idleTime() { // taken from https://github.com/trueinteractions/tint/i
|
|||||||
return (result == err) ? -1 : int64(result);
|
return (result == err) ? -1 : int64(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void objc_showInFinder(const char *utf8file, const char *utf8path) {
|
void objc_showInFinder(const QString &file, const QString &path) {
|
||||||
NSString *file = [[NSString alloc] initWithUTF8String:utf8file], *path = [[NSString alloc] initWithUTF8String:utf8path];
|
[[NSWorkspace sharedWorkspace] selectFile:QNSString(file).s() inFileViewerRootedAtPath:QNSString(path).s()];
|
||||||
[[NSWorkspace sharedWorkspace] selectFile:file inFileViewerRootedAtPath:path];
|
|
||||||
[file release];
|
|
||||||
[path release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@interface NSURL(CompareUrls)
|
@interface NSURL(CompareUrls)
|
||||||
@ -456,8 +422,8 @@ void objc_showInFinder(const char *utf8file, const char *utf8path) {
|
|||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
void objc_openFile(const char *utf8file, bool openwith) {
|
void objc_openFile(const QString &f, bool openwith) {
|
||||||
NSString *file = [[NSString alloc] initWithUTF8String:utf8file];
|
NSString *file = QNSString(f).s();
|
||||||
if (openwith || [[NSWorkspace sharedWorkspace] openFile:file] == NO) {
|
if (openwith || [[NSWorkspace sharedWorkspace] openFile:file] == NO) {
|
||||||
@try {
|
@try {
|
||||||
NSURL *url = [NSURL fileURLWithPath:file];
|
NSURL *url = [NSURL fileURLWithPath:file];
|
||||||
@ -558,7 +524,7 @@ void objc_openFile(const char *utf8file, bool openwith) {
|
|||||||
[openPanel setAllowsMultipleSelection:NO];
|
[openPanel setAllowsMultipleSelection:NO];
|
||||||
[openPanel setResolvesAliases:YES];
|
[openPanel setResolvesAliases:YES];
|
||||||
[openPanel setTitle:objc_lang(lng_mac_choose_app).s()];
|
[openPanel setTitle:objc_lang(lng_mac_choose_app).s()];
|
||||||
[openPanel setMessage:[objc_lang(lng_mac_choose_text).s() stringByReplacingOccurrencesOfString:@"{file}" withString:name]];
|
[openPanel setMessage:[[objc_lang(lng_mac_choose_text).s() stringByReplacingOccurrencesOfString:@"{file}" withString:name] stringByAppendingFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]];
|
||||||
|
|
||||||
NSArray *appsPaths = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask];
|
NSArray *appsPaths = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask];
|
||||||
if ([appsPaths count]) [openPanel setDirectoryURL:[appsPaths firstObject]];
|
if ([appsPaths count]) [openPanel setDirectoryURL:[appsPaths firstObject]];
|
||||||
@ -606,3 +572,93 @@ void objc_finish() {
|
|||||||
objcLang.clear();
|
objcLang.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL _execUpdater(BOOL update = YES) {
|
||||||
|
NSString *path = @"", *args = @"";
|
||||||
|
@try {
|
||||||
|
path = [[NSBundle mainBundle] bundlePath];
|
||||||
|
if (!path) {
|
||||||
|
LOG(("Could not get bundle path!!"));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
path = [path stringByAppendingString:@"/Contents/Frameworks/Updater"];
|
||||||
|
|
||||||
|
NSMutableArray *args = [[NSMutableArray alloc] initWithObjects:@"-workpath", QNSString(cWorkingDir()).s(), @"-tosettings", @"-procid", nil];
|
||||||
|
[args addObject:[NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]];
|
||||||
|
if (!update) [args addObject:@"-noupdate"];
|
||||||
|
if (cFromAutoStart()) [args addObject:@"-autostart"];
|
||||||
|
if (cDebug()) [args addObject:@"-debug"];
|
||||||
|
if (cDataFile() != (cTestMode() ? qsl("data_test") : qsl("data"))) {
|
||||||
|
[args addObject:@"-key"];
|
||||||
|
[args addObject:QNSString(cDataFile()).s()];
|
||||||
|
}
|
||||||
|
|
||||||
|
DEBUG_LOG(("Application Info: executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([[args componentsJoinedByString:@" "] cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
if (![NSTask launchedTaskWithLaunchPath:path arguments:args]) {
|
||||||
|
LOG(("Task not launched while executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([[args componentsJoinedByString:@" "] cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@catch (NSException *exception) {
|
||||||
|
LOG(("Exception caught while executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([args cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool objc_execUpdater() {
|
||||||
|
return !!_execUpdater();
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_execTelegram() {
|
||||||
|
_execUpdater(NO);
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_activateProgram() {
|
||||||
|
[NSApp activateIgnoringOtherApps:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool objc_moveFile(const QString &from, const QString &to) {
|
||||||
|
NSString *f = QNSString(from).s(), *t = QNSString(to).s();
|
||||||
|
if ([[NSFileManager defaultManager] fileExistsAtPath:t]) {
|
||||||
|
NSData *data = [NSData dataWithContentsOfFile:f];
|
||||||
|
if (data) {
|
||||||
|
if ([data writeToFile:t atomically:YES]) {
|
||||||
|
if ([[NSFileManager defaultManager] removeItemAtPath:f error:nil]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ([[NSFileManager defaultManager] moveItemAtPath:f toPath:t error:nil]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_deleteDir(const QString &dir) {
|
||||||
|
[[NSFileManager defaultManager] removeItemAtPath:QNSString(dir).s() error:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_appDataPath() {
|
||||||
|
NSURL *url = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil];
|
||||||
|
if (url) {
|
||||||
|
return QString::fromUtf8([[url path] fileSystemRepresentation]) + '/' + QString::fromWCharArray(AppName) + '/';
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_currentCountry() {
|
||||||
|
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
|
||||||
|
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
|
||||||
|
return countryCode ? QString::fromUtf8([countryCode cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_currentLang() {
|
||||||
|
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
|
||||||
|
NSString *currentLang = [currentLocale objectForKey:NSLocaleLanguageCode];
|
||||||
|
return currentLang ? QString::fromUtf8([currentLang cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
||||||
|
}
|
||||||
|
@ -74,10 +74,13 @@ uint64 gInstance = 0.;
|
|||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
DBIPlatform gPlatform = dbipWindows;
|
DBIPlatform gPlatform = dbipWindows;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/win/tupdates/current"));
|
||||||
#elif defined Q_OS_MAC
|
#elif defined Q_OS_MAC
|
||||||
DBIPlatform gPlatform = dbipMac;
|
DBIPlatform gPlatform = dbipMac;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/mac/tupdates/current"));
|
||||||
#elif defined Q_OS_LINUX
|
#elif defined Q_OS_LINUX
|
||||||
DBIPlatform gPlatform = dbipLinux;
|
DBIPlatform gPlatform = dbipLinux;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/linux/tupdates/current"));
|
||||||
#else
|
#else
|
||||||
#error Unknown platform
|
#error Unknown platform
|
||||||
#endif
|
#endif
|
||||||
|
@ -138,5 +138,6 @@ DeclareSetting(bool, CustomNotifies);
|
|||||||
DeclareReadSetting(uint64, Instance);
|
DeclareReadSetting(uint64, Instance);
|
||||||
|
|
||||||
DeclareReadSetting(DBIPlatform, Platform);
|
DeclareReadSetting(DBIPlatform, Platform);
|
||||||
|
DeclareReadSetting(QUrl, UpdateURL);
|
||||||
|
|
||||||
void settingsParseArgs(int argc, char *argv[]);
|
void settingsParseArgs(int argc, char *argv[]);
|
||||||
|
@ -34,7 +34,11 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
|||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
#include <QtNetwork/QNetworkProxy>
|
#include <QtNetwork/QNetworkProxy>
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
#include <LzmaLib.h>
|
#include <LzmaLib.h>
|
||||||
|
#else
|
||||||
|
#include <lzma.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined Q_OS_WIN
|
#if defined Q_OS_WIN
|
||||||
#define _NEED_WIN_GENERATE_DUMP
|
#define _NEED_WIN_GENERATE_DUMP
|
||||||
|
@ -450,6 +450,8 @@ bool Window::eventFilter(QObject *obj, QEvent *evt) {
|
|||||||
if (App::main()) {
|
if (App::main()) {
|
||||||
App::main()->mainStateChanged(state);
|
App::main()->mainStateChanged(state);
|
||||||
}
|
}
|
||||||
|
} else if (obj == this && (evt->type() == QEvent::Move || evt->type() == QEvent::Resize)) {
|
||||||
|
psUpdatedPosition();
|
||||||
}
|
}
|
||||||
return PsMainWindow::eventFilter(obj, evt);
|
return PsMainWindow::eventFilter(obj, evt);
|
||||||
}
|
}
|
||||||
|
@ -194,6 +194,3 @@ LIBS += ./../../Libraries/libexif-0.6.20/libexif/.libs/libexif.a
|
|||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
./SourceFiles/telegram.qrc
|
./SourceFiles/telegram.qrc
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
|
||||||
DEFINES += _DEBUG
|
|
||||||
}
|
|
||||||
|
@ -202,6 +202,13 @@
|
|||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
07084688195445A700B5AE3A /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 07084684195445A600B5AE3A /* Updater.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 07084678195445A600B5AE3A;
|
||||||
|
remoteInfo = Updater;
|
||||||
|
};
|
||||||
07C3AF22194335970016CFF1 /* PBXContainerItemProxy */ = {
|
07C3AF22194335970016CFF1 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
@ -226,6 +233,7 @@
|
|||||||
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = "<absolute>"; };
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = "<absolute>"; };
|
||||||
06E379415713F34B83F99C35 /* app.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = app.cpp; path = SourceFiles/app.cpp; sourceTree = "<absolute>"; };
|
06E379415713F34B83F99C35 /* app.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = app.cpp; path = SourceFiles/app.cpp; sourceTree = "<absolute>"; };
|
||||||
07055CC3194EE85B0008DEF6 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "./../../Libraries/openssl-xcode/libcrypto.a"; sourceTree = "<group>"; };
|
07055CC3194EE85B0008DEF6 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "./../../Libraries/openssl-xcode/libcrypto.a"; sourceTree = "<group>"; };
|
||||||
|
07084684195445A600B5AE3A /* Updater.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = Updater.xcodeproj; sourceTree = SOURCE_ROOT; };
|
||||||
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = "<absolute>"; };
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = "<absolute>"; };
|
||||||
0771C4C94B623FC34BF62983 /* intro.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = intro.cpp; path = SourceFiles/intro/intro.cpp; sourceTree = "<absolute>"; };
|
0771C4C94B623FC34BF62983 /* intro.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = intro.cpp; path = SourceFiles/intro/intro.cpp; sourceTree = "<absolute>"; };
|
||||||
07C3AF24194335ED0016CFF1 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Telegram/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
07C3AF24194335ED0016CFF1 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Telegram/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
||||||
@ -652,6 +660,14 @@
|
|||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
07084685195445A600B5AE3A /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
07084689195445A700B5AE3A /* Updater */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
130BDDB6FC4D60CF394D95AF /* GeneratedFiles */ = {
|
130BDDB6FC4D60CF394D95AF /* GeneratedFiles */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -1139,6 +1155,7 @@
|
|||||||
E8C543AB96796ECAA2E65C57 /* Telegram */ = {
|
E8C543AB96796ECAA2E65C57 /* Telegram */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
07084684195445A600B5AE3A /* Updater.xcodeproj */,
|
||||||
2EB56BE3C2D93CDAB0C52E67 /* Sources */,
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */,
|
||||||
25B08E2869634E9BCBA333A2 /* Generated Sources */,
|
25B08E2869634E9BCBA333A2 /* Generated Sources */,
|
||||||
74B182DB50CB5611B5C1C297 /* Supporting Files */,
|
74B182DB50CB5611B5C1C297 /* Supporting Files */,
|
||||||
@ -1198,6 +1215,12 @@
|
|||||||
mainGroup = E8C543AB96796ECAA2E65C57 /* Telegram */;
|
mainGroup = E8C543AB96796ECAA2E65C57 /* Telegram */;
|
||||||
productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
|
productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
|
projectReferences = (
|
||||||
|
{
|
||||||
|
ProductGroup = 07084685195445A600B5AE3A /* Products */;
|
||||||
|
ProjectRef = 07084684195445A600B5AE3A /* Updater.xcodeproj */;
|
||||||
|
},
|
||||||
|
);
|
||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
targets = (
|
targets = (
|
||||||
7CCA95B9FCAD34D929431AD6 /* Telegram */,
|
7CCA95B9FCAD34D929431AD6 /* Telegram */,
|
||||||
@ -1207,6 +1230,16 @@
|
|||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXReferenceProxy section */
|
||||||
|
07084689195445A700B5AE3A /* Updater */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = "compiled.mach-o.executable";
|
||||||
|
path = Updater;
|
||||||
|
remoteRef = 07084688195445A700B5AE3A /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
/* End PBXReferenceProxy section */
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
07C3AF25194336160016CFF1 /* Resources */ = {
|
07C3AF25194336160016CFF1 /* Resources */ = {
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
@ -1476,7 +1509,7 @@
|
|||||||
./../../Libraries/QtStatic/qtbase/include,
|
./../../Libraries/QtStatic/qtbase/include,
|
||||||
./SourceFiles,
|
./SourceFiles,
|
||||||
./GeneratedFiles,
|
./GeneratedFiles,
|
||||||
./../../Libraries/lzma/C,
|
/usr/local/include,
|
||||||
"./../../Libraries/libexif-0.6.20",
|
"./../../Libraries/libexif-0.6.20",
|
||||||
"/usr/local/Qt-5.3.0/include",
|
"/usr/local/Qt-5.3.0/include",
|
||||||
"/usr/local/Qt-5.3.0/include/QtMultimedia",
|
"/usr/local/Qt-5.3.0/include/QtMultimedia",
|
||||||
@ -1512,6 +1545,7 @@
|
|||||||
"-Wall",
|
"-Wall",
|
||||||
"-W",
|
"-W",
|
||||||
"-fPIE",
|
"-fPIE",
|
||||||
|
"-D_WITH_DEBUG",
|
||||||
"-DQT_MULTIMEDIA_LIB",
|
"-DQT_MULTIMEDIA_LIB",
|
||||||
"-DQT_WIDGETS_LIB",
|
"-DQT_WIDGETS_LIB",
|
||||||
"-DQT_NETWORK_LIB",
|
"-DQT_NETWORK_LIB",
|
||||||
@ -1532,6 +1566,7 @@
|
|||||||
"-Wall",
|
"-Wall",
|
||||||
"-W",
|
"-W",
|
||||||
"-fPIE",
|
"-fPIE",
|
||||||
|
"-D_WITH_DEBUG",
|
||||||
"-DQT_MULTIMEDIA_LIB",
|
"-DQT_MULTIMEDIA_LIB",
|
||||||
"-DQT_WIDGETS_LIB",
|
"-DQT_WIDGETS_LIB",
|
||||||
"-DQT_NETWORK_LIB",
|
"-DQT_NETWORK_LIB",
|
||||||
@ -1558,6 +1593,7 @@
|
|||||||
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
"-lz",
|
"-lz",
|
||||||
"-lm",
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = Telegram;
|
PRODUCT_NAME = Telegram;
|
||||||
QT_LIBRARY_SUFFIX = "";
|
QT_LIBRARY_SUFFIX = "";
|
||||||
@ -1596,7 +1632,7 @@
|
|||||||
./../../Libraries/QtStatic/qtbase/include,
|
./../../Libraries/QtStatic/qtbase/include,
|
||||||
./SourceFiles,
|
./SourceFiles,
|
||||||
./GeneratedFiles,
|
./GeneratedFiles,
|
||||||
./../../Libraries/lzma/C,
|
/usr/local/include,
|
||||||
"./../../Libraries/libexif-0.6.20",
|
"./../../Libraries/libexif-0.6.20",
|
||||||
"/usr/local/Qt-5.3.0/include",
|
"/usr/local/Qt-5.3.0/include",
|
||||||
"/usr/local/Qt-5.3.0/include/QtMultimedia",
|
"/usr/local/Qt-5.3.0/include/QtMultimedia",
|
||||||
@ -1681,6 +1717,7 @@
|
|||||||
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
"-lz",
|
"-lz",
|
||||||
"-lm",
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = Telegram;
|
PRODUCT_NAME = Telegram;
|
||||||
QT_LIBRARY_SUFFIX = _debug;
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
237
Telegram/Updater.xcodeproj/project.pbxproj
Normal file
237
Telegram/Updater.xcodeproj/project.pbxproj
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
070846A619544CDD00B5AE3A /* updater_osx.m in Sources */ = {isa = PBXBuildFile; fileRef = 070846A519544CDD00B5AE3A /* updater_osx.m */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
07084676195445A600B5AE3A /* CopyFiles */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = /usr/share/man/man1/;
|
||||||
|
dstSubfolderSpec = 0;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 1;
|
||||||
|
};
|
||||||
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
07084678195445A600B5AE3A /* Updater */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Updater; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
070846A519544CDD00B5AE3A /* updater_osx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = updater_osx.m; path = SourceFiles/_other/updater_osx.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
07084675195445A600B5AE3A /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
0708466F195445A600B5AE3A = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
0708467A195445A600B5AE3A /* Updater */,
|
||||||
|
07084679195445A600B5AE3A /* Products */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
07084679195445A600B5AE3A /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
07084678195445A600B5AE3A /* Updater */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
0708467A195445A600B5AE3A /* Updater */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
070846A519544CDD00B5AE3A /* updater_osx.m */,
|
||||||
|
);
|
||||||
|
path = Updater;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
07084677195445A600B5AE3A /* Updater */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 07084681195445A600B5AE3A /* Build configuration list for PBXNativeTarget "Updater" */;
|
||||||
|
buildPhases = (
|
||||||
|
07084674195445A600B5AE3A /* Sources */,
|
||||||
|
07084675195445A600B5AE3A /* Frameworks */,
|
||||||
|
07084676195445A600B5AE3A /* CopyFiles */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = Updater;
|
||||||
|
productName = Updater;
|
||||||
|
productReference = 07084678195445A600B5AE3A /* Updater */;
|
||||||
|
productType = "com.apple.product-type.tool";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
07084670195445A600B5AE3A /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
};
|
||||||
|
buildConfigurationList = 07084673195445A600B5AE3A /* Build configuration list for PBXProject "Updater" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = 0708466F195445A600B5AE3A;
|
||||||
|
productRefGroup = 07084679195445A600B5AE3A /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
07084677195445A600B5AE3A /* Updater */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
07084674195445A600B5AE3A /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
070846A619544CDD00B5AE3A /* updater_osx.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
0708467F195445A600B5AE3A /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Telegram.app/Contents/Frameworks";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediateUpdater";
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_CFLAGS = "-D_DEBUG";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
07084680195445A600B5AE3A /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Telegram.app/Contents/Frameworks";
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediateUpdater";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
07084682195445A600B5AE3A /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
07084683195445A600B5AE3A /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
07084673195445A600B5AE3A /* Build configuration list for PBXProject "Updater" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
0708467F195445A600B5AE3A /* Debug */,
|
||||||
|
07084680195445A600B5AE3A /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
07084681195445A600B5AE3A /* Build configuration list for PBXNativeTarget "Updater" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
07084682195445A600B5AE3A /* Debug */,
|
||||||
|
07084683195445A600B5AE3A /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 07084670195445A600B5AE3A /* Project object */;
|
||||||
|
}
|
13
Telegram/packer_plugin_import.cpp
Normal file
13
Telegram/packer_plugin_import.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// This file is autogenerated by qmake. It imports static plugin classes for
|
||||||
|
// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS.<plugin> variables.
|
||||||
|
#include <QtPlugin>
|
||||||
|
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QDDSPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QICNSPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QICOPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QJp2Plugin)
|
||||||
|
Q_IMPORT_PLUGIN(QMngPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QTgaPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QTiffPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QWbmpPlugin)
|
||||||
|
Q_IMPORT_PLUGIN(QWebpPlugin)
|
Loading…
Reference in New Issue
Block a user