mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-03-21 18:57:48 +00:00
Version for OS X 10.6-10.7 build from GYP is ready, not tested yet.
This commit is contained in:
parent
b821978a36
commit
50616cc267
@ -21,9 +21,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
||||
#include "stdafx.h"
|
||||
#include "app.h"
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifdef OS_MAC_OLD
|
||||
#include <libexif/exif-data.h>
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
|
||||
#include "styles/style_overview.h"
|
||||
#include "styles/style_mediaview.h"
|
||||
@ -2395,9 +2395,9 @@ namespace {
|
||||
}
|
||||
{
|
||||
QImageReader reader(&buffer, *format);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifndef OS_MAC_OLD
|
||||
reader.setAutoTransform(true);
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
if (animated) *animated = reader.supportsAnimation() && reader.imageCount() > 1;
|
||||
QByteArray fmt = reader.format();
|
||||
if (!fmt.isEmpty()) *format = fmt;
|
||||
@ -2410,7 +2410,7 @@ namespace {
|
||||
buffer.seek(0);
|
||||
QString fmt = QString::fromUtf8(*format).toLower();
|
||||
if (fmt == "jpg" || fmt == "jpeg") {
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifdef OS_MAC_OLD
|
||||
ExifData *exifData = exif_data_new_from_data((const uchar*)(data.constData()), data.size());
|
||||
if (exifData) {
|
||||
ExifByteOrder byteOrder = exif_data_get_byte_order(exifData);
|
||||
@ -2431,7 +2431,7 @@ namespace {
|
||||
}
|
||||
exif_data_free(exifData);
|
||||
}
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
} else if (opaque && result.hasAlphaChannel()) {
|
||||
QImage solid(result.width(), result.height(), QImage::Format_ARGB32_Premultiplied);
|
||||
solid.fill(st::white->c);
|
||||
|
@ -664,7 +664,7 @@ bool Generator::writeIconValues() {
|
||||
if (maskData.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
source_->stream() << "const uchar iconMask" << i.value() << "Data[] = " << stringToBinaryArray(maskData.toStdString()) << ";\n";
|
||||
source_->stream() << "const uchar iconMask" << i.value() << "Data[] = " << stringToBinaryArray(std::string(maskData.constData(), maskData.size())) << ";\n";
|
||||
source_->stream() << "IconMask iconMask" << i.value() << "(iconMask" << i.value() << "Data);\n\n";
|
||||
}
|
||||
return true;
|
||||
|
@ -175,6 +175,8 @@ template <typename T, size_t N> char(&ArraySizeHelper(T(&array)[N]))[N];
|
||||
|
||||
// For QFlags<> declared in private section of a class we need to declare
|
||||
// operators from Q_DECLARE_OPERATORS_FOR_FLAGS as friend functions.
|
||||
#ifndef OS_MAC_OLD
|
||||
|
||||
#define Q_DECLARE_FRIEND_INCOMPATIBLE_FLAGS(Flags) \
|
||||
friend Q_DECL_CONSTEXPR QIncompatibleFlag operator|(Flags::enum_type f1, int f2) Q_DECL_NOTHROW;
|
||||
|
||||
@ -183,6 +185,18 @@ friend Q_DECL_CONSTEXPR QFlags<Flags::enum_type> operator|(Flags::enum_type f1,
|
||||
friend Q_DECL_CONSTEXPR QFlags<Flags::enum_type> operator|(Flags::enum_type f1, QFlags<Flags::enum_type> f2) Q_DECL_NOTHROW; \
|
||||
Q_DECLARE_FRIEND_INCOMPATIBLE_FLAGS(Flags)
|
||||
|
||||
#else // OS_MAC_OLD
|
||||
|
||||
#define Q_DECLARE_FRIEND_INCOMPATIBLE_FLAGS(Flags) \
|
||||
friend Q_DECL_CONSTEXPR QIncompatibleFlag operator|(Flags::enum_type f1, int f2);
|
||||
|
||||
#define Q_DECLARE_FRIEND_OPERATORS_FOR_FLAGS(Flags) \
|
||||
friend Q_DECL_CONSTEXPR QFlags<Flags::enum_type> operator|(Flags::enum_type f1, Flags::enum_type f2); \
|
||||
friend Q_DECL_CONSTEXPR QFlags<Flags::enum_type> operator|(Flags::enum_type f1, QFlags<Flags::enum_type> f2); \
|
||||
Q_DECLARE_FRIEND_INCOMPATIBLE_FLAGS(Flags)
|
||||
|
||||
#endif // OS_MAC_OLD
|
||||
|
||||
// using for_const instead of plain range-based for loop to ensure usage of const_iterator
|
||||
// it is important for the copy-on-write Qt containers
|
||||
// if you have "QVector<T*> v" then "for (T * const p : v)" will still call QVector::detach(),
|
||||
@ -219,7 +233,11 @@ public:
|
||||
}
|
||||
constexpr char operator[](std::size_t n) const {
|
||||
return (n < _size) ? _str[n] :
|
||||
#ifndef OS_MAC_OLD
|
||||
throw std::out_of_range("");
|
||||
#else // OS_MAC_OLD
|
||||
throw std::exception();
|
||||
#endif // OS_MAC_OLD
|
||||
}
|
||||
constexpr std::size_t size() const { return _size; }
|
||||
const char *c_str() const { return _str; }
|
||||
@ -257,6 +275,11 @@ typedef double float64;
|
||||
|
||||
using std::string;
|
||||
using std::exception;
|
||||
#ifdef OS_MAC_OLD
|
||||
namespace std {
|
||||
using nullptr_t = decltype(nullptr);
|
||||
}
|
||||
#endif // OS_MAC_OLD
|
||||
|
||||
// we copy some parts of C++11/14/17 std:: library, because on OS X 10.6+
|
||||
// version we can use C++11/14/17, but we can not use its library :(
|
||||
@ -873,7 +896,7 @@ public:
|
||||
template <typename... Args>
|
||||
void makeIfNull(Args&&... args) {
|
||||
if (isNull()) {
|
||||
reset(new T(std::forward<Args>(args)...));
|
||||
reset(new T(std_::forward<Args>(args)...));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -52,8 +52,10 @@ enum class RegExOption {
|
||||
InvertedGreediness = QRegularExpression::InvertedGreedinessOption,
|
||||
DontCapture = QRegularExpression::DontCaptureOption,
|
||||
UseUnicodeProperties = QRegularExpression::UseUnicodePropertiesOption,
|
||||
#ifndef OS_MAC_OLD
|
||||
OptimizeOnFirstUsage = QRegularExpression::OptimizeOnFirstUsageOption,
|
||||
DontAutomaticallyOptimize = QRegularExpression::DontAutomaticallyOptimizeOption,
|
||||
#endif // OS_MAC_OLD
|
||||
};
|
||||
Q_DECLARE_FLAGS(RegExOptions, RegExOption);
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(RegExOptions);
|
||||
@ -65,7 +67,11 @@ inline RegularExpressionMatch regex_match(const QString &string, const QString &
|
||||
|
||||
inline RegularExpressionMatch regex_match(const QString &string, const QStringRef &subjectRef, RegExOptions options = 0) {
|
||||
auto qtOptions = QRegularExpression::PatternOptions(static_cast<int>(options));
|
||||
#ifndef OS_MAC_OLD
|
||||
return RegularExpressionMatch(QRegularExpression(string, qtOptions).match(subjectRef));
|
||||
#else // OS_MAC_OLD
|
||||
return RegularExpressionMatch(QRegularExpression(string, qtOptions).match(subjectRef.toString()));
|
||||
#endif // OS_MAC_OLD
|
||||
}
|
||||
|
||||
} // namespace qthelp
|
||||
|
@ -128,7 +128,11 @@ public:
|
||||
}
|
||||
inline const T &at(int index) const {
|
||||
if (index < 0 || index >= _size) {
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
|
||||
throw std::exception();
|
||||
#else // QT_VERSION < 5.5.0
|
||||
throw std::out_of_range("");
|
||||
#endif // QT_VERSION < 5.5.0
|
||||
}
|
||||
return data()[index];
|
||||
}
|
||||
|
@ -6028,9 +6028,9 @@ void LocationManager::onFinished(QNetworkReply *reply) {
|
||||
{
|
||||
QBuffer buffer(&data);
|
||||
QImageReader reader(&buffer);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifndef OS_MAC_OLD
|
||||
reader.setAutoTransform(true);
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
thumb = QPixmap::fromImageReader(&reader, Qt::ColorOnly);
|
||||
format = reader.format();
|
||||
thumb.setDevicePixelRatio(cRetinaFactor());
|
||||
|
@ -47,6 +47,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
||||
#include "window/top_bar_widget.h"
|
||||
#include "observer_peer.h"
|
||||
#include "playerwidget.h"
|
||||
#include "core/qthelp_regex.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@ -2971,9 +2972,8 @@ EntitiesInText entitiesFromTextTags(const FlatTextarea::TagList &tags) {
|
||||
auto mentionStart = qstr("mention://user.");
|
||||
for_const (auto &tag, tags) {
|
||||
if (tag.id.startsWith(mentionStart)) {
|
||||
auto match = QRegularExpression("^(\\d+\\.\\d+)(/|$)").match(tag.id.midRef(mentionStart.size()));
|
||||
if (match.hasMatch()) {
|
||||
result.push_back(EntityInText(EntityInTextMentionName, tag.offset, tag.length, match.captured(1)));
|
||||
if (auto match = qthelp::regex_match("^(\\d+\\.\\d+)(/|$)", tag.id.midRef(mentionStart.size()))) {
|
||||
result.push_back(EntityInText(EntityInTextMentionName, tag.offset, tag.length, match->captured(1)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8111,7 +8111,12 @@ void HistoryWidget::updatePreview() {
|
||||
updateMouseTracking();
|
||||
if (_previewData->pendingTill) {
|
||||
_previewTitle.setText(st::msgServiceNameFont, lang(lng_preview_loading), _textNameOptions);
|
||||
_previewDescription.setText(st::msgFont, textClean(_previewLinks.splitRef(' ').at(0).toString()), _textDlgOptions);
|
||||
#ifndef OS_MAC_OLD
|
||||
auto linkText = _previewLinks.splitRef(' ').at(0).toString();
|
||||
#else // OS_MAC_OLD
|
||||
auto linkText = _previewLinks.split(' ').at(0);
|
||||
#endif // OS_MAC_OLD
|
||||
_previewDescription.setText(st::msgFont, textClean(linkText), _textDlgOptions);
|
||||
|
||||
int32 t = (_previewData->pendingTill - unixtime()) * 1000;
|
||||
if (t <= 0) t = 1;
|
||||
|
@ -173,9 +173,13 @@ ClickHandlerPtr ItemBase::getResultContentUrlHandler() const {
|
||||
}
|
||||
|
||||
QString ItemBase::getResultThumbLetter() const {
|
||||
QVector<QStringRef> parts = _result->_url.splitRef('/');
|
||||
#ifndef OS_MAC_OLD
|
||||
auto parts = _result->_url.splitRef('/');
|
||||
#else // OS_MAC_OLD
|
||||
auto parts = _result->_url.split('/');
|
||||
#endif // OS_MAC_OLD
|
||||
if (!parts.isEmpty()) {
|
||||
QStringRef domain = parts.at(0);
|
||||
auto domain = parts.at(0);
|
||||
if (parts.size() > 2 && domain.endsWith(':') && parts.at(1).isEmpty()) { // http:// and others
|
||||
domain = parts.at(2);
|
||||
}
|
||||
|
@ -3621,9 +3621,9 @@ namespace Local {
|
||||
QImage img;
|
||||
QBuffer buf(&pngData);
|
||||
QImageReader reader(&buf);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifndef OS_MAC_OLD
|
||||
reader.setAutoTransform(true);
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
if (reader.read(&img)) {
|
||||
App::initBackground(id, img, true);
|
||||
return true;
|
||||
|
@ -31,6 +31,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
||||
#define AL_ALEXT_PROTOTYPES
|
||||
#include <AL/alext.h>
|
||||
|
||||
#include <numeric>
|
||||
|
||||
extern "C" {
|
||||
#ifdef Q_OS_MAC
|
||||
#include <iconv.h>
|
||||
|
@ -118,9 +118,9 @@ bool QtGifReaderImplementation::jumpToStart() {
|
||||
delete _reader;
|
||||
initDevice();
|
||||
_reader = new QImageReader(_device);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifndef OS_MAC_OLD
|
||||
_reader->setAutoTransform(true);
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
if (!_reader->canRead() || !_reader->supportsAnimation()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -984,9 +984,14 @@ Link::Link(HistoryMedia *media, HistoryItem *parent) : ItemBase(parent) {
|
||||
if (_page) {
|
||||
_title = _page->title;
|
||||
}
|
||||
QVector<QStringRef> parts = mainUrl.splitRef('/');
|
||||
|
||||
#ifndef OS_MAC_OLD
|
||||
auto parts = mainUrl.splitRef('/');
|
||||
#else // OS_MAC_OLD
|
||||
auto parts = mainUrl.split('/');
|
||||
#endif // OS_MAC_OLD
|
||||
if (!parts.isEmpty()) {
|
||||
QStringRef domain = parts.at(0);
|
||||
auto domain = parts.at(0);
|
||||
if (parts.size() > 2 && domain.endsWith(':') && parts.at(1).isEmpty()) { // http:// and others
|
||||
domain = parts.at(2);
|
||||
}
|
||||
|
@ -160,12 +160,14 @@ bool gAutoPlayGif = true;
|
||||
|
||||
void settingsParseArgs(int argc, char *argv[]) {
|
||||
#ifdef Q_OS_MAC
|
||||
#ifndef OS_MAC_OLD
|
||||
if (QSysInfo::macVersion() >= QSysInfo::MV_10_11) {
|
||||
gIsElCapitan = true;
|
||||
} else if (QSysInfo::macVersion() < QSysInfo::MV_10_8) {
|
||||
gPlatform = dbipMacOld;
|
||||
}
|
||||
#endif
|
||||
#else // OS_MAC_OLD
|
||||
gPlatform = dbipMacOld;
|
||||
#endif // OS_MAC_OLD
|
||||
#endif // Q_OS_MAC
|
||||
|
||||
switch (cPlatform()) {
|
||||
case dbipWindows:
|
||||
|
@ -253,6 +253,22 @@ struct DataStruct {
|
||||
t_assert(DataPtr == nullptr);
|
||||
DataPtr = this;
|
||||
|
||||
if (autoRepeatCommands.isEmpty()) {
|
||||
autoRepeatCommands.insert(qsl("media_previous"));
|
||||
autoRepeatCommands.insert(qsl("media_next"));
|
||||
autoRepeatCommands.insert(qsl("next_chat"));
|
||||
autoRepeatCommands.insert(qsl("previous_chat"));
|
||||
}
|
||||
|
||||
if (mediaCommands.isEmpty()) {
|
||||
mediaCommands.insert(qsl("media_play"));
|
||||
mediaCommands.insert(qsl("media_playpause"));
|
||||
mediaCommands.insert(qsl("media_play"));
|
||||
mediaCommands.insert(qsl("media_stop"));
|
||||
mediaCommands.insert(qsl("media_previous"));
|
||||
mediaCommands.insert(qsl("media_next"));
|
||||
}
|
||||
|
||||
#define DeclareAlias(keys, command) setShortcut(qsl(keys), qsl(#command))
|
||||
#define DeclareCommand(keys, command) createCommand(qsl(#command), ShortcutCommands::command); DeclareAlias(keys, command)
|
||||
|
||||
@ -305,22 +321,9 @@ struct DataStruct {
|
||||
QMap<int, ShortcutCommands::Handler> handlers;
|
||||
|
||||
QSet<QShortcut*> mediaShortcuts;
|
||||
QSet<QString> autoRepeatCommands;
|
||||
QSet<QString> mediaCommands;
|
||||
|
||||
QSet<QString> autoRepeatCommands = {
|
||||
qsl("media_previous"),
|
||||
qsl("media_next"),
|
||||
qsl("next_chat"),
|
||||
qsl("previous_chat"),
|
||||
};
|
||||
|
||||
QSet<QString> mediaCommands = {
|
||||
qsl("media_play"),
|
||||
qsl("media_pause"),
|
||||
qsl("media_playpause"),
|
||||
qsl("media_stop"),
|
||||
qsl("media_previous"),
|
||||
qsl("media_next")
|
||||
};
|
||||
};
|
||||
|
||||
namespace {
|
||||
|
@ -45,6 +45,9 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
||||
#pragma clang diagnostic pop
|
||||
#endif // __clang__
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
|
||||
#define OS_MAC_OLD
|
||||
#endif // QT_VERSION < 5.5.0
|
||||
|
||||
#include <QtWidgets/QtWidgets>
|
||||
#include <QtNetwork/QtNetwork>
|
||||
|
@ -798,6 +798,22 @@ void PhotoCancelClickHandler::onClickImpl() const {
|
||||
}
|
||||
}
|
||||
|
||||
QString joinList(const QStringList &list, const QString &sep) {
|
||||
QString result;
|
||||
if (list.isEmpty()) return result;
|
||||
|
||||
int32 l = list.size(), s = sep.size() * (l - 1);
|
||||
for (int32 i = 0; i < l; ++i) {
|
||||
s += list.at(i).size();
|
||||
}
|
||||
result.reserve(s);
|
||||
result.append(list.at(0));
|
||||
for (int32 i = 1; i < l; ++i) {
|
||||
result.append(sep).append(list.at(i));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
QString saveFileName(const QString &title, const QString &filter, const QString &prefix, QString name, bool savingAs, const QDir &dir) {
|
||||
#ifdef Q_OS_WIN
|
||||
name = name.replace(QRegularExpression(qsl("[\\\\\\/\\:\\*\\?\\\"\\<\\>\\|]")), qsl("_"));
|
||||
@ -832,9 +848,9 @@ QString saveFileName(const QString &title, const QString &filter, const QString
|
||||
QRegularExpressionMatch m = QRegularExpression(qsl(" \\*\\.") + ext + qsl("[\\)\\s]"), QRegularExpression::CaseInsensitiveOption).match(first);
|
||||
if (m.hasMatch() && m.capturedStart() > start + 3) {
|
||||
int32 oldpos = m.capturedStart(), oldend = m.capturedEnd();
|
||||
fil = first.mid(0, start + 3) + ext + qsl(" *.") + first.mid(start + 3, oldpos - start - 3) + first.mid(oldend - 1) + sep + filters.mid(1).join(sep);
|
||||
fil = first.mid(0, start + 3) + ext + qsl(" *.") + first.mid(start + 3, oldpos - start - 3) + first.mid(oldend - 1) + sep + joinList(filters.mid(1), sep);
|
||||
} else {
|
||||
fil = first.mid(0, start + 3) + ext + qsl(" *.") + first.mid(start + 3) + sep + filters.mid(1).join(sep);
|
||||
fil = first.mid(0, start + 3) + ext + qsl(" *.") + first.mid(start + 3) + sep + joinList(filters.mid(1), sep);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -1417,7 +1417,13 @@ inline bool operator<(const LocationCoords &a, const LocationCoords &b) {
|
||||
return (a.lat < b.lat) || ((a.lat == b.lat) && (a.lon < b.lon));
|
||||
}
|
||||
inline uint qHash(const LocationCoords &t, uint seed = 0) {
|
||||
#ifndef OS_MAC_OLD
|
||||
return qHash(QtPrivate::QHashCombine().operator()(qHash(t.lat), t.lon), seed);
|
||||
#else // OS_MAC_OLD
|
||||
uint h1 = qHash(t.lat, seed);
|
||||
uint h2 = qHash(t.lon, seed);
|
||||
return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed;
|
||||
#endif // OS_MAC_OLD
|
||||
}
|
||||
|
||||
struct LocationData {
|
||||
|
@ -644,9 +644,9 @@ void Image::restore() const {
|
||||
|
||||
QBuffer buffer(&_saved);
|
||||
QImageReader reader(&buffer, _format);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||||
#ifndef OS_MAC_OLD
|
||||
reader.setAutoTransform(true);
|
||||
#endif
|
||||
#endif // OS_MAC_OLD
|
||||
_data = QPixmap::fromImageReader(&reader, Qt::ColorOnly);
|
||||
|
||||
if (!_data.isNull()) {
|
||||
|
@ -106,7 +106,11 @@ namespace internal {
|
||||
|
||||
QImage createCircleMask(int size, const QColor &bg, const QColor &fg) {
|
||||
int realSize = size * cIntRetinaFactor();
|
||||
#ifndef OS_MAC_OLD
|
||||
auto result = QImage(realSize, realSize, QImage::Format::Format_Grayscale8);
|
||||
#else // OS_MAC_OLD
|
||||
auto result = QImage(realSize, realSize, QImage::Format::Format_RGB32);
|
||||
#endif // OS_MAC_OLD
|
||||
{
|
||||
QPainter pcircle(&result);
|
||||
pcircle.setRenderHint(QPainter::HighQualityAntialiasing, true);
|
||||
|
@ -123,7 +123,17 @@ void ToggleableShadow::paintEvent(QPaintEvent *e) {
|
||||
void sendSynteticMouseEvent(QWidget *widget, QEvent::Type type, Qt::MouseButton button, const QPoint &globalPoint) {
|
||||
auto windowHandle = widget->window()->windowHandle();
|
||||
auto localPoint = windowHandle->mapFromGlobal(globalPoint);
|
||||
QMouseEvent ev(type, localPoint, localPoint, globalPoint, button, QGuiApplication::mouseButtons() | button, QGuiApplication::keyboardModifiers(), Qt::MouseEventSynthesizedByApplication);
|
||||
QMouseEvent ev(type
|
||||
, localPoint
|
||||
, localPoint
|
||||
, globalPoint
|
||||
, button
|
||||
, QGuiApplication::mouseButtons() | button
|
||||
, QGuiApplication::keyboardModifiers()
|
||||
#ifndef OS_MAC_OLD
|
||||
, Qt::MouseEventSynthesizedByApplication
|
||||
#endif // OS_MAC_OLD
|
||||
);
|
||||
ev.setTimestamp(getms());
|
||||
QGuiApplication::sendEvent(windowHandle, &ev);
|
||||
}
|
||||
|
@ -48,7 +48,6 @@
|
||||
'ko',
|
||||
'pt-BR',
|
||||
],
|
||||
'mac_target': '10.8',
|
||||
},
|
||||
'includes': [
|
||||
'common_executable.gypi',
|
||||
@ -75,8 +74,6 @@
|
||||
'<(src_loc)',
|
||||
'<(SHARED_INTERMEDIATE_DIR)',
|
||||
'<(libs_loc)/breakpad/src',
|
||||
'<(libs_loc)/crashpad/crashpad',
|
||||
'<(libs_loc)/crashpad/crashpad/third_party/mini_chromium/mini_chromium',
|
||||
'<(libs_loc)/lzma/C',
|
||||
'<(libs_loc)/libexif-0.6.20',
|
||||
'<(libs_loc)/zlib-1.2.8',
|
||||
@ -84,9 +81,6 @@
|
||||
'<(libs_loc)/openal-soft/include',
|
||||
'<(minizip_loc)',
|
||||
],
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/ffmpeg',
|
||||
],
|
||||
'sources': [
|
||||
'<@(qrc_files)',
|
||||
'<@(style_files)',
|
||||
|
@ -65,7 +65,6 @@
|
||||
'build_mac%': '<(build_mac)',
|
||||
'build_linux%': '<(build_linux)',
|
||||
'official_build_target%': '<(official_build_target)',
|
||||
'mac_target%': '10.8',
|
||||
|
||||
# GYP does not support per-configuration libraries :(
|
||||
# So they will be emulated through additional link flags,
|
||||
@ -82,10 +81,10 @@
|
||||
}],
|
||||
[ '"<(official_build_target)" == "mac32"', {
|
||||
'mac_target%': '10.6',
|
||||
'build_mac32': 1,
|
||||
'build_macold': 1,
|
||||
}, {
|
||||
'mac_target%': '10.8',
|
||||
'build_mac32': 0,
|
||||
'build_macold': 0,
|
||||
}]
|
||||
],
|
||||
'ld_lib_prefix': '<(ld_lib_prefix)',
|
||||
|
@ -24,9 +24,7 @@
|
||||
'variables': {
|
||||
'qt_libs': [
|
||||
'Qt5Core',
|
||||
'qtpcre',
|
||||
'Qt5Gui',
|
||||
'qtfreetype',
|
||||
'Qt5Widgets',
|
||||
'qtharfbuzzng',
|
||||
'Qt5Network',
|
||||
@ -34,8 +32,15 @@
|
||||
'Qt5PrintSupport',
|
||||
'qwebp',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'build_macold', {
|
||||
'qt_version%': '5.3.2',
|
||||
}, {
|
||||
'qt_version%': '5.6.0',
|
||||
}]
|
||||
],
|
||||
},
|
||||
'qt_version%': '5.6.0',
|
||||
'qt_version%': '<(qt_version)',
|
||||
'conditions': [
|
||||
[ 'build_win', {
|
||||
'qt_lib_prefix': '<(ld_lib_prefix)',
|
||||
@ -57,9 +62,20 @@
|
||||
'qcocoa',
|
||||
],
|
||||
}],
|
||||
[ 'build_macold', {
|
||||
'qt_loc_unix': '/usr/local/Qt-<(qt_version)'
|
||||
}, {
|
||||
'qt_loc_unix': '/usr/local/tdesktop/Qt-<(qt_version)',
|
||||
'qt_libs': [
|
||||
'<@(qt_libs)',
|
||||
'qtfreetype',
|
||||
'qtpcre',
|
||||
],
|
||||
}]
|
||||
],
|
||||
},
|
||||
'qt_version%': '<(qt_version)',
|
||||
'qt_loc_unix': '<(qt_loc_unix)',
|
||||
'qt_version_loc': '<!(python -c "print(\'<(qt_version)\'.replace(\'.\', \'_\'))")',
|
||||
'qt_libs_debug': [
|
||||
'<!@(python -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_debug_postfix)\')")',
|
||||
@ -75,7 +91,7 @@
|
||||
[ 'build_win', {
|
||||
'qt_loc': '../../../Libraries/qt<(qt_version_loc)/qtbase',
|
||||
}, {
|
||||
'qt_loc': '/usr/local/tdesktop/Qt-<(qt_version)',
|
||||
'qt_loc': '<(qt_loc_unix)',
|
||||
}],
|
||||
],
|
||||
},
|
||||
|
@ -28,8 +28,6 @@
|
||||
'CoreText',
|
||||
'CoreGraphics',
|
||||
'OpenGL',
|
||||
'VideoToolbox',
|
||||
'VideoDecodeAcceleration',
|
||||
'AudioUnit',
|
||||
'ApplicationServices',
|
||||
'Foundation',
|
||||
@ -40,8 +38,6 @@
|
||||
'AudioToolbox',
|
||||
'CoreAudio',
|
||||
'QuartzCore',
|
||||
'AVFoundation',
|
||||
'CoreMedia',
|
||||
'AppKit',
|
||||
'CoreWLAN',
|
||||
'IOKit',
|
||||
@ -69,14 +65,40 @@
|
||||
'<@(mac_common_flags)',
|
||||
],
|
||||
'OTHER_LDFLAGS': [
|
||||
'-stdlib=libc++',
|
||||
'<!@(python -c "for s in \'<@(mac_frameworks)\'.split(\' \'): print(\'-framework \' + s)")',
|
||||
],
|
||||
'MACOSX_DEPLOYMENT_TARGET': '<(mac_target)',
|
||||
'COMBINE_HIDPI_IMAGES': 'YES',
|
||||
'COPY_PHASE_STRIP': 'NO',
|
||||
'CLANG_CXX_LANGUAGE_STANDARD': 'c++14',
|
||||
},
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'xcode_settings': {
|
||||
'ENABLE_TESTABILITY': 'YES',
|
||||
'ONLY_ACTIVE_ARCH': 'YES',
|
||||
},
|
||||
},
|
||||
},
|
||||
}],
|
||||
[ 'build_macold', {
|
||||
'xcode_settings': {
|
||||
'OTHER_CFLAGS': [
|
||||
'-Wno-inconsistent-missing-override',
|
||||
],
|
||||
'OTHER_CPLUSPLUSFLAGS': [
|
||||
'-Wno-inconsistent-missing-override',
|
||||
],
|
||||
},
|
||||
}, {
|
||||
'xcode_settings': {
|
||||
'CLANG_CXX_LIBRARY': 'libc++',
|
||||
'OTHER_LDFLAGS': [
|
||||
'-framework VideoToolbox',
|
||||
'-framework VideoDecodeAcceleration',
|
||||
'-framework AVFoundation',
|
||||
'-framework CoreMedia',
|
||||
],
|
||||
},
|
||||
}],
|
||||
],
|
||||
|
@ -32,15 +32,8 @@
|
||||
'-lssl',
|
||||
'-lcrypto',
|
||||
'/usr/local/lib/liblzma.a',
|
||||
'/usr/local/lib/libopenal.a',
|
||||
'/usr/local/lib/libopus.a',
|
||||
'/usr/local/lib/libexif.a',
|
||||
'-lavcodec',
|
||||
'-lavformat',
|
||||
'-lswscale',
|
||||
'-lswresample',
|
||||
'-lavutil',
|
||||
'/usr/local/lib/libiconv.a',
|
||||
'-lbase',
|
||||
'-lcrashpad_client',
|
||||
'-lcrashpad_util',
|
||||
@ -57,17 +50,11 @@
|
||||
],
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad/crashpad/out/Debug',
|
||||
],
|
||||
'xcode_settings': {
|
||||
'GCC_OPTIMIZATION_LEVEL': '0',
|
||||
},
|
||||
},
|
||||
'Release': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad/crashpad/out/Release',
|
||||
],
|
||||
'xcode_settings': {
|
||||
'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym',
|
||||
'LLVM_LTO': 'YES',
|
||||
@ -97,7 +84,80 @@
|
||||
'action': [
|
||||
'mkdir', '-p', '${BUILT_PRODUCTS_DIR}/Telegram.app/Contents/Helpers/'
|
||||
],
|
||||
}, {
|
||||
}],
|
||||
}], [ 'build_macold', {
|
||||
'xcode_settings': {
|
||||
'OTHER_LDFLAGS': [
|
||||
'/usr/local/openal_old/lib/libopenal.a',
|
||||
'/usr/local/zlib_old/lib/libz.a',
|
||||
'/usr/local/iconv_old/lib/libiconv.a',
|
||||
'/usr/local/ffmpeg_old/lib/libavcodec.a',
|
||||
'/usr/local/ffmpeg_old/lib/libavformat.a',
|
||||
'/usr/local/ffmpeg_old/lib/libavutil.a',
|
||||
'/usr/local/ffmpeg_old/lib/libswscale.a',
|
||||
'/usr/local/ffmpeg_old/lib/libswresample.a',
|
||||
],
|
||||
},
|
||||
'include_dirs': [
|
||||
'<(libs_loc)/crashpad_oldmac/crashpad',
|
||||
'<(libs_loc)/crashpad_oldmac/crashpad/third_party/mini_chromium/mini_chromium',
|
||||
],
|
||||
'library_dirs': [
|
||||
'/usr/local/ffmpeg_old',
|
||||
],
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad_oldmac/crashpad/out/Debug',
|
||||
],
|
||||
},
|
||||
'Release': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad_oldmac/crashpad/out/Release',
|
||||
],
|
||||
},
|
||||
},
|
||||
'postbuilds': [{
|
||||
'postbuild_name': 'Copy crashpad_client to Helpers',
|
||||
'action': [
|
||||
'cp',
|
||||
'<(libs_loc)/crashpad_oldmac/crashpad/out/${CONFIGURATION}/crashpad_handler',
|
||||
'${BUILT_PRODUCTS_DIR}/Telegram.app/Contents/Helpers/',
|
||||
],
|
||||
}],
|
||||
}, {
|
||||
'xcode_settings': {
|
||||
'OTHER_LDFLAGS': [
|
||||
'/usr/local/lib/libz.a',
|
||||
'/usr/local/lib/libopenal.a',
|
||||
'/usr/local/lib/libiconv.a',
|
||||
'/usr/local/lib/libavcodec.a',
|
||||
'/usr/local/lib/libavformat.a',
|
||||
'/usr/local/lib/libavutil.a',
|
||||
'/usr/local/lib/libswscale.a',
|
||||
'/usr/local/lib/libswresample.a',
|
||||
],
|
||||
},
|
||||
'include_dirs': [
|
||||
'<(libs_loc)/crashpad/crashpad',
|
||||
'<(libs_loc)/crashpad/crashpad/third_party/mini_chromium/mini_chromium',
|
||||
],
|
||||
'library_dirs': [
|
||||
'/usr/local/ffmpeg',
|
||||
],
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad/crashpad/out/Debug',
|
||||
],
|
||||
},
|
||||
'Release': {
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/crashpad/crashpad/out/Release',
|
||||
],
|
||||
},
|
||||
},
|
||||
'postbuilds': [{
|
||||
'postbuild_name': 'Copy crashpad_client to Helpers',
|
||||
'action': [
|
||||
'cp',
|
||||
|
@ -25,6 +25,9 @@
|
||||
'sources': [
|
||||
'<(res_loc)/winrc/Telegram.rc',
|
||||
],
|
||||
'library_dirs': [
|
||||
'<(libs_loc)/ffmpeg',
|
||||
],
|
||||
'libraries': [
|
||||
'libeay32',
|
||||
'ssleay32',
|
||||
|
Loading…
Reference in New Issue
Block a user