diff --git a/QTCREATOR.md b/QTCREATOR.md index d963f9bad..e4c584b74 100644 --- a/QTCREATOR.md +++ b/QTCREATOR.md @@ -32,6 +32,20 @@ Install dev libraries sudo apt-get install libexif-dev liblzma-dev libz-dev libssl-dev libappindicator-dev libunity-dev +####zlib 1.2.8 + +http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip) + +Extract to **/home/user/TBuild/Libraries** + +#####Building library + +In Terminal go to **/home/user/TBuild/Libraries/zlib-1.2.8** and run: + + ./configure + make + sudo make install + Install audio libraries ####Opus codec 1.1 diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp index 78c6f4437..b776cba00 100644 --- a/Telegram/SourceFiles/logs.cpp +++ b/Telegram/SourceFiles/logs.cpp @@ -26,7 +26,13 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org #ifdef Q_OS_WIN #include "client/windows/handler/exception_handler.h" #elif defined Q_OS_MAC + +#ifdef MAC_USE_BREAKPAD #include "client/mac/handler/exception_handler.h" +#else +#include "client/crashpad_client.h" +#endif + #elif defined Q_OS_LINUX64 || defined Q_OS_LINUX32 #include "client/linux/handler/exception_handler.h" #endif @@ -671,10 +677,12 @@ namespace SignalHandlers { bool LoggingCrashHeaderWritten = false; QMutex LoggingCrashMutex; - const char *BreakpadDumpPath = 0; + typedef std::map AnnotationsMap; + AnnotationsMap ProcessAnnotations; + + const char *BreakpadDumpPath = 0; const wchar_t *BreakpadDumpPathW = 0; -// see https://github.com/benbjohnson/bandicoot #if defined Q_OS_MAC || defined Q_OS_LINUX32 || defined Q_OS_LINUX64 struct sigaction SIG_def[32]; @@ -707,28 +715,10 @@ namespace SignalHandlers { if (!LoggingCrashHeaderWritten) { LoggingCrashHeaderWritten = true; - dump() << "Binary: " << LaunchedBinaryName << "\n"; - dump() << "ApiId: " << ApiId << "\n"; - if (cBetaVersion()) { - dump() << "Version: " << cBetaVersion() << " beta\n"; - } else { - dump() << "Version: " << AppVersion; - if (cDevVersion()) { - dump() << " dev\n"; - } else { - dump() << "\n"; - } + const AnnotationsMap c_ProcessAnnotations(ProcessAnnotations); + for (AnnotationsMap::const_iterator i = c_ProcessAnnotations.begin(), e = c_ProcessAnnotations.end(); i != e; ++i) { + dump() << i->first.c_str() << ": " << i->second.c_str() << "\n"; } - dump() << "Launched: " << LaunchedDateTimeStr << "\n"; - dump() << "Platform: "; - switch (cPlatform()) { - case dbipWindows: dump() << "win"; break; - case dbipMac: dump() << "mac"; break; - case dbipMacOld: dump() << "macold"; break; - case dbipLinux64: dump() << "linux64"; break; - case dbipLinux32: dump() << "linux32"; break; - } - dump() << "\n"; psWriteDump(); dump() << "\n"; } @@ -745,6 +735,7 @@ namespace SignalHandlers { dump() << "Caught signal " << signum << " in thread " << uint64(thread) << "\n"; } + // see https://github.com/benbjohnson/bandicoot #if defined Q_OS_MAC || defined Q_OS_LINUX32 || defined Q_OS_LINUX64 ucontext_t *uc = (ucontext_t*)ucontext; @@ -820,6 +811,8 @@ namespace SignalHandlers { LoggingCrashThreadId = 0; } + bool SetSignalHandlers = true; +#if !defined Q_OS_MAC || defined MAC_USE_BREAKPAD google_breakpad::ExceptionHandler* BreakpadExceptionHandler = 0; #ifdef Q_OS_WIN @@ -844,31 +837,54 @@ namespace SignalHandlers { #endif return success; } +#endif void StartBreakpad() { - QString dumpPath = cWorkingDir() + qsl("tdumps"); - QDir().mkpath(dumpPath); + ProcessAnnotations["Binary"] = cExeName().toUtf8().constData(); + ProcessAnnotations["ApiId"] = QString::number(ApiId).toUtf8().constData(); + ProcessAnnotations["Version"] = (cBetaVersion() ? qsl("%1 beta").arg(cBetaVersion()) : (cDevVersion() ? qsl("%1 dev") : qsl("%1")).arg(AppVersion)).toUtf8().constData(); + ProcessAnnotations["Launched"] = QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss").toUtf8().constData(); + ProcessAnnotations["Platform"] = cPlatformString().toUtf8().constData(); + + QString dumpspath = cWorkingDir() + qsl("tdata/dumps"); + QDir().mkpath(dumpspath); #ifdef Q_OS_WIN BreakpadExceptionHandler = new google_breakpad::ExceptionHandler( - dumpPath.toStdWString(), + dumpspath.toStdWString(), /*FilterCallback*/ 0, DumpCallback, /*context*/ 0, true ); #elif defined Q_OS_MAC + +#ifdef MAC_USE_BREAKPAD BreakpadExceptionHandler = new google_breakpad::ExceptionHandler( - dumpPath.toStdString(), + dumpspath.toUtf8().toStdString(), /*FilterCallback*/ 0, DumpCallback, /*context*/ 0, true, 0 ); + SetSignalHandlers = false; +#else + crashpad::CrashpadClient crashpad_client; + std::string handler = (cExeDir() + cExeName() + qsl("/Contents/Helpers/crashpad_handler")).toUtf8().constData(); + std::string database = dumpspath.toUtf8().constData(); + if (crashpad_client.StartHandler(base::FilePath(handler), + base::FilePath(database), + std::string(), + ProcessAnnotations, + std::vector(), + false)) { + crashpad_client.UseHandler(); + } +#endif #elif defined Q_OS_LINUX64 || defined Q_OS_LINUX32 BreakpadExceptionHandler = new google_breakpad::ExceptionHandler( - google_breakpad::MinidumpDescriptor(dumpPath.toStdString()), + google_breakpad::MinidumpDescriptor(dumpspath.toUtf8().toStdString()), /*FilterCallback*/ 0, DumpCallback, /*context*/ 0, @@ -879,11 +895,13 @@ namespace SignalHandlers { } void FinishBreakpad() { +#if !defined Q_OS_MAC || defined MAC_USE_BREAKPAD if (BreakpadExceptionHandler) { google_breakpad::ExceptionHandler *h = BreakpadExceptionHandler; BreakpadExceptionHandler = 0; delete h; } +#endif } Status start() { @@ -914,36 +932,27 @@ namespace SignalHandlers { CrashDumpFile = fopen(CrashDumpPath.constData(), "wb"); if (CrashDumpFile) { CrashDumpFileNo = fileno(CrashDumpFile); - - QByteArray launchedDateTime = QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss").toUtf8(); - t_assert(launchedDateTime.size() < int(sizeof(LaunchedDateTimeStr))); - memcpy(LaunchedDateTimeStr, launchedDateTime.constData(), launchedDateTime.size()); - - QByteArray launchedBinaryName = cExeName().toUtf8(); - t_assert(launchedBinaryName.size() < int(sizeof(LaunchedBinaryName))); - memcpy(LaunchedBinaryName, launchedBinaryName.constData(), launchedBinaryName.size()); - + if (SetSignalHandlers) { #ifndef Q_OS_WIN - struct sigaction sigact; + struct sigaction sigact; - sigact.sa_sigaction = SignalHandlers::Handler; - sigemptyset(&sigact.sa_mask); - sigact.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigact.sa_sigaction = SignalHandlers::Handler; + sigemptyset(&sigact.sa_mask); + sigact.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; -#ifndef Q_OS_MAC // let breakpad handle this - sigaction(SIGABRT, &sigact, &SIG_def[SIGABRT]); -#endif - sigaction(SIGSEGV, &sigact, &SIG_def[SIGSEGV]); - sigaction(SIGILL, &sigact, &SIG_def[SIGILL]); - sigaction(SIGFPE, &sigact, &SIG_def[SIGFPE]); - sigaction(SIGBUS, &sigact, &SIG_def[SIGBUS]); - sigaction(SIGSYS, &sigact, &SIG_def[SIGSYS]); + sigaction(SIGABRT, &sigact, &SIG_def[SIGABRT]); + sigaction(SIGSEGV, &sigact, &SIG_def[SIGSEGV]); + sigaction(SIGILL, &sigact, &SIG_def[SIGILL]); + sigaction(SIGFPE, &sigact, &SIG_def[SIGFPE]); + sigaction(SIGBUS, &sigact, &SIG_def[SIGBUS]); + sigaction(SIGSYS, &sigact, &SIG_def[SIGSYS]); #else - signal(SIGABRT, SignalHandlers::Handler); - signal(SIGSEGV, SignalHandlers::Handler); - signal(SIGILL, SignalHandlers::Handler); - signal(SIGFPE, SignalHandlers::Handler); + signal(SIGABRT, SignalHandlers::Handler); + signal(SIGSEGV, SignalHandlers::Handler); + signal(SIGILL, SignalHandlers::Handler); + signal(SIGFPE, SignalHandlers::Handler); #endif + } return Started; } @@ -953,10 +962,7 @@ namespace SignalHandlers { } void finish() { - if (BreakpadExceptionHandler) { - delete BreakpadExceptionHandler; - BreakpadExceptionHandler = 0; - } + FinishBreakpad(); if (CrashDumpFile) { fclose(CrashDumpFile); unlink(CrashDumpPath.constData()); diff --git a/Telegram/SourceFiles/pspecific_mac.cpp b/Telegram/SourceFiles/pspecific_mac.cpp index e86334561..2b51f85b8 100644 --- a/Telegram/SourceFiles/pspecific_mac.cpp +++ b/Telegram/SourceFiles/pspecific_mac.cpp @@ -688,6 +688,10 @@ QString psPrepareCrashDump(const QByteArray &crashdump, QString dumpfile) { result.append(qstr("BAD LINE: ")).append(line).append('\n'); continue; } + if (lst.size() > 5 && lst.at(3) == qsl("0x0") && lst.at(4) == qsl("+") && lst.at(5) == qsl("1")) { + result.append(qsl("(0x1 separator)\n")); + continue; + } if (i - start < atos.size()) { if (!atos.at(i - start).isEmpty()) { result.append(atos.at(i - start)).append('\n'); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 7d77c05ee..e17e7f0ea 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -139,19 +139,17 @@ bool gCustomNotifies = true; #ifdef Q_OS_WIN DBIPlatform gPlatform = dbipWindows; -QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/win/tupdates/current")); #elif defined Q_OS_MAC DBIPlatform gPlatform = dbipMac; -QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/mac/tupdates/current")); -#elif defined Q_OS_LINUX32 -DBIPlatform gPlatform = dbipLinux32; -QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/linux32/tupdates/current")); #elif defined Q_OS_LINUX64 DBIPlatform gPlatform = dbipLinux64; -QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/linux/tupdates/current")); +#elif defined Q_OS_LINUX32 +DBIPlatform gPlatform = dbipLinux32; #else #error Unknown platform #endif +QString gPlatformString; +QUrl gUpdateURL; bool gIsElCapitan = false; bool gContactsReceived = false; @@ -183,14 +181,36 @@ bool gAutoPlayGif = true; void settingsParseArgs(int argc, char *argv[]) { #ifdef Q_OS_MAC - gIsElCapitan = (QSysInfo::macVersion() >= QSysInfo::MV_10_11); - if (QSysInfo::macVersion() < QSysInfo::MV_10_8) { - gUpdateURL = QUrl(qsl("http://tdesktop.com/mac32/tupdates/current")); + if (QSysInfo::macVersion() >= QSysInfo::MV_10_11) { + gIsElCapitan = true; + } else if (QSysInfo::macVersion() < QSysInfo::MV_10_8) { gPlatform = dbipMacOld; - } else { - gCustomNotifies = false; } #endif + + switch (cPlatform()) { + case dbipWindows: + gUpdateURL = QUrl(qsl("http://tdesktop.com/win/tupdates/current")); + gPlatformString = qsl("Windows"); + break; + case dbipMac: + gUpdateURL = QUrl(qsl("http://tdesktop.com/mac/tupdates/current")); + gPlatformString = qsl("MacOS"); + gCustomNotifies = false; + break; + case dbipMacOld: + gUpdateURL = QUrl(qsl("http://tdesktop.com/mac32/tupdates/current")); + gPlatformString = qsl("MacOSold"); + break; + case dbipLinux64: + gUpdateURL = QUrl(qsl("http://tdesktop.com/linux/tupdates/current")); + gPlatformString = qsl("Linux64bit"); + break; + case dbipLinux32: + gUpdateURL = QUrl(qsl("http://tdesktop.com/linux32/tupdates/current")); + gPlatformString = qsl("Linux32bit"); + break; + } QStringList args; for (int32 i = 0; i < argc; ++i) { diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index 3272b8336..42554b744 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -317,6 +317,7 @@ DeclareSetting(int32, IntRetinaFactor); DeclareSetting(bool, CustomNotifies); DeclareReadSetting(DBIPlatform, Platform); +DeclareReadSetting(QString, PlatformString); DeclareReadSetting(bool, IsElCapitan); DeclareReadSetting(QUrl, UpdateURL); diff --git a/Telegram/SourceFiles/structs.cpp b/Telegram/SourceFiles/structs.cpp index 1660203d1..81c7e8568 100644 --- a/Telegram/SourceFiles/structs.cpp +++ b/Telegram/SourceFiles/structs.cpp @@ -61,9 +61,7 @@ const InterfacesMetadata *GetInterfacesMetadata(uint64 mask) { return i.value(); } -InterfaceWrapStruct InterfaceWraps[64] = { - { 0, 0, 0 } -}; +InterfaceWrapStruct InterfaceWraps[64]; QAtomicInt InterfaceIndexLast(0); diff --git a/Telegram/SourceFiles/structs.h b/Telegram/SourceFiles/structs.h index 66d2d6473..5655fafa5 100644 --- a/Telegram/SourceFiles/structs.h +++ b/Telegram/SourceFiles/structs.h @@ -25,6 +25,13 @@ typedef void(*InterfaceConstruct)(void *location, Interfaces *interfaces); typedef void(*InterfaceDestruct)(void *location); struct InterfaceWrapStruct { + InterfaceWrapStruct() : Size(0), Construct(0), Destruct(0) { + } + InterfaceWrapStruct(int size, InterfaceConstruct construct, InterfaceDestruct destruct) + : Size(size) + , Construct(construct) + , Destruct(destruct) { + } int Size; InterfaceConstruct Construct; InterfaceDestruct Destruct; @@ -62,7 +69,7 @@ public: if (InterfaceIndexLast.testAndSetOrdered(last, last + 1)) { t_assert(last < 64); if (_index.testAndSetOrdered(0, last + 1)) { - InterfaceWraps[last] = { InterfaceWrapTemplate::Size, InterfaceWrapTemplate::Construct, InterfaceWrapTemplate::Destruct }; + InterfaceWraps[last] = InterfaceWrapStruct(InterfaceWrapTemplate::Size, InterfaceWrapTemplate::Construct, InterfaceWrapTemplate::Destruct); } break; } diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index e675b15bb..6525b79dd 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -2018,26 +2018,30 @@ LastCrashedWindow::LastCrashedWindow() { if (_sendingState != SendingNoReport) { - qint64 dumpSize = 0; - QString possibleDump = getReportField(qstr("minidump"), qstr("Minidump:")); - if (!possibleDump.isEmpty()) { - if (!possibleDump.startsWith('/')) { - possibleDump = cWorkingDir() + qsl("tdumps/") + possibleDump; - } + qint64 dumpsize = 0; + QString dumpspath = cWorkingDir() + qsl("tdata/dumps"); +#if defined Q_OS_MAC && !defined MAC_USE_BREAKPAD + dumpspath += qsl("/completed"); +#endif + QString possibleDump = getReportField(qstr("minidump"), qstr("Minidump:")); + if (!possibleDump.isEmpty()) { + if (!possibleDump.startsWith('/')) { + possibleDump = dumpspath + '/' + possibleDump; + } if (!possibleDump.endsWith('.dmp')) { possibleDump += qsl(".dmp"); } - QFileInfo possibleInfo(possibleDump); - if (possibleInfo.exists()) { - _minidumpName = possibleInfo.fileName(); - _minidumpFull = possibleInfo.absoluteFilePath(); - dumpSize = possibleInfo.size(); - } - } - if (_minidumpFull.isEmpty()) { - QString maxDump, maxDumpFull; + QFileInfo possibleInfo(possibleDump); + if (possibleInfo.exists()) { + _minidumpName = possibleInfo.fileName(); + _minidumpFull = possibleInfo.absoluteFilePath(); + dumpsize = possibleInfo.size(); + } + } + if (_minidumpFull.isEmpty()) { + QString maxDump, maxDumpFull; QDateTime maxDumpModified, workingModified = QFileInfo(cWorkingDir() + qsl("tdata/working")).lastModified(); - QFileInfoList list = QDir(cWorkingDir() + qsl("tdumps")).entryInfoList(); + QFileInfoList list = QDir(dumpspath).entryInfoList(); for (int32 i = 0, l = list.size(); i < l; ++i) { QString name = list.at(i).fileName(); if (name.endsWith(qstr(".dmp"))) { @@ -2046,7 +2050,7 @@ LastCrashedWindow::LastCrashedWindow() maxDump = name; maxDumpModified = modified; maxDumpFull = list.at(i).absoluteFilePath(); - dumpSize = list.at(i).size(); + dumpsize = list.at(i).size(); } } } @@ -2056,7 +2060,7 @@ LastCrashedWindow::LastCrashedWindow() } } - _minidump.setText(qsl("+ %1 (%2 KB)").arg(_minidumpName).arg(dumpSize / 1024)); + _minidump.setText(qsl("+ %1 (%2 KB)").arg(_minidumpName).arg(dumpsize / 1024)); } _networkSettings.setText(qsl("NETWORK SETTINGS")); @@ -2303,6 +2307,7 @@ void LastCrashedWindow::onCheckingFinished() { return; } else if (result != "Report") { _pleaseSendReport.setText(qsl("This report is about some old version of Telegram Desktop.")); + _pleaseSendReport.setText(qsl("Response: %1").arg(QString::fromLatin1(result))); _sendingState = SendingTooOld; updateControls(); return; diff --git a/Telegram/Telegram.xcodeproj/project.pbxproj b/Telegram/Telegram.xcodeproj/project.pbxproj index ea1644d6d..70a484b14 100644 --- a/Telegram/Telegram.xcodeproj/project.pbxproj +++ b/Telegram/Telegram.xcodeproj/project.pbxproj @@ -45,25 +45,7 @@ 07129D6A1C16D230002DC495 /* mtpAuthKey.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 07129D691C16D230002DC495 /* mtpAuthKey.cpp */; }; 07129D6E1C16D245002DC495 /* facades.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 07129D6C1C16D245002DC495 /* facades.cpp */; }; 071AD8D21C5E8E6D008C9E90 /* zip.c in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8D11C5E8E6D008C9E90 /* zip.c */; }; - 071AD8D71C5E8F35008C9E90 /* breakpad_nlist_64.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8D31C5E8F35008C9E90 /* breakpad_nlist_64.cc */; }; - 071AD8D81C5E8F35008C9E90 /* dynamic_images.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8D41C5E8F35008C9E90 /* dynamic_images.cc */; }; - 071AD8D91C5E8F35008C9E90 /* exception_handler.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8D51C5E8F35008C9E90 /* exception_handler.cc */; }; - 071AD8DA1C5E8F35008C9E90 /* minidump_generator.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8D61C5E8F35008C9E90 /* minidump_generator.cc */; }; - 071AD8DE1C5E912C008C9E90 /* crash_generation_client.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8DC1C5E912C008C9E90 /* crash_generation_client.cc */; }; - 071AD8DF1C5E912C008C9E90 /* crash_generation_server.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8DD1C5E912C008C9E90 /* crash_generation_server.cc */; }; - 071AD8E21C5E9143008C9E90 /* minidump_file_writer.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8E11C5E9143008C9E90 /* minidump_file_writer.cc */; }; - 071AD8E61C5E9196008C9E90 /* convert_UTF.c in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8E31C5E9196008C9E90 /* convert_UTF.c */; }; - 071AD8E71C5E9196008C9E90 /* md5.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8E41C5E9196008C9E90 /* md5.cc */; }; - 071AD8E81C5E9196008C9E90 /* string_conversion.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8E51C5E9196008C9E90 /* string_conversion.cc */; }; - 071AD8F01C5E91E3008C9E90 /* bootstrap_compat.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8E91C5E91E3008C9E90 /* bootstrap_compat.cc */; }; - 071AD8F11C5E91E3008C9E90 /* file_id.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8EA1C5E91E3008C9E90 /* file_id.cc */; }; - 071AD8F21C5E91E3008C9E90 /* MachIPC.mm in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8EB1C5E91E3008C9E90 /* MachIPC.mm */; }; - 071AD8F31C5E91E3008C9E90 /* macho_id.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8EC1C5E91E3008C9E90 /* macho_id.cc */; }; - 071AD8F41C5E91E3008C9E90 /* macho_utilities.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8ED1C5E91E3008C9E90 /* macho_utilities.cc */; }; - 071AD8F51C5E91E3008C9E90 /* macho_walker.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8EE1C5E91E3008C9E90 /* macho_walker.cc */; }; - 071AD8F61C5E91E3008C9E90 /* string_utilities.cc in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8EF1C5E91E3008C9E90 /* string_utilities.cc */; }; 071AD8F81C5E99D6008C9E90 /* ioapi.c in Compile Sources */ = {isa = PBXBuildFile; fileRef = 071AD8F71C5E99D6008C9E90 /* ioapi.c */; }; - 071AD90A1C5EA2A5008C9E90 /* Breakpad.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 071AD9091C5EA2A5008C9E90 /* Breakpad.framework */; }; 0732E4A9199E262300D50FE7 /* overviewwidget.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 0732E4A7199E262300D50FE7 /* overviewwidget.cpp */; }; 0732E4AC199E268A00D50FE7 /* moc_overviewwidget.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 0732E4AB199E268A00D50FE7 /* moc_overviewwidget.cpp */; }; 074756191A1372C600CA07F7 /* moc_types.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 074756181A1372C600CA07F7 /* moc_types.cpp */; }; @@ -299,67 +281,7 @@ 071AD86B1C5E8536008C9E90 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = ThirdParty/minizip/crypt.h; sourceTree = SOURCE_ROOT; }; 071AD86C1C5E8536008C9E90 /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = ThirdParty/minizip/ioapi.h; sourceTree = SOURCE_ROOT; }; 071AD86E1C5E8536008C9E90 /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zip.h; path = ThirdParty/minizip/zip.h; sourceTree = SOURCE_ROOT; }; - 071AD8751C5E85A0008C9E90 /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = exception_handler.h; path = ThirdParty/breakpad/client/mac/handler/exception_handler.h; sourceTree = SOURCE_ROOT; }; - 071AD8791C5E8672008C9E90 /* crash_generation_client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crash_generation_client.h; sourceTree = ""; }; - 071AD87B1C5E8688008C9E90 /* ucontext_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ucontext_compat.h; path = ThirdParty/breakpad/client/mac/handler/ucontext_compat.h; sourceTree = SOURCE_ROOT; }; - 071AD87F1C5E87AA008C9E90 /* scoped_ptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scoped_ptr.h; path = ThirdParty/breakpad/common/scoped_ptr.h; sourceTree = SOURCE_ROOT; }; - 071AD8811C5E87C2008C9E90 /* MachIPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MachIPC.h; path = ThirdParty/breakpad/common/mac/MachIPC.h; sourceTree = SOURCE_ROOT; }; - 071AD8851C5E8853008C9E90 /* bootstrap_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_compat.h; path = ThirdParty/breakpad/common/mac/bootstrap_compat.h; sourceTree = SOURCE_ROOT; }; - 071AD8881C5E8886008C9E90 /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_generator.h; path = ThirdParty/breakpad/client/mac/handler/minidump_generator.h; sourceTree = SOURCE_ROOT; }; - 071AD88B1C5E88AA008C9E90 /* crash_generation_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crash_generation_server.h; sourceTree = ""; }; - 071AD88D1C5E88CD008C9E90 /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "minidump_file_writer-inl.h"; path = "ThirdParty/breakpad/client/minidump_file_writer-inl.h"; sourceTree = SOURCE_ROOT; }; - 071AD88F1C5E88CD008C9E90 /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_file_writer.h; path = ThirdParty/breakpad/client/minidump_file_writer.h; sourceTree = SOURCE_ROOT; }; - 071AD8911C5E88EA008C9E90 /* client_info.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = client_info.h; sourceTree = ""; }; - 071AD8921C5E8994008C9E90 /* memory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memory.h; path = ThirdParty/breakpad/common/memory.h; sourceTree = SOURCE_ROOT; }; - 071AD8951C5E89D1008C9E90 /* breakpad_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_types.h; path = ThirdParty/breakpad/google_breakpad/common/breakpad_types.h; sourceTree = SOURCE_ROOT; }; - 071AD8961C5E89D1008C9E90 /* minidump_cpu_amd64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_amd64.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_amd64.h; sourceTree = SOURCE_ROOT; }; - 071AD8971C5E89D1008C9E90 /* minidump_cpu_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_arm.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_arm.h; sourceTree = SOURCE_ROOT; }; - 071AD8981C5E89D1008C9E90 /* minidump_cpu_arm64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_arm64.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_arm64.h; sourceTree = SOURCE_ROOT; }; - 071AD8991C5E89D1008C9E90 /* minidump_cpu_mips.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_mips.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_mips.h; sourceTree = SOURCE_ROOT; }; - 071AD89A1C5E89D1008C9E90 /* minidump_cpu_ppc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_ppc.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_ppc.h; sourceTree = SOURCE_ROOT; }; - 071AD89B1C5E89D1008C9E90 /* minidump_cpu_ppc64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_ppc64.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_ppc64.h; sourceTree = SOURCE_ROOT; }; - 071AD89C1C5E89D1008C9E90 /* minidump_cpu_sparc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_sparc.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_sparc.h; sourceTree = SOURCE_ROOT; }; - 071AD89D1C5E89D1008C9E90 /* minidump_cpu_x86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_cpu_x86.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_cpu_x86.h; sourceTree = SOURCE_ROOT; }; - 071AD89E1C5E89D1008C9E90 /* minidump_exception_linux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_exception_linux.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_exception_linux.h; sourceTree = SOURCE_ROOT; }; - 071AD89F1C5E89D1008C9E90 /* minidump_exception_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_exception_mac.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_exception_mac.h; sourceTree = SOURCE_ROOT; }; - 071AD8A01C5E89D1008C9E90 /* minidump_exception_ps3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_exception_ps3.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_exception_ps3.h; sourceTree = SOURCE_ROOT; }; - 071AD8A11C5E89D1008C9E90 /* minidump_exception_solaris.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_exception_solaris.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_exception_solaris.h; sourceTree = SOURCE_ROOT; }; - 071AD8A21C5E89D1008C9E90 /* minidump_exception_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_exception_win32.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_exception_win32.h; sourceTree = SOURCE_ROOT; }; - 071AD8A31C5E89D1008C9E90 /* minidump_format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_format.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_format.h; sourceTree = SOURCE_ROOT; }; - 071AD8A41C5E89D1008C9E90 /* minidump_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_size.h; path = ThirdParty/breakpad/google_breakpad/common/minidump_size.h; sourceTree = SOURCE_ROOT; }; - 071AD8A61C5E8A30008C9E90 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ThirdParty/breakpad/common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; }; - 071AD8A91C5E8A7B008C9E90 /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_images.h; path = ThirdParty/breakpad/client/mac/handler/dynamic_images.h; sourceTree = SOURCE_ROOT; }; - 071AD8AB1C5E8A99008C9E90 /* mach_vm_compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = mach_vm_compat.h; path = ThirdParty/breakpad/client/mac/handler/mach_vm_compat.h; sourceTree = SOURCE_ROOT; }; - 071AD8AD1C5E8B07008C9E90 /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_nlist_64.h; path = ThirdParty/breakpad/client/mac/handler/breakpad_nlist_64.h; sourceTree = SOURCE_ROOT; }; - 071AD8AF1C5E8B16008C9E90 /* byteswap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = byteswap.h; path = ThirdParty/breakpad/common/mac/byteswap.h; sourceTree = SOURCE_ROOT; }; - 071AD8B11C5E8B23008C9E90 /* linux_libc_support.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = linux_libc_support.h; path = ThirdParty/breakpad/common/linux/linux_libc_support.h; sourceTree = SOURCE_ROOT; }; - 071AD8B31C5E8B43008C9E90 /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_conversion.h; path = ThirdParty/breakpad/common/string_conversion.h; sourceTree = SOURCE_ROOT; }; - 071AD8B61C5E8B5C008C9E90 /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ThirdParty/breakpad/common/mac/file_id.h; sourceTree = SOURCE_ROOT; }; - 071AD8B81C5E8B81008C9E90 /* scoped_task_suspend-inl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "scoped_task_suspend-inl.h"; path = "ThirdParty/breakpad/common/mac/scoped_task_suspend-inl.h"; sourceTree = SOURCE_ROOT; }; - 071AD8BA1C5E8B9B008C9E90 /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ThirdParty/breakpad/common/mac/macho_id.h; sourceTree = SOURCE_ROOT; }; - 071AD8BD1C5E8BB0008C9E90 /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_UTF.h; path = ThirdParty/breakpad/common/convert_UTF.h; sourceTree = SOURCE_ROOT; }; - 071AD8BF1C5E8BC8008C9E90 /* using_std_string.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = using_std_string.h; path = ThirdParty/breakpad/common/using_std_string.h; sourceTree = SOURCE_ROOT; }; - 071AD8C11C5E8BE5008C9E90 /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ThirdParty/breakpad/common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; }; - 071AD8C41C5E8BFD008C9E90 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ThirdParty/breakpad/common/md5.h; sourceTree = SOURCE_ROOT; }; - 071AD8C71C5E8C14008C9E90 /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_utilities.h; path = ThirdParty/breakpad/common/mac/string_utilities.h; sourceTree = SOURCE_ROOT; }; 071AD8D11C5E8E6D008C9E90 /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zip.c; path = ThirdParty/minizip/zip.c; sourceTree = SOURCE_ROOT; }; - 071AD8D31C5E8F35008C9E90 /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = breakpad_nlist_64.cc; path = ThirdParty/breakpad/client/mac/handler/breakpad_nlist_64.cc; sourceTree = SOURCE_ROOT; }; - 071AD8D41C5E8F35008C9E90 /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dynamic_images.cc; path = ThirdParty/breakpad/client/mac/handler/dynamic_images.cc; sourceTree = SOURCE_ROOT; }; - 071AD8D51C5E8F35008C9E90 /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exception_handler.cc; path = ThirdParty/breakpad/client/mac/handler/exception_handler.cc; sourceTree = SOURCE_ROOT; }; - 071AD8D61C5E8F35008C9E90 /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator.cc; path = ThirdParty/breakpad/client/mac/handler/minidump_generator.cc; sourceTree = SOURCE_ROOT; }; - 071AD8DC1C5E912C008C9E90 /* crash_generation_client.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crash_generation_client.cc; sourceTree = ""; }; - 071AD8DD1C5E912C008C9E90 /* crash_generation_server.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crash_generation_server.cc; sourceTree = ""; }; - 071AD8E11C5E9143008C9E90 /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer.cc; path = ThirdParty/breakpad/client/minidump_file_writer.cc; sourceTree = SOURCE_ROOT; }; - 071AD8E31C5E9196008C9E90 /* convert_UTF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = convert_UTF.c; path = ThirdParty/breakpad/common/convert_UTF.c; sourceTree = SOURCE_ROOT; }; - 071AD8E41C5E9196008C9E90 /* md5.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = md5.cc; path = ThirdParty/breakpad/common/md5.cc; sourceTree = SOURCE_ROOT; }; - 071AD8E51C5E9196008C9E90 /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_conversion.cc; path = ThirdParty/breakpad/common/string_conversion.cc; sourceTree = SOURCE_ROOT; }; - 071AD8E91C5E91E3008C9E90 /* bootstrap_compat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap_compat.cc; path = ThirdParty/breakpad/common/mac/bootstrap_compat.cc; sourceTree = SOURCE_ROOT; }; - 071AD8EA1C5E91E3008C9E90 /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ThirdParty/breakpad/common/mac/file_id.cc; sourceTree = SOURCE_ROOT; }; - 071AD8EB1C5E91E3008C9E90 /* MachIPC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MachIPC.mm; path = ThirdParty/breakpad/common/mac/MachIPC.mm; sourceTree = SOURCE_ROOT; }; - 071AD8EC1C5E91E3008C9E90 /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ThirdParty/breakpad/common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; }; - 071AD8ED1C5E91E3008C9E90 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ThirdParty/breakpad/common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; }; - 071AD8EE1C5E91E3008C9E90 /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ThirdParty/breakpad/common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; }; - 071AD8EF1C5E91E3008C9E90 /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_utilities.cc; path = ThirdParty/breakpad/common/mac/string_utilities.cc; sourceTree = SOURCE_ROOT; }; 071AD8F71C5E99D6008C9E90 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = ThirdParty/minizip/ioapi.c; sourceTree = SOURCE_ROOT; }; 071AD9091C5EA2A5008C9E90 /* Breakpad.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Breakpad.framework; path = Users/antanubis/TBuild/Libraries/breakpad/Breakpad.framework; sourceTree = ""; }; 071AD90B1C5EA37D008C9E90 /* Breakpad.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Breakpad.framework; path = "Users/antanubis/Library/Developer/Xcode/DerivedData/Breakpad-ffxagkgqghkohhawycvgjexmnjhs/Build/Products/Debug/Breakpad.framework"; sourceTree = ""; }; @@ -787,7 +709,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 071AD90A1C5EA2A5008C9E90 /* Breakpad.framework in Link Binary With Libraries */, 0752F8751C2C89F40026D0BC /* VideoToolbox.framework in Link Binary With Libraries */, 0752F8731C2C89220026D0BC /* VideoDecodeAcceleration.framework in Link Binary With Libraries */, 07CAACD81AEA64F00058E508 /* AudioUnit.framework in Link Binary With Libraries */, @@ -846,7 +767,6 @@ 071AD8691C5E8504008C9E90 /* ThirdParty */ = { isa = PBXGroup; children = ( - 071AD8701C5E8546008C9E90 /* breakpad */, 071AD86A1C5E8522008C9E90 /* minizip */, ); name = ThirdParty; @@ -864,146 +784,6 @@ name = minizip; sourceTree = ""; }; - 071AD8701C5E8546008C9E90 /* breakpad */ = { - isa = PBXGroup; - children = ( - 071AD8931C5E89BE008C9E90 /* google_breakpad */, - 071AD87E1C5E8792008C9E90 /* common */, - 071AD8711C5E8569008C9E90 /* client */, - ); - name = breakpad; - sourceTree = ""; - }; - 071AD8711C5E8569008C9E90 /* client */ = { - isa = PBXGroup; - children = ( - 071AD88D1C5E88CD008C9E90 /* minidump_file_writer-inl.h */, - 071AD88F1C5E88CD008C9E90 /* minidump_file_writer.h */, - 071AD8E11C5E9143008C9E90 /* minidump_file_writer.cc */, - 071AD8721C5E8575008C9E90 /* mac */, - ); - name = client; - sourceTree = ""; - }; - 071AD8721C5E8575008C9E90 /* mac */ = { - isa = PBXGroup; - children = ( - 071AD8771C5E8672008C9E90 /* crash_generation */, - 071AD8731C5E8579008C9E90 /* handler */, - ); - name = mac; - sourceTree = ""; - }; - 071AD8731C5E8579008C9E90 /* handler */ = { - isa = PBXGroup; - children = ( - 071AD8D31C5E8F35008C9E90 /* breakpad_nlist_64.cc */, - 071AD8AD1C5E8B07008C9E90 /* breakpad_nlist_64.h */, - 071AD8D41C5E8F35008C9E90 /* dynamic_images.cc */, - 071AD8A91C5E8A7B008C9E90 /* dynamic_images.h */, - 071AD8751C5E85A0008C9E90 /* exception_handler.h */, - 071AD8D51C5E8F35008C9E90 /* exception_handler.cc */, - 071AD8AB1C5E8A99008C9E90 /* mach_vm_compat.h */, - 071AD8881C5E8886008C9E90 /* minidump_generator.h */, - 071AD8D61C5E8F35008C9E90 /* minidump_generator.cc */, - 071AD87B1C5E8688008C9E90 /* ucontext_compat.h */, - ); - name = handler; - sourceTree = ""; - }; - 071AD8771C5E8672008C9E90 /* crash_generation */ = { - isa = PBXGroup; - children = ( - 071AD8911C5E88EA008C9E90 /* client_info.h */, - 071AD8791C5E8672008C9E90 /* crash_generation_client.h */, - 071AD8DC1C5E912C008C9E90 /* crash_generation_client.cc */, - 071AD88B1C5E88AA008C9E90 /* crash_generation_server.h */, - 071AD8DD1C5E912C008C9E90 /* crash_generation_server.cc */, - ); - name = crash_generation; - path = ThirdParty/breakpad/client/mac/crash_generation; - sourceTree = SOURCE_ROOT; - }; - 071AD87E1C5E8792008C9E90 /* common */ = { - isa = PBXGroup; - children = ( - 071AD8B01C5E8B1B008C9E90 /* linux */, - 071AD8801C5E87B5008C9E90 /* mac */, - 071AD8BD1C5E8BB0008C9E90 /* convert_UTF.h */, - 071AD8E31C5E9196008C9E90 /* convert_UTF.c */, - 071AD8C41C5E8BFD008C9E90 /* md5.h */, - 071AD8E41C5E9196008C9E90 /* md5.cc */, - 071AD8921C5E8994008C9E90 /* memory.h */, - 071AD87F1C5E87AA008C9E90 /* scoped_ptr.h */, - 071AD8B31C5E8B43008C9E90 /* string_conversion.h */, - 071AD8E51C5E9196008C9E90 /* string_conversion.cc */, - 071AD8BF1C5E8BC8008C9E90 /* using_std_string.h */, - ); - name = common; - sourceTree = ""; - }; - 071AD8801C5E87B5008C9E90 /* mac */ = { - isa = PBXGroup; - children = ( - 071AD8851C5E8853008C9E90 /* bootstrap_compat.h */, - 071AD8E91C5E91E3008C9E90 /* bootstrap_compat.cc */, - 071AD8AF1C5E8B16008C9E90 /* byteswap.h */, - 071AD8B61C5E8B5C008C9E90 /* file_id.h */, - 071AD8EA1C5E91E3008C9E90 /* file_id.cc */, - 071AD8811C5E87C2008C9E90 /* MachIPC.h */, - 071AD8EB1C5E91E3008C9E90 /* MachIPC.mm */, - 071AD8BA1C5E8B9B008C9E90 /* macho_id.h */, - 071AD8EC1C5E91E3008C9E90 /* macho_id.cc */, - 071AD8A61C5E8A30008C9E90 /* macho_utilities.h */, - 071AD8ED1C5E91E3008C9E90 /* macho_utilities.cc */, - 071AD8C11C5E8BE5008C9E90 /* macho_walker.h */, - 071AD8EE1C5E91E3008C9E90 /* macho_walker.cc */, - 071AD8B81C5E8B81008C9E90 /* scoped_task_suspend-inl.h */, - 071AD8C71C5E8C14008C9E90 /* string_utilities.h */, - 071AD8EF1C5E91E3008C9E90 /* string_utilities.cc */, - ); - name = mac; - sourceTree = ""; - }; - 071AD8931C5E89BE008C9E90 /* google_breakpad */ = { - isa = PBXGroup; - children = ( - 071AD8941C5E89C4008C9E90 /* common */, - ); - name = google_breakpad; - sourceTree = ""; - }; - 071AD8941C5E89C4008C9E90 /* common */ = { - isa = PBXGroup; - children = ( - 071AD8951C5E89D1008C9E90 /* breakpad_types.h */, - 071AD8961C5E89D1008C9E90 /* minidump_cpu_amd64.h */, - 071AD8971C5E89D1008C9E90 /* minidump_cpu_arm.h */, - 071AD8981C5E89D1008C9E90 /* minidump_cpu_arm64.h */, - 071AD8991C5E89D1008C9E90 /* minidump_cpu_mips.h */, - 071AD89A1C5E89D1008C9E90 /* minidump_cpu_ppc.h */, - 071AD89B1C5E89D1008C9E90 /* minidump_cpu_ppc64.h */, - 071AD89C1C5E89D1008C9E90 /* minidump_cpu_sparc.h */, - 071AD89D1C5E89D1008C9E90 /* minidump_cpu_x86.h */, - 071AD89E1C5E89D1008C9E90 /* minidump_exception_linux.h */, - 071AD89F1C5E89D1008C9E90 /* minidump_exception_mac.h */, - 071AD8A01C5E89D1008C9E90 /* minidump_exception_ps3.h */, - 071AD8A11C5E89D1008C9E90 /* minidump_exception_solaris.h */, - 071AD8A21C5E89D1008C9E90 /* minidump_exception_win32.h */, - 071AD8A31C5E89D1008C9E90 /* minidump_format.h */, - 071AD8A41C5E89D1008C9E90 /* minidump_size.h */, - ); - name = common; - sourceTree = ""; - }; - 071AD8B01C5E8B1B008C9E90 /* linux */ = { - isa = PBXGroup; - children = ( - 071AD8B11C5E8B23008C9E90 /* linux_libc_support.h */, - ); - name = linux; - sourceTree = ""; - }; 074968CB1A44D0B800394F46 /* langs */ = { isa = PBXGroup; children = ( @@ -1578,6 +1358,7 @@ 07C3AF25194336160016CFF1 /* Resources */, 07489B6B1A28949600348CD9 /* Build Updater */, 0746AC8F1A28D4140040AE26 /* Clean Updater */, + 071AD90E1C60AA74008C9E90 /* Copy crashpad_handler */, 07489B6D1A28972E00348CD9 /* Sign Application */, ); buildRules = ( @@ -1659,6 +1440,20 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 071AD90E1C60AA74008C9E90 /* Copy crashpad_handler */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy crashpad_handler"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "mkdir -p \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Contents/Helpers\" && cp \"./../../Libraries/crashpad/crashpad/out/Release/crashpad_handler\" \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Contents/Helpers/\""; + }; 0746AC8F1A28D4140040AE26 /* Clean Updater */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1774,7 +1569,6 @@ 0732E4A9199E262300D50FE7 /* overviewwidget.cpp in Compile Sources */, 1DF53374E3B6A31661548D08 /* historywidget.cpp in Compile Sources */, 078A2FCD1A811CA600CCC7A0 /* backgroundbox.cpp in Compile Sources */, - 071AD8D81C5E8F35008C9E90 /* dynamic_images.cc in Compile Sources */, 37A3C6C782A0E4BC7B09536B /* langloaderplain.cpp in Compile Sources */, 19A66ECD6EE2F8356F27D32D /* layerwidget.cpp in Compile Sources */, 89ADB41E48A3B5E24ABB626C /* profilewidget.cpp in Compile Sources */, @@ -1788,28 +1582,23 @@ 4078D5D614EB3ECF7F1848C7 /* types.cpp in Compile Sources */, 68FFEB7CA30BF0149161B809 /* window.cpp in Compile Sources */, 0CB7DE9A54CC9BF86FB7B5CA /* mtp.cpp in Compile Sources */, - 071AD8E71C5E9196008C9E90 /* md5.cc in Compile Sources */, DF259E9677CC63AF8754032B /* mtpConnection.cpp in Compile Sources */, 074FCB9119D36E60004C6EB2 /* moc_popupmenu.cpp in Compile Sources */, B6346B66B0A2228A91D8A5D9 /* mtpDC.cpp in Compile Sources */, 0755AEDF1AD12A80004D738A /* moc_sessionsbox.cpp in Compile Sources */, 07129D6E1C16D245002DC495 /* facades.cpp in Compile Sources */, B8CA3E1E11A7E0E7DF9E1CDE /* mtpFileLoader.cpp in Compile Sources */, - 071AD8DF1C5E912C008C9E90 /* crash_generation_server.cc in Compile Sources */, 0755AEDD1AD12A80004D738A /* moc_abstractbox.cpp in Compile Sources */, 99F0A9B2AFE5ABDCBFC04510 /* mtpRPC.cpp in Compile Sources */, A297B1E3CE33CC501DFEDB6E /* mtpSession.cpp in Compile Sources */, D1FC601FC2F9F3E33F3A14E9 /* animation.cpp in Compile Sources */, 8F65F0D95B1F0CEB859F2FB3 /* boxshadow.cpp in Compile Sources */, - 071AD8F41C5E91E3008C9E90 /* macho_utilities.cc in Compile Sources */, D7EF8F129FCCE9AB3F3F081F /* button.cpp in Compile Sources */, 07DC42A01B5EA15300B6B888 /* numbers.cpp in Compile Sources */, C03447C9A7D9FF73463B8BB5 /* countryinput.cpp in Compile Sources */, 07BE850F1A2093C9008ACB9F /* localstorage.cpp in Compile Sources */, CDB0266A8B7CB20A95266BCD /* emoji_config.cpp in Compile Sources */, - 071AD8DA1C5E8F35008C9E90 /* minidump_generator.cc in Compile Sources */, 0732E4AC199E268A00D50FE7 /* moc_overviewwidget.cpp in Compile Sources */, - 071AD8F01C5E91E3008C9E90 /* bootstrap_compat.cc in Compile Sources */, 7C2B2DEE467A4C4679F1C3C9 /* filedialog.cpp in Compile Sources */, 832C50BFD7D09AF042A51D4F /* flatbutton.cpp in Compile Sources */, B91D13BCC3963CB9C12D24A4 /* flatcheckbox.cpp in Compile Sources */, @@ -1818,7 +1607,6 @@ 03270F718426CFE84729079E /* flattextarea.cpp in Compile Sources */, E3D7A5CA24541D5DB69D6606 /* images.cpp in Compile Sources */, ADE99904299B99EB6135E8D9 /* scrollarea.cpp in Compile Sources */, - 071AD8F11C5E91E3008C9E90 /* file_id.cc in Compile Sources */, 07129D6A1C16D230002DC495 /* mtpAuthKey.cpp in Compile Sources */, 90085DF442550A0845D5AF37 /* style_core.cpp in Compile Sources */, 074FCB8E19D36851004C6EB2 /* popupmenu.cpp in Compile Sources */, @@ -1838,7 +1626,6 @@ 07DB67511AD07CB800A51329 /* intropwdcheck.cpp in Compile Sources */, 3ABE4F9B2264F770D944106D /* emojibox.cpp in Compile Sources */, 07D703BB19B88FB900C4EED2 /* moc_audio.cpp in Compile Sources */, - 071AD8E81C5E9196008C9E90 /* string_conversion.cc in Compile Sources */, 77B998AC22A13EF3DDEE07AC /* photocropbox.cpp in Compile Sources */, F278C423357CA99797EA30AB /* photosendbox.cpp in Compile Sources */, E8D95529CED88F18818C9A8B /* intro.cpp in Compile Sources */, @@ -1862,27 +1649,20 @@ A24E4B5B683764E07683ECEC /* moc_mainwidget.cpp in Compile Sources */, 0710CA051B0B9404001B4272 /* moc_stickersetbox.cpp in Compile Sources */, 07DE92A71AA4925B00A18F6F /* autolockbox.cpp in Compile Sources */, - 071AD8F51C5E91E3008C9E90 /* macho_walker.cc in Compile Sources */, 07D8509919F8320900623D75 /* usernamebox.cpp in Compile Sources */, - 071AD8F21C5E91E3008C9E90 /* MachIPC.mm in Compile Sources */, - 071AD8DE1C5E912C008C9E90 /* crash_generation_client.cc in Compile Sources */, A469EC9C4C367E0B773A9BB7 /* moc_settingswidget.cpp in Compile Sources */, FD2FE0C564A7389A2E609EC7 /* moc_sysbuttons.cpp in Compile Sources */, E97B3CFAB59B49BACFFC5F7C /* moc_title.cpp in Compile Sources */, 07D8510819F8340A00623D75 /* moc_usernamebox.cpp in Compile Sources */, 9A0D5DDC7816FC2538EB6A96 /* moc_window.cpp in Compile Sources */, - 071AD8D91C5E8F35008C9E90 /* exception_handler.cc in Compile Sources */, 06EABCC49D2EEE4076322BE7 /* moc_mtp.cpp in Compile Sources */, 0755AEDE1AD12A80004D738A /* moc_intropwdcheck.cpp in Compile Sources */, 07DE92AA1AA4928200A18F6F /* moc_autolockbox.cpp in Compile Sources */, 07B604351B46A20900CA29FE /* moc_playerwidget.cpp in Compile Sources */, 8F6F5D7F82036331E8C6DAE6 /* moc_mtpConnection.cpp in Compile Sources */, B780F9E21269259B90A1F32A /* moc_mtpDC.cpp in Compile Sources */, - 071AD8F31C5E91E3008C9E90 /* macho_id.cc in Compile Sources */, 07080BCF1A43588C00741A51 /* lang_auto.cpp in Compile Sources */, 07539B1D1A1416AF00083EFC /* moc_history.cpp in Compile Sources */, - 071AD8E61C5E9196008C9E90 /* convert_UTF.c in Compile Sources */, - 071AD8F61C5E91E3008C9E90 /* string_utilities.cc in Compile Sources */, 2A500B102B7CE80F3EB6E13E /* moc_mtpFileLoader.cpp in Compile Sources */, 07A6933519927B160099CB9F /* moc_mediaview.cpp in Compile Sources */, 07A69332199277BA0099CB9F /* mediaview.cpp in Compile Sources */, @@ -1894,7 +1674,6 @@ 07DE92A01AA4923300A18F6F /* passcodewidget.cpp in Compile Sources */, B0B88EFE444C0DE673389418 /* moc_flatbutton.cpp in Compile Sources */, 1BD711B4C358EA7D727BF358 /* moc_flatcheckbox.cpp in Compile Sources */, - 071AD8D71C5E8F35008C9E90 /* breakpad_nlist_64.cc in Compile Sources */, 565F748438E6CE0148C54AFE /* moc_flatinput.cpp in Compile Sources */, 8B71D1C7BB9DCEE6511219C2 /* moc_flatlabel.cpp in Compile Sources */, 0710C9FE1B0B9376001B4272 /* stickersetbox.cpp in Compile Sources */, @@ -1908,7 +1687,6 @@ 7062978F12EEA525893A5E6F /* moc_aboutbox.cpp in Compile Sources */, E8B28580819B882A5964561A /* moc_addcontactbox.cpp in Compile Sources */, 07B604321B46A0EC00CA29FE /* playerwidget.cpp in Compile Sources */, - 071AD8E21C5E9143008C9E90 /* minidump_file_writer.cc in Compile Sources */, D6874C00733283846ACA9AB2 /* moc_confirmbox.cpp in Compile Sources */, ED2557A57C6782721DC494AF /* moc_connectionbox.cpp in Compile Sources */, 5FC914F652D1B16FDA8F0634 /* moc_contactsbox.cpp in Compile Sources */, @@ -2009,6 +1787,8 @@ isa = XCBuildConfiguration; buildSettings = { CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_BOOL_CONVERSION = NO; CLANG_WARN_CONSTANT_CONVERSION = NO; CLANG_WARN_EMPTY_BODY = YES; @@ -2023,7 +1803,7 @@ DYLIB_COMPATIBILITY_VERSION = 0.9; DYLIB_CURRENT_VERSION = 0.9.19; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ./../../Libraries/breakpad; + FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_LINK_WITH_DYNAMIC_LIBRARIES = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -2058,6 +1838,8 @@ "/usr/local/Qt-5.5.1/mkspecs/macx-clang", ./ThirdParty/breakpad, ./ThirdParty/minizip, + ./../../Libraries/crashpad/crashpad, + ./../../Libraries/crashpad/crashpad/third_party/mini_chromium/mini_chromium, ); INFOPLIST_FILE = Telegram.plist; INSTALL_DIR = ./../Mac/Release/; @@ -2094,8 +1876,6 @@ OTHER_CPLUSPLUSFLAGS = ( "-pipe", "-g", - "-std=c++11", - "-stdlib=libc++", "-Wall", "-W", "-fPIE", @@ -2113,11 +1893,11 @@ ); OTHER_LDFLAGS = ( "-headerpad_max_install_names", - "-stdlib=libc++", "-L/usr/local/Qt-5.5.1/lib", "-L/usr/local/Qt-5.5.1/plugins/bearer", "-L/usr/local/Qt-5.5.1/plugins/platforms", "-lcups", + "-lbsm", "-L/usr/local/Qt-5.5.1/plugins/imageformats", /usr/local/lib/libz.a, "-lm", @@ -2131,7 +1911,10 @@ /usr/local/lib/libswresample.a, /usr/local/lib/libavutil.a, /usr/local/lib/libiconv.a, - "../../Libraries/openssl-xcode/libcrypto.a", + "./../../Libraries/openssl-xcode/libcrypto.a", + ./../../Libraries/crashpad/crashpad/out/Release/libbase.a, + ./../../Libraries/crashpad/crashpad/out/Release/libcrashpad_client.a, + ./../../Libraries/crashpad/crashpad/out/Release/libcrashpad_util.a, "-g", ); PRODUCT_NAME = Telegram; @@ -2145,6 +1928,8 @@ isa = XCBuildConfiguration; buildSettings = { CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_BOOL_CONVERSION = NO; CLANG_WARN_CONSTANT_CONVERSION = NO; CLANG_WARN_EMPTY_BODY = YES; @@ -2160,7 +1945,7 @@ DYLIB_CURRENT_VERSION = 0.9.19; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = ./../../Libraries/breakpad; + FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_LINK_WITH_DYNAMIC_LIBRARIES = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -2195,6 +1980,8 @@ "/usr/local/Qt-5.5.1/mkspecs/macx-clang", ./ThirdParty/breakpad, ./ThirdParty/minizip, + ./../../Libraries/crashpad/crashpad, + ./../../Libraries/crashpad/crashpad/third_party/mini_chromium/mini_chromium, ); INFOPLIST_FILE = Telegram.plist; INSTALL_DIR = ./../Mac/Debug/; @@ -2232,8 +2019,6 @@ OTHER_CPLUSPLUSFLAGS = ( "-pipe", "-g", - "-std=c++11", - "-stdlib=libc++", "-Wall", "-W", "-fPIE", @@ -2251,11 +2036,11 @@ ); OTHER_LDFLAGS = ( "-headerpad_max_install_names", - "-stdlib=libc++", "-L/usr/local/Qt-5.5.1/lib", "-L/usr/local/Qt-5.5.1/plugins/bearer", "-L/usr/local/Qt-5.5.1/plugins/platforms", "-lcups", + "-lbsm", "-L/usr/local/Qt-5.5.1/plugins/imageformats", /usr/local/lib/libz.a, "-lm", @@ -2269,7 +2054,10 @@ /usr/local/lib/libswresample.a, /usr/local/lib/libavutil.a, /usr/local/lib/libiconv.a, - "../../Libraries/openssl-xcode/libcrypto.a", + "./../../Libraries/openssl-xcode/libcrypto.a", + ./../../Libraries/crashpad/crashpad/out/Release/libbase.a, + ./../../Libraries/crashpad/crashpad/out/Release/libcrashpad_client.a, + ./../../Libraries/crashpad/crashpad/out/Release/libcrashpad_util.a, "-g", ); PRODUCT_NAME = Telegram; diff --git a/Telegram/_mini_chromium_patch.diff b/Telegram/_mini_chromium_patch.diff new file mode 100644 index 000000000..3dab62ec2 --- /dev/null +++ b/Telegram/_mini_chromium_patch.diff @@ -0,0 +1,52 @@ +diff --git a/base/mac/scoped_nsobject.h b/base/mac/scoped_nsobject.h +index 2e157a4..5a306a1 100644 +--- a/base/mac/scoped_nsobject.h ++++ b/base/mac/scoped_nsobject.h +@@ -11,6 +11,7 @@ + + #include "base/compiler_specific.h" + #include "base/mac/scoped_typeref.h" ++#include "base/template_util.h" + + namespace base { + +@@ -55,7 +56,7 @@ class scoped_nsobject : public scoped_nsprotocol { + public: + using scoped_nsprotocol::scoped_nsprotocol; + +- static_assert(std::is_same::value == false, ++ static_assert(is_same::value == false, + "Use ScopedNSAutoreleasePool instead"); + }; + +diff --git a/base/macros.h b/base/macros.h +index 5d96783..096704c 100644 +--- a/base/macros.h ++++ b/base/macros.h +@@ -42,8 +42,9 @@ char (&ArraySizeHelper(const T (&array)[N]))[N]; + + template + inline Dest bit_cast(const Source& source) { ++#if __cplusplus >= 201103L + static_assert(sizeof(Dest) == sizeof(Source), "sizes must be equal"); +- ++#endif + Dest dest; + memcpy(&dest, &source, sizeof(dest)); + return dest; +diff --git a/build/common.gypi b/build/common.gypi +index 1affc70..6e8f292 100644 +--- a/build/common.gypi ++++ b/build/common.gypi +@@ -66,6 +66,11 @@ + 'conditions': [ + ['clang!=0', { + 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11 ++ 'conditions': [ ++ ['mac_deployment_target=="10.8"', { ++ 'CLANG_CXX_LIBRARY': 'libc++', # force -stdlib=libc++ for 10.8 ++ }] ++ ], + + # Don't link in libarclite_macosx.a, see http://crbug.com/156530. + 'CLANG_LINK_OBJC_RUNTIME': 'NO', # -fno-objc-link-runtime diff --git a/XCODE.md b/XCODE.md index 96b94b667..00a0dfbd7 100644 --- a/XCODE.md +++ b/XCODE.md @@ -28,6 +28,20 @@ In your build Terminal run: to set minimal supported OS version to 10.8 for future console builds. +####zlib 1.2.8 + +http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip) + +Extract to **/Users/user/TBuild/Libraries** + +#####Building library + +In Terminal go to **/Users/user/TBuild/Libraries/zlib-1.2.8** and run: + + CFLAGS="-mmacosx-version-min=10.8" LDFLAGS="-mmacosx-version-min=10.8" ./configure + make + sudo make install + ####OpenSSL 1.0.1g #####Get openssl-xcode project file @@ -37,7 +51,7 @@ From https://github.com/telegramdesktop/openssl-xcode with git in Terminal: * go to **/Users/user/TBuild/Libraries * run: - git clone https://github.com/telegramdesktop/openssl-xcode.git + git clone https://github.com/telegramdesktop/openssl-xcode.git or: diff --git a/XCODEold.md b/XCODEold.md index 8decf2b10..00d2e3e37 100644 --- a/XCODEold.md +++ b/XCODEold.md @@ -22,6 +22,20 @@ In your build Terminal run to set minimal supported OS version to 10.6 for future console builds. +####zlib 1.2.8 + +http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip) + +Extract to **/Users/user/TBuild/Libraries** + +#####Building library + +In Terminal go to **/Users/user/TBuild/Libraries/zlib-1.2.8** and run: + + prefix=/usr/local/zlib_old CFLAGS="-mmacosx-version-min=10.6" LDFLAGS="-mmacosx-version-min=10.6" ./configure + make + sudo make install + ####OpenSSL 1.0.1g Get sources from https://github.com/telegramdesktop/openssl-xcode, by git – in Terminal go to **/Users/user/TBuild/Libraries** and run @@ -85,7 +99,7 @@ to have **/Users/user/TBuild/Libraries/openal-soft/CMakeLists.txt** In Terminal go to **/Users/user/TBuild/Libraries/openal-soft/build** and there run - cmake -D LIBTYPE:STRING=STATIC -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.6 .. + cmake -D LIBTYPE:STRING=STATIC -D CMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.6 -D CMAKE_INSTALL_PREFIX:STRING=/usr/local/openal_old .. make sudo make install