diff options
author | Ilya Fedin | 2020-01-18 00:55:52 +0400 |
---|---|---|
committer | Ilya Fedin | 2020-01-18 00:55:52 +0400 |
commit | 1eba78855f3b7277a9e888ba98c73adc04b65569 (patch) | |
tree | 9ec49cb408b1b9b37665d7b0ad0fd7e5b98595b5 | |
parent | 4ad3891cb9f87b4a490957160de56f83f2c899fe (diff) | |
download | aur-1eba78855f3b7277a9e888ba98c73adc04b65569.tar.gz |
Update base to v1.9.4
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | PKGBUILD | 26 | ||||
-rw-r--r-- | Use-native-notifications-by-default.patch | 13 | ||||
-rw-r--r-- | Use-system-wide-font.patch | 15 | ||||
-rw-r--r-- | cmake-rules-fix.patch | 3014 | ||||
-rw-r--r-- | fix-notifications.patch | 216 | ||||
-rw-r--r-- | fix-spellcheck.patch | 523 | ||||
-rw-r--r-- | remove-qt-config.patch | 13 |
8 files changed, 16 insertions, 3823 deletions
@@ -1,7 +1,7 @@ pkgbase = kotatogram-desktop pkgdesc = Kotatogram – experimental Telegram Desktop fork pkgver = 1.1.2 - pkgrel = 6 + pkgrel = 7 url = https://kotatogram.github.io arch = x86_64 license = GPL3 @@ -22,7 +22,6 @@ pkgbase = kotatogram-desktop depends = zlib depends = minizip depends = openssl - depends = sonnet depends = libtgvoip depends = rlottie-tdesktop depends = hicolor-icon-theme @@ -54,17 +53,12 @@ pkgbase = kotatogram-desktop source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane.png source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@2x.png source = https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@3x.png - source = https://raw.githubusercontent.com/ilya-fedin/nur-repository/09de9a8a98c79b8d4c4e19313a8e2b4db5591c58/pkgs/kotatogram-desktop/update-to-v1.9.3.patch - source = cmake-rules-fix.patch - source = remove-qt-config.patch - source = fix-spellcheck.patch - source = fix-notifications.patch + source = https://raw.githubusercontent.com/ilya-fedin/nur-repository/4c17ad9c0d190ebdcb4e6c68860025ca81e9c708/pkgs/kotatogram-desktop/update-to-v1.9.4.patch source = Use-system-font.patch source = Use-system-wide-font.patch source = system-tray-icon.patch source = linux-autostart.patch source = Use-system-font-by-default.patch - source = Use-native-notifications-by-default.patch source = autostart.desktop sha512sums = SKIP sha512sums = SKIP @@ -87,17 +81,12 @@ pkgbase = kotatogram-desktop sha512sums = 767cc5f3a8e25ff94cfc4a0ad6968455ab52875262e40515cfd4ebea1765014808913ee624efa47c57b15de7cceb492bf7232de981d519bd104036f6d498b788 sha512sums = ac55bcd0c572b1e5fdd72cd0dd9db4bb5eb9c12adc8c702f348201a52b1cf0271f550e144e6654605753960cab55146604a8b52d5294861f73d85b548e5503f0 sha512sums = ec16fd3a70a225fd9aa54c8042b1115d0bdb15e2a95c1abbc74cee50a06878196a4e8c451167c9849ff816ce36e48f46166cb7e99790258d575bde11e305e548 - sha512sums = a724ebcf13856fe9c261f9d0e5b4ffc3fc5f0b05b56e988554e75f65e5b9c5a2964444a5fa59b017c2c1689472f9a8be62a6cdde0ef7e3eae598b7c09d7f47b2 - sha512sums = 660d077e5f5da14b8abf4a6f7a58b2e51c5f4c37dda302a2737a4fd7580335e44de64c4e0c9c16aab58f0d555b875da9ac41d5b59543969329e2e3098e44327b - sha512sums = c90dbebb216233b5a3d5036fb244d1ce746540fcc84413de70cab6c557fee7d0a065cf1dc828c5ae7f8a0be26ff3ea05eec99c74006d201118c2b2531da4182f - sha512sums = aad19022eb8ddedf21e582a0c7dc7eac8435c667e542b7c36c7cce876a031acb675a05e9d8fa7fea631f1c3a00f20e9f1bfb2dcc0c8aaa609fd3bc6891804153 - sha512sums = a481a82e1eb03e378cb5955fc7688cca5eee220311d941c755e2329d4b77f0b3183650cfb9ac34f340cab4a94b3eadbcf905fc347cfdca73fdcaea85f4a848e5 + sha512sums = ece3cbbed63a04d1ee08218b16782a5105bc8f9d6d88b49bfbd768d3260a0d322e7544f224c5ee0da21177c252747dba24a0ce807da9dea2447e54ff04785e47 sha512sums = b9fe9cb91e19271920c4cf075ba83703f093111d6a692cab91eb493563940091cda7b204742711157beb1e9857c1fefd6788ec8784f7b362423a9564925c0de6 - sha512sums = 94ea7c337c6c9dd6be7727d3b8e9f44cdcfe391c574607491aa32b6e64a93eff7bcc6adc993e7c93e8f5b75a4646a1cf884646fce65ca78edf1df7a969bcf56a + sha512sums = 4263c3e3a3edcd91eed2a666b7aa1db61129531d60b5539d7aa24b83f46b17cb5fe65229175e36f76bf2ac76472aa2a1e5fa1c0c5ff0cbb809816cd006bb2ef4 sha512sums = 6bdb73dd7ebd8cd50da0f09f2f1fa201e687fee949c4a05f90e62e7e6167ccca877a078021ca611ce8fbb464aab329b92270f07e0cb770c2b7a89a436d37549a sha512sums = aaef50685b8871f32820e6cca2014aa986500ddcf34f4e99216081310e8622a242420a7d1ce30e277af85eb3f1d1e73c5a67dab9e02b42ef03ae6d76381fe635 sha512sums = a95122676e18b1505b796b79e24521adcf5b29a28a01b7cd3285b5855c8d27e5e0e8f15928f61826e81163dfd3f06e71d27879bef748c1d491a3cd8f9e3212cc - sha512sums = 14064af25fda0fcd31a0dc7626687eaf61c329e9100fb55a8a0a455600a63a761e864056088aa486afdd053eccad0a55f8b332151eeb46c90a2c562a64a0a36e sha512sums = 610ce239e1e8ae6cfaaccc507eb2ca174f38e340ceec8f56bec4da1a6e390b516c56be5c82a90674e92d0958ac7c8f2fdba560b044f30fb165b522a58bfb600a pkgname = kotatogram-desktop @@ -3,7 +3,7 @@ pkgname=kotatogram-desktop pkgver=1.1.2 -pkgrel=6 +pkgrel=7 pkgdesc="Kotatogram – experimental Telegram Desktop fork" arch=(x86_64) url="https://kotatogram.github.io" @@ -19,7 +19,6 @@ depends=( zlib minizip openssl - sonnet libtgvoip rlottie-tdesktop hicolor-icon-theme @@ -64,17 +63,12 @@ source=( "https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@2x.png" "https://raw.githubusercontent.com/telegramdesktop/tdesktop/100fed362271ada828fdaeb27e52f660a5a05d18/Telegram/Resources/icons/intro_qr_plane@3x.png" - "https://raw.githubusercontent.com/ilya-fedin/nur-repository/09de9a8a98c79b8d4c4e19313a8e2b4db5591c58/pkgs/kotatogram-desktop/update-to-v1.9.3.patch" - "cmake-rules-fix.patch" - "remove-qt-config.patch" - "fix-spellcheck.patch" - "fix-notifications.patch" + "https://raw.githubusercontent.com/ilya-fedin/nur-repository/4c17ad9c0d190ebdcb4e6c68860025ca81e9c708/pkgs/kotatogram-desktop/update-to-v1.9.4.patch" "Use-system-font.patch" "Use-system-wide-font.patch" "system-tray-icon.patch" "linux-autostart.patch" "Use-system-font-by-default.patch" - "Use-native-notifications-by-default.patch" "autostart.desktop" ) @@ -99,17 +93,12 @@ sha512sums=('SKIP' '767cc5f3a8e25ff94cfc4a0ad6968455ab52875262e40515cfd4ebea1765014808913ee624efa47c57b15de7cceb492bf7232de981d519bd104036f6d498b788' 'ac55bcd0c572b1e5fdd72cd0dd9db4bb5eb9c12adc8c702f348201a52b1cf0271f550e144e6654605753960cab55146604a8b52d5294861f73d85b548e5503f0' 'ec16fd3a70a225fd9aa54c8042b1115d0bdb15e2a95c1abbc74cee50a06878196a4e8c451167c9849ff816ce36e48f46166cb7e99790258d575bde11e305e548' - 'a724ebcf13856fe9c261f9d0e5b4ffc3fc5f0b05b56e988554e75f65e5b9c5a2964444a5fa59b017c2c1689472f9a8be62a6cdde0ef7e3eae598b7c09d7f47b2' - '660d077e5f5da14b8abf4a6f7a58b2e51c5f4c37dda302a2737a4fd7580335e44de64c4e0c9c16aab58f0d555b875da9ac41d5b59543969329e2e3098e44327b' - 'c90dbebb216233b5a3d5036fb244d1ce746540fcc84413de70cab6c557fee7d0a065cf1dc828c5ae7f8a0be26ff3ea05eec99c74006d201118c2b2531da4182f' - 'aad19022eb8ddedf21e582a0c7dc7eac8435c667e542b7c36c7cce876a031acb675a05e9d8fa7fea631f1c3a00f20e9f1bfb2dcc0c8aaa609fd3bc6891804153' - 'a481a82e1eb03e378cb5955fc7688cca5eee220311d941c755e2329d4b77f0b3183650cfb9ac34f340cab4a94b3eadbcf905fc347cfdca73fdcaea85f4a848e5' + 'ece3cbbed63a04d1ee08218b16782a5105bc8f9d6d88b49bfbd768d3260a0d322e7544f224c5ee0da21177c252747dba24a0ce807da9dea2447e54ff04785e47' 'b9fe9cb91e19271920c4cf075ba83703f093111d6a692cab91eb493563940091cda7b204742711157beb1e9857c1fefd6788ec8784f7b362423a9564925c0de6' - '94ea7c337c6c9dd6be7727d3b8e9f44cdcfe391c574607491aa32b6e64a93eff7bcc6adc993e7c93e8f5b75a4646a1cf884646fce65ca78edf1df7a969bcf56a' + '4263c3e3a3edcd91eed2a666b7aa1db61129531d60b5539d7aa24b83f46b17cb5fe65229175e36f76bf2ac76472aa2a1e5fa1c0c5ff0cbb809816cd006bb2ef4' '6bdb73dd7ebd8cd50da0f09f2f1fa201e687fee949c4a05f90e62e7e6167ccca877a078021ca611ce8fbb464aab329b92270f07e0cb770c2b7a89a436d37549a' 'aaef50685b8871f32820e6cca2014aa986500ddcf34f4e99216081310e8622a242420a7d1ce30e277af85eb3f1d1e73c5a67dab9e02b42ef03ae6d76381fe635' 'a95122676e18b1505b796b79e24521adcf5b29a28a01b7cd3285b5855c8d27e5e0e8f15928f61826e81163dfd3f06e71d27879bef748c1d491a3cd8f9e3212cc' - '14064af25fda0fcd31a0dc7626687eaf61c329e9100fb55a8a0a455600a63a761e864056088aa486afdd053eccad0a55f8b332151eeb46c90a2c562a64a0a36e' '610ce239e1e8ae6cfaaccc507eb2ca174f38e340ceec8f56bec4da1a6e390b516c56be5c82a90674e92d0958ac7c8f2fdba560b044f30fb165b522a58bfb600a') prepare() { @@ -140,17 +129,12 @@ prepare() { dos2unix "$srcdir/$pkgname/Telegram/build/build.bat" - patch -Np1 -i "$srcdir/update-to-v1.9.3.patch" - patch -Np1 -i "$srcdir/cmake-rules-fix.patch" - patch -Np1 -i "$srcdir/remove-qt-config.patch" - patch -Np1 -i "$srcdir/fix-spellcheck.patch" - patch -Np1 -i "$srcdir/fix-notifications.patch" + patch -Np1 -i "$srcdir/update-to-v1.9.4.patch" patch -Np1 -i "$srcdir/Use-system-font.patch" patch -Np1 -i "$srcdir/Use-system-wide-font.patch" patch -Np1 -i "$srcdir/system-tray-icon.patch" patch -Np1 -i "$srcdir/linux-autostart.patch" patch -Np1 -i "$srcdir/Use-system-font-by-default.patch" - patch -Np1 -i "$srcdir/Use-native-notifications-by-default.patch" unix2dos "$srcdir/$pkgname/Telegram/build/build.bat" diff --git a/Use-native-notifications-by-default.patch b/Use-native-notifications-by-default.patch deleted file mode 100644 index 4fe8f2ee3eec..000000000000 --- a/Use-native-notifications-by-default.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp -index 7f1a9505b..9500a37ba 100644 ---- a/Telegram/SourceFiles/facades.cpp -+++ b/Telegram/SourceFiles/facades.cpp -@@ -378,7 +378,7 @@ struct Data { - bool DesktopNotify = true; - bool RestoreSoundNotifyFromTray = false; - DBINotifyView NotifyView = dbinvShowPreview; -- bool NativeNotifications = false; -+ bool NativeNotifications = Platform::IsLinux(); - int NotificationsCount = 3; - Notify::ScreenCorner NotificationsCorner = Notify::ScreenCorner::BottomRight; - bool NotificationsDemoIsShown = false; diff --git a/Use-system-wide-font.patch b/Use-system-wide-font.patch index 9e8df6e277b0..d7df29d1f746 100644 --- a/Use-system-wide-font.patch +++ b/Use-system-wide-font.patch @@ -1,18 +1,17 @@ -Submodule Telegram/lib_ui contains modified content diff --git a/Telegram/lib_ui/CMakeLists.txt b/Telegram/lib_ui/CMakeLists.txt -index 687b25f..5243936 100644 +index 81bf4d1..05bf2a1 100644 --- a/Telegram/lib_ui/CMakeLists.txt +++ b/Telegram/lib_ui/CMakeLists.txt -@@ -20,7 +20,6 @@ set(style_files - ui/widgets/widgets.style - ) - set(qrc_files +@@ -33,7 +33,6 @@ PRIVATE + ui/colors.palette + emoji_suggestions/emoji_autocomplete.json + - fonts/fonts.qrc - qt_conf/linux.qrc qt_conf/mac.qrc qt_conf/win.qrc + diff --git a/Telegram/lib_ui/ui/style/style_core_font.cpp b/Telegram/lib_ui/ui/style/style_core_font.cpp -index e27850f..d1f45b8 100644 +index a4be3e4..aee47f5 100644 --- a/Telegram/lib_ui/ui/style/style_core_font.cpp +++ b/Telegram/lib_ui/ui/style/style_core_font.cpp @@ -15,7 +15,6 @@ diff --git a/cmake-rules-fix.patch b/cmake-rules-fix.patch deleted file mode 100644 index c9027719151b..000000000000 --- a/cmake-rules-fix.patch +++ /dev/null @@ -1,3014 +0,0 @@ -diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt -index b00bd61e5..ea6114312 100644 ---- a/Telegram/CMakeLists.txt -+++ b/Telegram/CMakeLists.txt -@@ -27,12 +27,12 @@ include(cmake/generate_numbers.cmake) - get_filename_component(src_loc SourceFiles REALPATH) - get_filename_component(res_loc Resources REALPATH) - -+include(cmake/telegram_options.cmake) - include(cmake/lib_export.cmake) - include(cmake/lib_ffmpeg.cmake) - include(cmake/lib_mtproto.cmake) - include(cmake/lib_scheme.cmake) - include(cmake/lib_tgvoip.cmake) --include(cmake/telegram_options.cmake) - - set(style_files - boxes/boxes.style -@@ -65,8 +65,13 @@ generate_numbers(Telegram ${res_loc}/numbers.txt) - - set_target_properties(Telegram PROPERTIES AUTOMOC ON AUTORCC ON) - -+set(CMAKE_THREAD_PREFER_PTHREAD TRUE) -+find_package(Threads) -+ - target_link_libraries(Telegram - PRIVATE -+ ${CMAKE_DL_LIBS} -+ Threads::Threads - tdesktop::lib_mtproto - tdesktop::lib_scheme - tdesktop::lib_export -@@ -83,15 +88,15 @@ PRIVATE - desktop-app::external_zlib - desktop-app::external_qt - desktop-app::external_qr_code_generator -+ desktop-app::external_crash_reports - desktop-app::external_auto_updates - tdesktop::lib_tgvoip - desktop-app::external_openssl -- desktop-app::external_opus - desktop-app::external_openal - ) - --if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) -- target_link_libraries(Telegram PRIVATE desktop-app::external_crash_reports) -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_link_libraries(Telegram PRIVATE desktop-app::external_opus) - endif() - - target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h) -@@ -944,11 +949,16 @@ PRIVATE - mainwindow.h - observer_peer.cpp - observer_peer.h -- qt_static_plugins.cpp - settings.cpp - settings.h - ) - -+if (DESKTOP_APP_USE_PACKAGED) -+ nice_target_sources(Telegram ${src_loc} PRIVATE qt_functions.cpp) -+else() -+ nice_target_sources(Telegram ${src_loc} PRIVATE qt_static_plugins.cpp) -+endif() -+ - nice_target_sources(Telegram ${res_loc} - PRIVATE - qrc/emoji_1.qrc -@@ -1026,10 +1036,15 @@ elseif (LINUX) - if (NOT TDESKTOP_DISABLE_GTK_INTEGRATION) - find_package(PkgConfig REQUIRED) - -- pkg_check_modules(GTK2 REQUIRED gtk+-2.0) -- target_include_directories(Telegram PRIVATE ${GTK2_INCLUDE_DIRS}) -+ pkg_search_module(GTK REQUIRED gtk+-2.0 gtk+-3.0) -+ target_include_directories(Telegram PRIVATE ${GTK_INCLUDE_DIRS}) - target_compile_options(Telegram PRIVATE -Wno-register) - -+ if (DESKTOP_APP_USE_PACKAGED) -+ find_library(X11_LIBRARY X11) -+ target_link_libraries(Telegram PRIVATE ${X11_LIBRARY}) -+ endif() -+ - set(appindicator_packages - ayatana-appindicator3-0.1 - ayatana-appindicator-0.1 -@@ -1102,23 +1117,26 @@ set(entitlement_sources - target_sources(Telegram PRIVATE ${entitlement_sources}) - source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/Telegram PREFIX Resources FILES ${entitlement_sources}) - --target_include_directories(Telegram --PRIVATE -- ${src_loc} -- ${third_party_loc}/minizip --) -+target_include_directories(Telegram PRIVATE ${src_loc}) -+ -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_include_directories(Telegram PRIVATE ${third_party_loc}/minizip) -+endif() - - target_compile_definitions(Telegram - PRIVATE - TDESKTOP_API_ID=${TDESKTOP_API_ID} - TDESKTOP_API_HASH=${TDESKTOP_API_HASH} -- AL_LIBTYPE_STATIC - AL_ALEXT_PROTOTYPES - ) - --if (${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode|Ninja)") -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_compile_definitions(Telegram PRIVATE AL_LIBTYPE_STATIC) -+endif() -+ -+if (${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode)") - set(output_folder ${CMAKE_BINARY_DIR}) --elseif((${CMAKE_GENERATOR} MATCHES "(Unix Makefiles)") AND DESKTOP_APP_SPECIAL_TARGET STREQUAL "") -+elseif (DESKTOP_APP_SPECIAL_TARGET STREQUAL "") - set(output_folder ${CMAKE_BINARY_DIR}/bin) - else() - set(output_folder ${CMAKE_BINARY_DIR}/$<IF:$<CONFIG:Debug>,Debug,Release>) -@@ -1126,7 +1144,7 @@ endif() - - set_target_properties(Telegram PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${output_folder}) - --if (NOT build_macstore AND NOT build_winstore) -+if (NOT disable_autoupdate AND NOT build_macstore AND NOT build_winstore) - add_executable(Updater WIN32) - init_target(Updater) - -diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp -new file mode 100644 -index 000000000..5a9117773 ---- /dev/null -+++ b/Telegram/SourceFiles/qt_functions.cpp -@@ -0,0 +1,99 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 The Qt Company Ltd. -+** Contact: http://www.qt.io/licensing/ -+** -+** This file contains some parts of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL21$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see http://www.qt.io/terms-conditions. For further -+** information use the contact form at http://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 or version 3 as published by the Free -+** Software Foundation and appearing in the file LICENSE.LGPLv21 and -+** LICENSE.LGPLv3 included in the packaging of this file. Please review the -+** following information to ensure the GNU Lesser General Public License -+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** As a special exception, The Qt Company gives you certain additional -+** rights. These rights are described in The Qt Company LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+// For QTextItemInt declaraion -+#include <private/qtextengine_p.h> -+ -+#ifndef TDESKTOP_DISABLE_GTK_INTEGRATION -+/* TODO: find a dynamic library with these symbols. */ -+ -+/* Debian maintainer: this function is taken from qfiledialog.cpp */ -+/* -+ Makes a list of filters from ;;-separated text. -+ Used by the mac and windows implementations -+*/ -+QStringList qt_make_filter_list(const QString &filter) -+{ -+ QString f(filter); -+ -+ if (f.isEmpty()) -+ return QStringList(); -+ -+ QString sep(QLatin1String(";;")); -+ int i = f.indexOf(sep, 0); -+ if (i == -1) { -+ if (f.indexOf(QLatin1Char('\n'), 0) != -1) { -+ sep = QLatin1Char('\n'); -+ i = f.indexOf(sep, 0); -+ } -+ } -+ -+ return f.split(sep); -+} -+#endif // !TDESKTOP_DISABLE_GTK_INTEGRATION -+ -+/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */ -+QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format) -+ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format), -+ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe) -+{ -+} -+ -+/* Debian maintainer: this method is also taken from qtextengine.cpp */ -+// Fix up flags and underlineStyle with given info -+void QTextItemInt::initWithScriptItem(const QScriptItem &si) -+{ -+ // explicitly initialize flags so that initFontAttributes can be called -+ // multiple times on the same TextItem -+ flags = 0; -+ if (si.analysis.bidiLevel %2) -+ flags |= QTextItem::RightToLeft; -+ ascent = si.ascent; -+ descent = si.descent; -+ -+ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) { -+ underlineStyle = charFormat.underlineStyle(); -+ } else if (charFormat.boolProperty(QTextFormat::FontUnderline) -+ || f->d->underline) { -+ underlineStyle = QTextCharFormat::SingleUnderline; -+ } -+ -+ // compat -+ if (underlineStyle == QTextCharFormat::SingleUnderline) -+ flags |= QTextItem::Underline; -+ -+ if (f->d->overline || charFormat.fontOverline()) -+ flags |= QTextItem::Overline; -+ if (f->d->strikeOut || charFormat.fontStrikeOut()) -+ flags |= QTextItem::StrikeOut; -+} -diff --git a/Telegram/cmake/generate_scheme.cmake b/Telegram/cmake/generate_scheme.cmake -index 75d3995e2..e5802742a 100644 ---- a/Telegram/cmake/generate_scheme.cmake -+++ b/Telegram/cmake/generate_scheme.cmake -@@ -5,6 +5,8 @@ - # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL - - function(generate_scheme target_name script scheme_files) -+ find_package(Python REQUIRED) -+ - set(gen_dst ${CMAKE_CURRENT_BINARY_DIR}/gen) - file(MAKE_DIRECTORY ${gen_dst}) - -@@ -22,7 +24,7 @@ function(generate_scheme target_name script scheme_files) - BYPRODUCTS - ${gen_files} - COMMAND -- python -+ ${Python_EXECUTABLE} - ${script} - -o${gen_dst}/scheme - ${scheme_files} -diff --git a/Telegram/cmake/lib_tgvoip.cmake b/Telegram/cmake/lib_tgvoip.cmake -index 38fa632a4..e820a5d5f 100644 ---- a/Telegram/cmake/lib_tgvoip.cmake -+++ b/Telegram/cmake/lib_tgvoip.cmake -@@ -4,781 +4,792 @@ - # For license and copyright information please follow this link: - # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL - --add_library(lib_tgvoip STATIC) --init_target(lib_tgvoip cxx_std_11) --add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip) -+if (TDESKTOP_USE_PACKAGED_TGVOIP) -+ add_library(lib_tgvoip INTERFACE IMPORTED GLOBAL) -+ add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip) - --if (NOT APPLE) -- # On macOS if you build libtgvoip with C++17 it uses std::optional -- # instead of absl::optional and when it uses optional::value, the -- # build fails, because optional::value is available starting with -- # macOS 10.14+. This way we force using absl::optional. -- target_compile_features(lib_tgvoip PUBLIC cxx_std_17) --endif() -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(TGVOIP REQUIRED tgvoip) - --set(tgvoip_loc ${third_party_loc}/libtgvoip) -+ target_include_directories(lib_tgvoip INTERFACE ${TGVOIP_INCLUDE_DIRS}) -+ target_link_libraries(lib_tgvoip INTERFACE ${TGVOIP_LIBRARIES}) -+else() -+ add_library(lib_tgvoip STATIC) -+ init_target(lib_tgvoip cxx_std_11) -+ add_library(tdesktop::lib_tgvoip ALIAS lib_tgvoip) - --nice_target_sources(lib_tgvoip ${tgvoip_loc} --PRIVATE -- BlockingQueue.cpp -- BlockingQueue.h -- Buffers.cpp -- Buffers.h -- CongestionControl.cpp -- CongestionControl.h -- EchoCanceller.cpp -- EchoCanceller.h -- JitterBuffer.cpp -- JitterBuffer.h -- logging.cpp -- logging.h -- MediaStreamItf.cpp -- MediaStreamItf.h -- OpusDecoder.cpp -- OpusDecoder.h -- OpusEncoder.cpp -- OpusEncoder.h -- threading.h -- VoIPController.cpp -- VoIPGroupController.cpp -- VoIPController.h -- PrivateDefines.h -- VoIPServerConfig.cpp -- VoIPServerConfig.h -- audio/AudioInput.cpp -- audio/AudioInput.h -- audio/AudioOutput.cpp -- audio/AudioOutput.h -- audio/Resampler.cpp -- audio/Resampler.h -- NetworkSocket.cpp -- NetworkSocket.h -- PacketReassembler.cpp -- PacketReassembler.h -- MessageThread.cpp -- MessageThread.h -- audio/AudioIO.cpp -- audio/AudioIO.h -- video/ScreamCongestionController.cpp -- video/ScreamCongestionController.h -- video/VideoSource.cpp -- video/VideoSource.h -- video/VideoRenderer.cpp -- video/VideoRenderer.h -- json11.cpp -- json11.hpp -+ if (NOT APPLE) -+ # On macOS if you build libtgvoip with C++17 it uses std::optional -+ # instead of absl::optional and when it uses optional::value, the -+ # build fails, because optional::value is available starting with -+ # macOS 10.14+. This way we force using absl::optional. -+ target_compile_features(lib_tgvoip PUBLIC cxx_std_17) -+ endif() - -- # Windows -- os/windows/NetworkSocketWinsock.cpp -- os/windows/NetworkSocketWinsock.h -- os/windows/AudioInputWave.cpp -- os/windows/AudioInputWave.h -- os/windows/AudioOutputWave.cpp -- os/windows/AudioOutputWave.h -- os/windows/AudioOutputWASAPI.cpp -- os/windows/AudioOutputWASAPI.h -- os/windows/AudioInputWASAPI.cpp -- os/windows/AudioInputWASAPI.h -- os/windows/WindowsSpecific.cpp -- os/windows/WindowsSpecific.h -+ set(tgvoip_loc ${third_party_loc}/libtgvoip) - -- # macOS -- os/darwin/AudioInputAudioUnit.cpp -- os/darwin/AudioInputAudioUnit.h -- os/darwin/AudioOutputAudioUnit.cpp -- os/darwin/AudioOutputAudioUnit.h -- os/darwin/AudioInputAudioUnitOSX.cpp -- os/darwin/AudioInputAudioUnitOSX.h -- os/darwin/AudioOutputAudioUnitOSX.cpp -- os/darwin/AudioOutputAudioUnitOSX.h -- os/darwin/AudioUnitIO.cpp -- os/darwin/AudioUnitIO.h -- os/darwin/DarwinSpecific.mm -- os/darwin/DarwinSpecific.h -+ nice_target_sources(lib_tgvoip ${tgvoip_loc} -+ PRIVATE -+ BlockingQueue.cpp -+ BlockingQueue.h -+ Buffers.cpp -+ Buffers.h -+ CongestionControl.cpp -+ CongestionControl.h -+ EchoCanceller.cpp -+ EchoCanceller.h -+ JitterBuffer.cpp -+ JitterBuffer.h -+ logging.cpp -+ logging.h -+ MediaStreamItf.cpp -+ MediaStreamItf.h -+ OpusDecoder.cpp -+ OpusDecoder.h -+ OpusEncoder.cpp -+ OpusEncoder.h -+ threading.h -+ VoIPController.cpp -+ VoIPGroupController.cpp -+ VoIPController.h -+ PrivateDefines.h -+ VoIPServerConfig.cpp -+ VoIPServerConfig.h -+ audio/AudioInput.cpp -+ audio/AudioInput.h -+ audio/AudioOutput.cpp -+ audio/AudioOutput.h -+ audio/Resampler.cpp -+ audio/Resampler.h -+ NetworkSocket.cpp -+ NetworkSocket.h -+ PacketReassembler.cpp -+ PacketReassembler.h -+ MessageThread.cpp -+ MessageThread.h -+ audio/AudioIO.cpp -+ audio/AudioIO.h -+ video/ScreamCongestionController.cpp -+ video/ScreamCongestionController.h -+ video/VideoSource.cpp -+ video/VideoSource.h -+ video/VideoRenderer.cpp -+ video/VideoRenderer.h -+ json11.cpp -+ json11.hpp - -- # Linux -- os/linux/AudioInputALSA.cpp -- os/linux/AudioInputALSA.h -- os/linux/AudioOutputALSA.cpp -- os/linux/AudioOutputALSA.h -- os/linux/AudioOutputPulse.cpp -- os/linux/AudioOutputPulse.h -- os/linux/AudioInputPulse.cpp -- os/linux/AudioInputPulse.h -- os/linux/AudioPulse.cpp -- os/linux/AudioPulse.h -+ # Windows -+ os/windows/NetworkSocketWinsock.cpp -+ os/windows/NetworkSocketWinsock.h -+ os/windows/AudioInputWave.cpp -+ os/windows/AudioInputWave.h -+ os/windows/AudioOutputWave.cpp -+ os/windows/AudioOutputWave.h -+ os/windows/AudioOutputWASAPI.cpp -+ os/windows/AudioOutputWASAPI.h -+ os/windows/AudioInputWASAPI.cpp -+ os/windows/AudioInputWASAPI.h -+ os/windows/WindowsSpecific.cpp -+ os/windows/WindowsSpecific.h - -- # POSIX -- os/posix/NetworkSocketPosix.cpp -- os/posix/NetworkSocketPosix.h -+ # macOS -+ os/darwin/AudioInputAudioUnit.cpp -+ os/darwin/AudioInputAudioUnit.h -+ os/darwin/AudioOutputAudioUnit.cpp -+ os/darwin/AudioOutputAudioUnit.h -+ os/darwin/AudioInputAudioUnitOSX.cpp -+ os/darwin/AudioInputAudioUnitOSX.h -+ os/darwin/AudioOutputAudioUnitOSX.cpp -+ os/darwin/AudioOutputAudioUnitOSX.h -+ os/darwin/AudioUnitIO.cpp -+ os/darwin/AudioUnitIO.h -+ os/darwin/DarwinSpecific.mm -+ os/darwin/DarwinSpecific.h - -- # WebRTC APM -- webrtc_dsp/system_wrappers/include/field_trial.h -- webrtc_dsp/system_wrappers/include/cpu_features_wrapper.h -- webrtc_dsp/system_wrappers/include/asm_defines.h -- webrtc_dsp/system_wrappers/include/metrics.h -- webrtc_dsp/system_wrappers/include/compile_assert_c.h -- webrtc_dsp/system_wrappers/source/field_trial.cc -- webrtc_dsp/system_wrappers/source/metrics.cc -- webrtc_dsp/system_wrappers/source/cpu_features.cc -- webrtc_dsp/typedefs.h -- webrtc_dsp/absl/strings/internal/memutil.h -- webrtc_dsp/absl/strings/internal/memutil.cc -- webrtc_dsp/absl/strings/string_view.cc -- webrtc_dsp/absl/strings/ascii.h -- webrtc_dsp/absl/strings/ascii.cc -- webrtc_dsp/absl/strings/string_view.h -- webrtc_dsp/absl/types/optional.h -- webrtc_dsp/absl/types/bad_optional_access.h -- webrtc_dsp/absl/types/bad_optional_access.cc -- webrtc_dsp/absl/types/optional.cc -- webrtc_dsp/absl/memory/memory.h -- webrtc_dsp/absl/meta/type_traits.h -- webrtc_dsp/absl/algorithm/algorithm.h -- webrtc_dsp/absl/container/inlined_vector.h -- webrtc_dsp/absl/base/policy_checks.h -- webrtc_dsp/absl/base/port.h -- webrtc_dsp/absl/base/config.h -- webrtc_dsp/absl/base/internal/raw_logging.cc -- webrtc_dsp/absl/base/internal/throw_delegate.cc -- webrtc_dsp/absl/base/internal/invoke.h -- webrtc_dsp/absl/base/internal/inline_variable.h -- webrtc_dsp/absl/base/internal/atomic_hook.h -- webrtc_dsp/absl/base/internal/identity.h -- webrtc_dsp/absl/base/internal/raw_logging.h -- webrtc_dsp/absl/base/internal/throw_delegate.h -- webrtc_dsp/absl/base/attributes.h -- webrtc_dsp/absl/base/macros.h -- webrtc_dsp/absl/base/optimization.h -- webrtc_dsp/absl/base/log_severity.h -- webrtc_dsp/absl/utility/utility.h -- webrtc_dsp/rtc_base/string_to_number.h -- webrtc_dsp/rtc_base/constructormagic.h -- webrtc_dsp/rtc_base/race_checker.cc -- webrtc_dsp/rtc_base/strings/string_builder.h -- webrtc_dsp/rtc_base/strings/string_builder.cc -- webrtc_dsp/rtc_base/event_tracer.h -- webrtc_dsp/rtc_base/stringencode.h -- webrtc_dsp/rtc_base/memory/aligned_malloc.cc -- webrtc_dsp/rtc_base/memory/aligned_malloc.h -- webrtc_dsp/rtc_base/timeutils.cc -- webrtc_dsp/rtc_base/event.h -- webrtc_dsp/rtc_base/ignore_wundef.h -- webrtc_dsp/rtc_base/stringutils.h -- webrtc_dsp/rtc_base/arraysize.h -- webrtc_dsp/rtc_base/platform_file.cc -- webrtc_dsp/rtc_base/swap_queue.h -- webrtc_dsp/rtc_base/string_to_number.cc -- webrtc_dsp/rtc_base/trace_event.h -- webrtc_dsp/rtc_base/checks.h -- webrtc_dsp/rtc_base/deprecation.h -- webrtc_dsp/rtc_base/thread_checker_impl.cc -- webrtc_dsp/rtc_base/sanitizer.h -- webrtc_dsp/rtc_base/scoped_ref_ptr.h -- webrtc_dsp/rtc_base/logging.h -- webrtc_dsp/rtc_base/logging_mac.h -- webrtc_dsp/rtc_base/logging_mac.mm -- webrtc_dsp/rtc_base/timeutils.h -- webrtc_dsp/rtc_base/atomicops.h -- webrtc_dsp/rtc_base/stringencode.cc -- webrtc_dsp/rtc_base/stringutils.cc -- webrtc_dsp/rtc_base/checks.cc -- webrtc_dsp/rtc_base/numerics/safe_minmax.h -- webrtc_dsp/rtc_base/numerics/safe_conversions.h -- webrtc_dsp/rtc_base/numerics/safe_conversions_impl.h -- webrtc_dsp/rtc_base/numerics/safe_compare.h -- webrtc_dsp/rtc_base/system/unused.h -- webrtc_dsp/rtc_base/system/inline.h -- webrtc_dsp/rtc_base/system/ignore_warnings.h -- webrtc_dsp/rtc_base/system/asm_defines.h -- webrtc_dsp/rtc_base/system/rtc_export.h -- webrtc_dsp/rtc_base/system/arch.h -- webrtc_dsp/rtc_base/platform_thread.cc -- webrtc_dsp/rtc_base/platform_thread.h -- webrtc_dsp/rtc_base/platform_thread_types.h -- webrtc_dsp/rtc_base/protobuf_utils.h -- webrtc_dsp/rtc_base/thread_annotations.h -- webrtc_dsp/rtc_base/gtest_prod_util.h -- webrtc_dsp/rtc_base/function_view.h -- webrtc_dsp/rtc_base/criticalsection.h -- webrtc_dsp/rtc_base/criticalsection.cc -- webrtc_dsp/rtc_base/platform_thread_types.cc -- webrtc_dsp/rtc_base/refcount.h -- webrtc_dsp/rtc_base/event.cc -- webrtc_dsp/rtc_base/thread_checker_impl.h -- webrtc_dsp/rtc_base/event_tracer.cc -- webrtc_dsp/rtc_base/compile_assert_c.h -- webrtc_dsp/rtc_base/logging_webrtc.cc -- webrtc_dsp/rtc_base/type_traits.h -- webrtc_dsp/rtc_base/platform_file.h -- webrtc_dsp/rtc_base/refcounter.h -- webrtc_dsp/rtc_base/logging_mac.h -- webrtc_dsp/rtc_base/thread_checker.h -- webrtc_dsp/rtc_base/race_checker.h -- webrtc_dsp/rtc_base/refcountedobject.h -- webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc -- webrtc_dsp/third_party/rnnoise/src/rnn_activations.h -- webrtc_dsp/third_party/rnnoise/src/kiss_fft.h -- webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc -- webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.h -- webrtc_dsp/api/audio/audio_frame.cc -- webrtc_dsp/api/audio/echo_canceller3_config.h -- webrtc_dsp/api/audio/echo_control.h -- webrtc_dsp/api/audio/audio_frame.h -- webrtc_dsp/api/audio/echo_canceller3_config.cc -- webrtc_dsp/api/audio/echo_canceller3_factory.h -- webrtc_dsp/api/audio/echo_canceller3_factory.cc -- webrtc_dsp/api/array_view.h -- webrtc_dsp/modules/third_party/fft/fft.h -- webrtc_dsp/modules/third_party/fft/fft.c -- webrtc_dsp/modules/audio_coding/codecs/isac/bandwidth_info.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/include/isac.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/settings.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_float_type.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/codec.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/structs.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.h -- webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.h -- webrtc_dsp/modules/audio_processing/rms_level.cc -- webrtc_dsp/modules/audio_processing/echo_detector/moving_max.h -- webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.h -- webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.h -- webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc -- webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc -- webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc -- webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc -- webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.h -- webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.h -- webrtc_dsp/modules/audio_processing/splitting_filter.cc -- webrtc_dsp/modules/audio_processing/gain_control_impl.cc -- webrtc_dsp/modules/audio_processing/rms_level.h -- webrtc_dsp/modules/audio_processing/ns/ns_core.h -- webrtc_dsp/modules/audio_processing/ns/nsx_core.c -- webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c -- webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c -- webrtc_dsp/modules/audio_processing/ns/defines.h -- webrtc_dsp/modules/audio_processing/ns/noise_suppression.h -- webrtc_dsp/modules/audio_processing/ns/ns_core.c -- webrtc_dsp/modules/audio_processing/ns/nsx_core.h -- webrtc_dsp/modules/audio_processing/ns/windows_private.h -- webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.h -- webrtc_dsp/modules/audio_processing/ns/noise_suppression.c -- webrtc_dsp/modules/audio_processing/ns/nsx_defines.h -- webrtc_dsp/modules/audio_processing/residual_echo_detector.h -- webrtc_dsp/modules/audio_processing/audio_processing_impl.h -- webrtc_dsp/modules/audio_processing/audio_buffer.cc -- webrtc_dsp/modules/audio_processing/typing_detection.cc -- webrtc_dsp/modules/audio_processing/render_queue_item_verifier.h -- webrtc_dsp/modules/audio_processing/include/audio_generator.h -- webrtc_dsp/modules/audio_processing/include/config.h -- webrtc_dsp/modules/audio_processing/include/audio_frame_view.h -- webrtc_dsp/modules/audio_processing/include/mock_audio_processing.h -- webrtc_dsp/modules/audio_processing/include/gain_control.h -- webrtc_dsp/modules/audio_processing/include/audio_generator_factory.h -- webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc -- webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc -- webrtc_dsp/modules/audio_processing/include/aec_dump.cc -- webrtc_dsp/modules/audio_processing/include/aec_dump.h -- webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.h -- webrtc_dsp/modules/audio_processing/include/audio_processing.h -- webrtc_dsp/modules/audio_processing/include/audio_processing.cc -- webrtc_dsp/modules/audio_processing/include/config.cc -- webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.h -- webrtc_dsp/modules/audio_processing/agc2/biquad_filter.h -- webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc -- webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc -- webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.h -- webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc -- webrtc_dsp/modules/audio_processing/agc2/signal_classifier.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc -- webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc -- webrtc_dsp/modules/audio_processing/agc2/limiter.cc -- webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc -- webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/sequence_buffer.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/test_utils.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_info.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/ring_buffer.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/symmetric_matrix_buffer.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/common.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.h -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc -- webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc -- webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc -- webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc -- webrtc_dsp/modules/audio_processing/agc2/down_sampler.h -- webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc -- webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc -- webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc -- webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc -- webrtc_dsp/modules/audio_processing/agc2/saturation_protector.h -- webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc -- webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc -- webrtc_dsp/modules/audio_processing/agc2/agc2_common.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.h -- webrtc_dsp/modules/audio_processing/agc2/vad_with_level.h -- webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.h -- webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.h -- webrtc_dsp/modules/audio_processing/agc2/gain_applier.h -- webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc -- webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.h -- webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc -- webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc -- webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc -- webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.h -- webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc -- webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.h -- webrtc_dsp/modules/audio_processing/agc2/limiter.h -- webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc -- webrtc_dsp/modules/audio_processing/transient/moving_moments.cc -- webrtc_dsp/modules/audio_processing/transient/transient_detector.h -- webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc -- webrtc_dsp/modules/audio_processing/transient/transient_suppressor.h -- webrtc_dsp/modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h -- webrtc_dsp/modules/audio_processing/transient/common.h -- webrtc_dsp/modules/audio_processing/transient/wpd_node.h -- webrtc_dsp/modules/audio_processing/transient/moving_moments.h -- webrtc_dsp/modules/audio_processing/transient/wpd_tree.h -- webrtc_dsp/modules/audio_processing/transient/wpd_node.cc -- webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc -- webrtc_dsp/modules/audio_processing/transient/transient_detector.cc -- webrtc_dsp/modules/audio_processing/transient/dyadic_decimator.h -- webrtc_dsp/modules/audio_processing/low_cut_filter.cc -- webrtc_dsp/modules/audio_processing/noise_suppression_impl.h -- webrtc_dsp/modules/audio_processing/level_estimator_impl.cc -- webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc -- webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc -- webrtc_dsp/modules/audio_processing/aec/aec_resampler.h -- webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc -- webrtc_dsp/modules/audio_processing/aec/echo_cancellation.h -- webrtc_dsp/modules/audio_processing/aec/aec_core.cc -- webrtc_dsp/modules/audio_processing/aec/aec_core.h -- webrtc_dsp/modules/audio_processing/aec/aec_core_optimized_methods.h -- webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc -- webrtc_dsp/modules/audio_processing/aec/aec_common.h -- webrtc_dsp/modules/audio_processing/voice_detection_impl.h -- webrtc_dsp/modules/audio_processing/voice_detection_impl.cc -- webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc -- webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc -- webrtc_dsp/modules/audio_processing/agc/agc.cc -- webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc -- webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc -- webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.h -- webrtc_dsp/modules/audio_processing/agc/legacy/gain_control.h -- webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.h -- webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c -- webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c -- webrtc_dsp/modules/audio_processing/agc/utility.cc -- webrtc_dsp/modules/audio_processing/agc/mock_agc.h -- webrtc_dsp/modules/audio_processing/agc/loudness_histogram.h -- webrtc_dsp/modules/audio_processing/agc/gain_map_internal.h -- webrtc_dsp/modules/audio_processing/agc/utility.h -- webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.h -- webrtc_dsp/modules/audio_processing/agc/agc.h -- webrtc_dsp/modules/audio_processing/common.h -- webrtc_dsp/modules/audio_processing/audio_processing_impl.cc -- webrtc_dsp/modules/audio_processing/audio_buffer.h -- webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.h -- webrtc_dsp/modules/audio_processing/splitting_filter.h -- webrtc_dsp/modules/audio_processing/low_cut_filter.h -- webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.h -- webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc -- webrtc_dsp/modules/audio_processing/gain_controller2.cc -- webrtc_dsp/modules/audio_processing/three_band_filter_bank.h -- webrtc_dsp/modules/audio_processing/residual_echo_detector.cc -- webrtc_dsp/modules/audio_processing/echo_cancellation_impl.h -- webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc -- webrtc_dsp/modules/audio_processing/level_estimator_impl.h -- webrtc_dsp/modules/audio_processing/gain_controller2.h -- webrtc_dsp/modules/audio_processing/aecm/aecm_core.h -- webrtc_dsp/modules/audio_processing/aecm/aecm_defines.h -- webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc -- webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc -- webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.h -- webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc -- webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc -- webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.h -- webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc -- webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.h -- webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc -- webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc -- webrtc_dsp/modules/audio_processing/aec3/aec_state.h -- webrtc_dsp/modules/audio_processing/aec3/suppression_filter.h -- webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc -- webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc -- webrtc_dsp/modules/audio_processing/aec3/subtractor.cc -- webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.h -- webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.h -- webrtc_dsp/modules/audio_processing/aec3/matched_filter.h -- webrtc_dsp/modules/audio_processing/aec3/subtractor_output.h -- webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.h -- webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc -- webrtc_dsp/modules/audio_processing/aec3/aec3_fft.h -- webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.h -- webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/suppression_filter.cc -- webrtc_dsp/modules/audio_processing/aec3/block_processor.cc -- webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.h -- webrtc_dsp/modules/audio_processing/aec3/subtractor.h -- webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.h -- webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/aec_state.cc -- webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.cc -- webrtc_dsp/modules/audio_processing/aec3/fft_data.h -- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc -- webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.h -- webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.h -- webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/erl_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/echo_remover.h -- webrtc_dsp/modules/audio_processing/aec3/block_framer.cc -- webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc -- webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc -- webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc -- webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc -- webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.h -- webrtc_dsp/modules/audio_processing/aec3/moving_average.h -- webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.h -- webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc -- webrtc_dsp/modules/audio_processing/aec3/suppression_gain.cc -- webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc -- webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.h -- webrtc_dsp/modules/audio_processing/aec3/suppression_gain.h -- webrtc_dsp/modules/audio_processing/aec3/moving_average.cc -- webrtc_dsp/modules/audio_processing/aec3/erle_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc -- webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/block_processor.h -- webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/matched_filter.cc -- webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.h -- webrtc_dsp/modules/audio_processing/aec3/skew_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc -- webrtc_dsp/modules/audio_processing/aec3/render_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc -- webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc -- webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.h -- webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/vector_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.h -- webrtc_dsp/modules/audio_processing/aec3/echo_audibility.h -- webrtc_dsp/modules/audio_processing/aec3/fft_buffer.h -- webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc -- webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc -- webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/aec3_common.h -- webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc -- webrtc_dsp/modules/audio_processing/aec3/vector_math.h -- webrtc_dsp/modules/audio_processing/aec3/decimator.h -- webrtc_dsp/modules/audio_processing/aec3/frame_blocker.h -- webrtc_dsp/modules/audio_processing/aec3/block_framer.h -- webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.h -- webrtc_dsp/modules/audio_processing/aec3/delay_estimate.h -- webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_model.h -- webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.h -- webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.h -- webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc -- webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc -- webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.h -- webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc -- webrtc_dsp/modules/audio_processing/aec3/decimator.cc -- webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.h -- webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc -- webrtc_dsp/modules/audio_processing/gain_control_impl.h -- webrtc_dsp/modules/audio_processing/typing_detection.h -- webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc -- webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.h -- webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc -- webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc -- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc_internal.h -- webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc -- webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc -- webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.h -- webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.h -- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc -- webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc -- webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.h -- webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc -- webrtc_dsp/modules/audio_processing/vad/gmm.h -- webrtc_dsp/modules/audio_processing/vad/common.h -- webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.h -- webrtc_dsp/modules/audio_processing/vad/voice_gmm_tables.h -- webrtc_dsp/modules/audio_processing/vad/noise_gmm_tables.h -- webrtc_dsp/modules/audio_processing/vad/pitch_internal.h -- webrtc_dsp/modules/audio_processing/vad/gmm.cc -- webrtc_dsp/modules/audio_processing/vad/standalone_vad.h -- webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.h -- webrtc_dsp/modules/audio_processing/utility/delay_estimator_internal.h -- webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc -- webrtc_dsp/modules/audio_processing/utility/ooura_fft.h -- webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc -- webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc -- webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc -- webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.h -- webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc -- webrtc_dsp/modules/audio_processing/utility/delay_estimator.h -- webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_common.h -- webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.h -- webrtc_dsp/common_audio/mocks/mock_smoothing_filter.h -- webrtc_dsp/common_audio/wav_file.h -- webrtc_dsp/common_audio/window_generator.cc -- webrtc_dsp/common_audio/channel_buffer.cc -- webrtc_dsp/common_audio/fir_filter_factory.cc -- webrtc_dsp/common_audio/sparse_fir_filter.h -- webrtc_dsp/common_audio/fir_filter_sse.h -- webrtc_dsp/common_audio/window_generator.h -- webrtc_dsp/common_audio/ring_buffer.h -- webrtc_dsp/common_audio/fir_filter.h -- webrtc_dsp/common_audio/include/audio_util.h -- webrtc_dsp/common_audio/wav_header.cc -- webrtc_dsp/common_audio/real_fourier_ooura.cc -- webrtc_dsp/common_audio/audio_util.cc -- webrtc_dsp/common_audio/real_fourier_ooura.h -- webrtc_dsp/common_audio/fir_filter_sse.cc -- webrtc_dsp/common_audio/smoothing_filter.h -- webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc -- webrtc_dsp/common_audio/resampler/sinc_resampler.h -- webrtc_dsp/common_audio/resampler/resampler.cc -- webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc -- webrtc_dsp/common_audio/resampler/include/push_resampler.h -- webrtc_dsp/common_audio/resampler/include/resampler.h -- webrtc_dsp/common_audio/resampler/push_sinc_resampler.h -- webrtc_dsp/common_audio/resampler/push_resampler.cc -- webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.h -- webrtc_dsp/common_audio/resampler/sinc_resampler.cc -- webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc -- webrtc_dsp/common_audio/fir_filter_factory.h -- webrtc_dsp/common_audio/audio_converter.h -- webrtc_dsp/common_audio/wav_file.cc -- webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c -- webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.h -- webrtc_dsp/common_audio/third_party/fft4g/fft4g.c -- webrtc_dsp/common_audio/third_party/fft4g/fft4g.h -- webrtc_dsp/common_audio/audio_converter.cc -- webrtc_dsp/common_audio/real_fourier.cc -- webrtc_dsp/common_audio/channel_buffer.h -- webrtc_dsp/common_audio/real_fourier.h -- webrtc_dsp/common_audio/sparse_fir_filter.cc -- webrtc_dsp/common_audio/smoothing_filter.cc -- webrtc_dsp/common_audio/fir_filter_c.cc -- webrtc_dsp/common_audio/ring_buffer.c -- webrtc_dsp/common_audio/fir_filter_c.h -- webrtc_dsp/common_audio/signal_processing/complex_fft_tables.h -- webrtc_dsp/common_audio/signal_processing/complex_fft.c -- webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c -- webrtc_dsp/common_audio/signal_processing/levinson_durbin.c -- webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc -- webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c -- webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c -- webrtc_dsp/common_audio/signal_processing/energy.c -- webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c -- webrtc_dsp/common_audio/signal_processing/downsample_fast.c -- webrtc_dsp/common_audio/signal_processing/splitting_filter1.c -- webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c -- webrtc_dsp/common_audio/signal_processing/spl_init.c -- webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c -- webrtc_dsp/common_audio/signal_processing/cross_correlation.c -- webrtc_dsp/common_audio/signal_processing/include/signal_processing_library.h -- webrtc_dsp/common_audio/signal_processing/include/real_fft.h -- webrtc_dsp/common_audio/signal_processing/include/spl_inl.h -- webrtc_dsp/common_audio/signal_processing/division_operations.c -- webrtc_dsp/common_audio/signal_processing/auto_correlation.c -- webrtc_dsp/common_audio/signal_processing/get_scaling_square.c -- webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.h -- webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.h -- webrtc_dsp/common_audio/signal_processing/resample.c -- webrtc_dsp/common_audio/signal_processing/min_max_operations.c -- webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c -- webrtc_dsp/common_audio/signal_processing/filter_ar.c -- webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c -- webrtc_dsp/common_audio/signal_processing/resample_fractional.c -- webrtc_dsp/common_audio/signal_processing/real_fft.c -- webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c -- webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c -- webrtc_dsp/common_audio/signal_processing/randomization_functions.c -- webrtc_dsp/common_audio/signal_processing/copy_set_operations.c -- webrtc_dsp/common_audio/signal_processing/resample_by_2.c -- webrtc_dsp/common_audio/signal_processing/get_hanning_window.c -- webrtc_dsp/common_audio/signal_processing/resample_48khz.c -- webrtc_dsp/common_audio/signal_processing/spl_inl.c -- webrtc_dsp/common_audio/signal_processing/spl_sqrt.c -- webrtc_dsp/common_audio/wav_header.h -- webrtc_dsp/common_audio/vad/vad_sp.c -- webrtc_dsp/common_audio/vad/vad.cc -- webrtc_dsp/common_audio/vad/webrtc_vad.c -- webrtc_dsp/common_audio/vad/vad_core.h -- webrtc_dsp/common_audio/vad/include/vad.h -- webrtc_dsp/common_audio/vad/include/webrtc_vad.h -- webrtc_dsp/common_audio/vad/vad_gmm.h -- webrtc_dsp/common_audio/vad/vad_filterbank.c -- webrtc_dsp/common_audio/vad/vad_core.c -- webrtc_dsp/common_audio/vad/vad_sp.h -- webrtc_dsp/common_audio/vad/vad_filterbank.h -- webrtc_dsp/common_audio/vad/vad_gmm.c -+ # Linux -+ os/linux/AudioInputALSA.cpp -+ os/linux/AudioInputALSA.h -+ os/linux/AudioOutputALSA.cpp -+ os/linux/AudioOutputALSA.h -+ os/linux/AudioOutputPulse.cpp -+ os/linux/AudioOutputPulse.h -+ os/linux/AudioInputPulse.cpp -+ os/linux/AudioInputPulse.h -+ os/linux/AudioPulse.cpp -+ os/linux/AudioPulse.h - -- # ARM/NEON sources -- # TODO check if there's a good way to make these compile with ARM ports of TDesktop -- # webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c -- # webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc -- # webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc -- # webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_neon_sse2.h -- # webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc -- # webrtc_dsp/common_audio/fir_filter_neon.cc -- # webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc -- # webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S -- # webrtc_dsp/common_audio/fir_filter_neon.h -- # webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c -- # webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S -- # webrtc_dsp/common_audio/signal_processing/include/spl_inl_armv7.h -- # webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c -- # webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c -- # webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S --) -+ # POSIX -+ os/posix/NetworkSocketPosix.cpp -+ os/posix/NetworkSocketPosix.h - --target_compile_definitions(lib_tgvoip --PUBLIC -- WEBRTC_APM_DEBUG_DUMP=0 -- TGVOIP_USE_DESKTOP_DSP -- WEBRTC_NS_FLOAT --) -+ # WebRTC APM -+ webrtc_dsp/system_wrappers/include/field_trial.h -+ webrtc_dsp/system_wrappers/include/cpu_features_wrapper.h -+ webrtc_dsp/system_wrappers/include/asm_defines.h -+ webrtc_dsp/system_wrappers/include/metrics.h -+ webrtc_dsp/system_wrappers/include/compile_assert_c.h -+ webrtc_dsp/system_wrappers/source/field_trial.cc -+ webrtc_dsp/system_wrappers/source/metrics.cc -+ webrtc_dsp/system_wrappers/source/cpu_features.cc -+ webrtc_dsp/typedefs.h -+ webrtc_dsp/absl/strings/internal/memutil.h -+ webrtc_dsp/absl/strings/internal/memutil.cc -+ webrtc_dsp/absl/strings/string_view.cc -+ webrtc_dsp/absl/strings/ascii.h -+ webrtc_dsp/absl/strings/ascii.cc -+ webrtc_dsp/absl/strings/string_view.h -+ webrtc_dsp/absl/types/optional.h -+ webrtc_dsp/absl/types/bad_optional_access.h -+ webrtc_dsp/absl/types/bad_optional_access.cc -+ webrtc_dsp/absl/types/optional.cc -+ webrtc_dsp/absl/memory/memory.h -+ webrtc_dsp/absl/meta/type_traits.h -+ webrtc_dsp/absl/algorithm/algorithm.h -+ webrtc_dsp/absl/container/inlined_vector.h -+ webrtc_dsp/absl/base/policy_checks.h -+ webrtc_dsp/absl/base/port.h -+ webrtc_dsp/absl/base/config.h -+ webrtc_dsp/absl/base/internal/raw_logging.cc -+ webrtc_dsp/absl/base/internal/throw_delegate.cc -+ webrtc_dsp/absl/base/internal/invoke.h -+ webrtc_dsp/absl/base/internal/inline_variable.h -+ webrtc_dsp/absl/base/internal/atomic_hook.h -+ webrtc_dsp/absl/base/internal/identity.h -+ webrtc_dsp/absl/base/internal/raw_logging.h -+ webrtc_dsp/absl/base/internal/throw_delegate.h -+ webrtc_dsp/absl/base/attributes.h -+ webrtc_dsp/absl/base/macros.h -+ webrtc_dsp/absl/base/optimization.h -+ webrtc_dsp/absl/base/log_severity.h -+ webrtc_dsp/absl/utility/utility.h -+ webrtc_dsp/rtc_base/string_to_number.h -+ webrtc_dsp/rtc_base/constructormagic.h -+ webrtc_dsp/rtc_base/race_checker.cc -+ webrtc_dsp/rtc_base/strings/string_builder.h -+ webrtc_dsp/rtc_base/strings/string_builder.cc -+ webrtc_dsp/rtc_base/event_tracer.h -+ webrtc_dsp/rtc_base/stringencode.h -+ webrtc_dsp/rtc_base/memory/aligned_malloc.cc -+ webrtc_dsp/rtc_base/memory/aligned_malloc.h -+ webrtc_dsp/rtc_base/timeutils.cc -+ webrtc_dsp/rtc_base/event.h -+ webrtc_dsp/rtc_base/ignore_wundef.h -+ webrtc_dsp/rtc_base/stringutils.h -+ webrtc_dsp/rtc_base/arraysize.h -+ webrtc_dsp/rtc_base/platform_file.cc -+ webrtc_dsp/rtc_base/swap_queue.h -+ webrtc_dsp/rtc_base/string_to_number.cc -+ webrtc_dsp/rtc_base/trace_event.h -+ webrtc_dsp/rtc_base/checks.h -+ webrtc_dsp/rtc_base/deprecation.h -+ webrtc_dsp/rtc_base/thread_checker_impl.cc -+ webrtc_dsp/rtc_base/sanitizer.h -+ webrtc_dsp/rtc_base/scoped_ref_ptr.h -+ webrtc_dsp/rtc_base/logging.h -+ webrtc_dsp/rtc_base/logging_mac.h -+ webrtc_dsp/rtc_base/logging_mac.mm -+ webrtc_dsp/rtc_base/timeutils.h -+ webrtc_dsp/rtc_base/atomicops.h -+ webrtc_dsp/rtc_base/stringencode.cc -+ webrtc_dsp/rtc_base/stringutils.cc -+ webrtc_dsp/rtc_base/checks.cc -+ webrtc_dsp/rtc_base/numerics/safe_minmax.h -+ webrtc_dsp/rtc_base/numerics/safe_conversions.h -+ webrtc_dsp/rtc_base/numerics/safe_conversions_impl.h -+ webrtc_dsp/rtc_base/numerics/safe_compare.h -+ webrtc_dsp/rtc_base/system/unused.h -+ webrtc_dsp/rtc_base/system/inline.h -+ webrtc_dsp/rtc_base/system/ignore_warnings.h -+ webrtc_dsp/rtc_base/system/asm_defines.h -+ webrtc_dsp/rtc_base/system/rtc_export.h -+ webrtc_dsp/rtc_base/system/arch.h -+ webrtc_dsp/rtc_base/platform_thread.cc -+ webrtc_dsp/rtc_base/platform_thread.h -+ webrtc_dsp/rtc_base/platform_thread_types.h -+ webrtc_dsp/rtc_base/protobuf_utils.h -+ webrtc_dsp/rtc_base/thread_annotations.h -+ webrtc_dsp/rtc_base/gtest_prod_util.h -+ webrtc_dsp/rtc_base/function_view.h -+ webrtc_dsp/rtc_base/criticalsection.h -+ webrtc_dsp/rtc_base/criticalsection.cc -+ webrtc_dsp/rtc_base/platform_thread_types.cc -+ webrtc_dsp/rtc_base/refcount.h -+ webrtc_dsp/rtc_base/event.cc -+ webrtc_dsp/rtc_base/thread_checker_impl.h -+ webrtc_dsp/rtc_base/event_tracer.cc -+ webrtc_dsp/rtc_base/compile_assert_c.h -+ webrtc_dsp/rtc_base/logging_webrtc.cc -+ webrtc_dsp/rtc_base/type_traits.h -+ webrtc_dsp/rtc_base/platform_file.h -+ webrtc_dsp/rtc_base/refcounter.h -+ webrtc_dsp/rtc_base/logging_mac.h -+ webrtc_dsp/rtc_base/thread_checker.h -+ webrtc_dsp/rtc_base/race_checker.h -+ webrtc_dsp/rtc_base/refcountedobject.h -+ webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc -+ webrtc_dsp/third_party/rnnoise/src/rnn_activations.h -+ webrtc_dsp/third_party/rnnoise/src/kiss_fft.h -+ webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc -+ webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.h -+ webrtc_dsp/api/audio/audio_frame.cc -+ webrtc_dsp/api/audio/echo_canceller3_config.h -+ webrtc_dsp/api/audio/echo_control.h -+ webrtc_dsp/api/audio/audio_frame.h -+ webrtc_dsp/api/audio/echo_canceller3_config.cc -+ webrtc_dsp/api/audio/echo_canceller3_factory.h -+ webrtc_dsp/api/audio/echo_canceller3_factory.cc -+ webrtc_dsp/api/array_view.h -+ webrtc_dsp/modules/third_party/fft/fft.h -+ webrtc_dsp/modules/third_party/fft/fft.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/bandwidth_info.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/include/isac.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/settings.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_float_type.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/codec.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/structs.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.h -+ webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.h -+ webrtc_dsp/modules/audio_processing/rms_level.cc -+ webrtc_dsp/modules/audio_processing/echo_detector/moving_max.h -+ webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.h -+ webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.h -+ webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc -+ webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc -+ webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc -+ webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc -+ webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.h -+ webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.h -+ webrtc_dsp/modules/audio_processing/splitting_filter.cc -+ webrtc_dsp/modules/audio_processing/gain_control_impl.cc -+ webrtc_dsp/modules/audio_processing/rms_level.h -+ webrtc_dsp/modules/audio_processing/ns/ns_core.h -+ webrtc_dsp/modules/audio_processing/ns/nsx_core.c -+ webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c -+ webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c -+ webrtc_dsp/modules/audio_processing/ns/defines.h -+ webrtc_dsp/modules/audio_processing/ns/noise_suppression.h -+ webrtc_dsp/modules/audio_processing/ns/ns_core.c -+ webrtc_dsp/modules/audio_processing/ns/nsx_core.h -+ webrtc_dsp/modules/audio_processing/ns/windows_private.h -+ webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.h -+ webrtc_dsp/modules/audio_processing/ns/noise_suppression.c -+ webrtc_dsp/modules/audio_processing/ns/nsx_defines.h -+ webrtc_dsp/modules/audio_processing/residual_echo_detector.h -+ webrtc_dsp/modules/audio_processing/audio_processing_impl.h -+ webrtc_dsp/modules/audio_processing/audio_buffer.cc -+ webrtc_dsp/modules/audio_processing/typing_detection.cc -+ webrtc_dsp/modules/audio_processing/render_queue_item_verifier.h -+ webrtc_dsp/modules/audio_processing/include/audio_generator.h -+ webrtc_dsp/modules/audio_processing/include/config.h -+ webrtc_dsp/modules/audio_processing/include/audio_frame_view.h -+ webrtc_dsp/modules/audio_processing/include/mock_audio_processing.h -+ webrtc_dsp/modules/audio_processing/include/gain_control.h -+ webrtc_dsp/modules/audio_processing/include/audio_generator_factory.h -+ webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc -+ webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc -+ webrtc_dsp/modules/audio_processing/include/aec_dump.cc -+ webrtc_dsp/modules/audio_processing/include/aec_dump.h -+ webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.h -+ webrtc_dsp/modules/audio_processing/include/audio_processing.h -+ webrtc_dsp/modules/audio_processing/include/audio_processing.cc -+ webrtc_dsp/modules/audio_processing/include/config.cc -+ webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.h -+ webrtc_dsp/modules/audio_processing/agc2/biquad_filter.h -+ webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc -+ webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc -+ webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.h -+ webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc -+ webrtc_dsp/modules/audio_processing/agc2/signal_classifier.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc -+ webrtc_dsp/modules/audio_processing/agc2/limiter.cc -+ webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc -+ webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/sequence_buffer.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/test_utils.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_info.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/ring_buffer.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/symmetric_matrix_buffer.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/common.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.h -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc -+ webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc -+ webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc -+ webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc -+ webrtc_dsp/modules/audio_processing/agc2/down_sampler.h -+ webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc -+ webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc -+ webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc -+ webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc -+ webrtc_dsp/modules/audio_processing/agc2/saturation_protector.h -+ webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc -+ webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc -+ webrtc_dsp/modules/audio_processing/agc2/agc2_common.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.h -+ webrtc_dsp/modules/audio_processing/agc2/vad_with_level.h -+ webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.h -+ webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.h -+ webrtc_dsp/modules/audio_processing/agc2/gain_applier.h -+ webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc -+ webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.h -+ webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc -+ webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc -+ webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc -+ webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.h -+ webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc -+ webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.h -+ webrtc_dsp/modules/audio_processing/agc2/limiter.h -+ webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc -+ webrtc_dsp/modules/audio_processing/transient/moving_moments.cc -+ webrtc_dsp/modules/audio_processing/transient/transient_detector.h -+ webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc -+ webrtc_dsp/modules/audio_processing/transient/transient_suppressor.h -+ webrtc_dsp/modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h -+ webrtc_dsp/modules/audio_processing/transient/common.h -+ webrtc_dsp/modules/audio_processing/transient/wpd_node.h -+ webrtc_dsp/modules/audio_processing/transient/moving_moments.h -+ webrtc_dsp/modules/audio_processing/transient/wpd_tree.h -+ webrtc_dsp/modules/audio_processing/transient/wpd_node.cc -+ webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc -+ webrtc_dsp/modules/audio_processing/transient/transient_detector.cc -+ webrtc_dsp/modules/audio_processing/transient/dyadic_decimator.h -+ webrtc_dsp/modules/audio_processing/low_cut_filter.cc -+ webrtc_dsp/modules/audio_processing/noise_suppression_impl.h -+ webrtc_dsp/modules/audio_processing/level_estimator_impl.cc -+ webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc -+ webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc -+ webrtc_dsp/modules/audio_processing/aec/aec_resampler.h -+ webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc -+ webrtc_dsp/modules/audio_processing/aec/echo_cancellation.h -+ webrtc_dsp/modules/audio_processing/aec/aec_core.cc -+ webrtc_dsp/modules/audio_processing/aec/aec_core.h -+ webrtc_dsp/modules/audio_processing/aec/aec_core_optimized_methods.h -+ webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc -+ webrtc_dsp/modules/audio_processing/aec/aec_common.h -+ webrtc_dsp/modules/audio_processing/voice_detection_impl.h -+ webrtc_dsp/modules/audio_processing/voice_detection_impl.cc -+ webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc -+ webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc -+ webrtc_dsp/modules/audio_processing/agc/agc.cc -+ webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc -+ webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc -+ webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.h -+ webrtc_dsp/modules/audio_processing/agc/legacy/gain_control.h -+ webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.h -+ webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c -+ webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c -+ webrtc_dsp/modules/audio_processing/agc/utility.cc -+ webrtc_dsp/modules/audio_processing/agc/mock_agc.h -+ webrtc_dsp/modules/audio_processing/agc/loudness_histogram.h -+ webrtc_dsp/modules/audio_processing/agc/gain_map_internal.h -+ webrtc_dsp/modules/audio_processing/agc/utility.h -+ webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.h -+ webrtc_dsp/modules/audio_processing/agc/agc.h -+ webrtc_dsp/modules/audio_processing/common.h -+ webrtc_dsp/modules/audio_processing/audio_processing_impl.cc -+ webrtc_dsp/modules/audio_processing/audio_buffer.h -+ webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.h -+ webrtc_dsp/modules/audio_processing/splitting_filter.h -+ webrtc_dsp/modules/audio_processing/low_cut_filter.h -+ webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.h -+ webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc -+ webrtc_dsp/modules/audio_processing/gain_controller2.cc -+ webrtc_dsp/modules/audio_processing/three_band_filter_bank.h -+ webrtc_dsp/modules/audio_processing/residual_echo_detector.cc -+ webrtc_dsp/modules/audio_processing/echo_cancellation_impl.h -+ webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc -+ webrtc_dsp/modules/audio_processing/level_estimator_impl.h -+ webrtc_dsp/modules/audio_processing/gain_controller2.h -+ webrtc_dsp/modules/audio_processing/aecm/aecm_core.h -+ webrtc_dsp/modules/audio_processing/aecm/aecm_defines.h -+ webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc -+ webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc -+ webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.h -+ webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc -+ webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.h -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc -+ webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc -+ webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc -+ webrtc_dsp/modules/audio_processing/aec3/aec_state.h -+ webrtc_dsp/modules/audio_processing/aec3/suppression_filter.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc -+ webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc -+ webrtc_dsp/modules/audio_processing/aec3/subtractor.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.h -+ webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.h -+ webrtc_dsp/modules/audio_processing/aec3/matched_filter.h -+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output.h -+ webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.h -+ webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc -+ webrtc_dsp/modules/audio_processing/aec3/aec3_fft.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.h -+ webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/suppression_filter.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_processor.cc -+ webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.h -+ webrtc_dsp/modules/audio_processing/aec3/subtractor.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.h -+ webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/aec_state.cc -+ webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.cc -+ webrtc_dsp/modules/audio_processing/aec3/fft_data.h -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc -+ webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.h -+ webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/erl_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_remover.h -+ webrtc_dsp/modules/audio_processing/aec3/block_framer.cc -+ webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc -+ webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc -+ webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc -+ webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc -+ webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.h -+ webrtc_dsp/modules/audio_processing/aec3/moving_average.h -+ webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.h -+ webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc -+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain.cc -+ webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.h -+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain.h -+ webrtc_dsp/modules/audio_processing/aec3/moving_average.cc -+ webrtc_dsp/modules/audio_processing/aec3/erle_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc -+ webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_processor.h -+ webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/matched_filter.cc -+ webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.h -+ webrtc_dsp/modules/audio_processing/aec3/skew_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc -+ webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc -+ webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.h -+ webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/vector_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.h -+ webrtc_dsp/modules/audio_processing/aec3/echo_audibility.h -+ webrtc_dsp/modules/audio_processing/aec3/fft_buffer.h -+ webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc -+ webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc -+ webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/aec3_common.h -+ webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc -+ webrtc_dsp/modules/audio_processing/aec3/vector_math.h -+ webrtc_dsp/modules/audio_processing/aec3/decimator.h -+ webrtc_dsp/modules/audio_processing/aec3/frame_blocker.h -+ webrtc_dsp/modules/audio_processing/aec3/block_framer.h -+ webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.h -+ webrtc_dsp/modules/audio_processing/aec3/delay_estimate.h -+ webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_model.h -+ webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.h -+ webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.h -+ webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc -+ webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc -+ webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.h -+ webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc -+ webrtc_dsp/modules/audio_processing/aec3/decimator.cc -+ webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.h -+ webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc -+ webrtc_dsp/modules/audio_processing/gain_control_impl.h -+ webrtc_dsp/modules/audio_processing/typing_detection.h -+ webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc -+ webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.h -+ webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc -+ webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc -+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc_internal.h -+ webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc -+ webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc -+ webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.h -+ webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.h -+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc -+ webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc -+ webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.h -+ webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc -+ webrtc_dsp/modules/audio_processing/vad/gmm.h -+ webrtc_dsp/modules/audio_processing/vad/common.h -+ webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.h -+ webrtc_dsp/modules/audio_processing/vad/voice_gmm_tables.h -+ webrtc_dsp/modules/audio_processing/vad/noise_gmm_tables.h -+ webrtc_dsp/modules/audio_processing/vad/pitch_internal.h -+ webrtc_dsp/modules/audio_processing/vad/gmm.cc -+ webrtc_dsp/modules/audio_processing/vad/standalone_vad.h -+ webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.h -+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_internal.h -+ webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc -+ webrtc_dsp/modules/audio_processing/utility/ooura_fft.h -+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc -+ webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc -+ webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc -+ webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.h -+ webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc -+ webrtc_dsp/modules/audio_processing/utility/delay_estimator.h -+ webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_common.h -+ webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.h -+ webrtc_dsp/common_audio/mocks/mock_smoothing_filter.h -+ webrtc_dsp/common_audio/wav_file.h -+ webrtc_dsp/common_audio/window_generator.cc -+ webrtc_dsp/common_audio/channel_buffer.cc -+ webrtc_dsp/common_audio/fir_filter_factory.cc -+ webrtc_dsp/common_audio/sparse_fir_filter.h -+ webrtc_dsp/common_audio/fir_filter_sse.h -+ webrtc_dsp/common_audio/window_generator.h -+ webrtc_dsp/common_audio/ring_buffer.h -+ webrtc_dsp/common_audio/fir_filter.h -+ webrtc_dsp/common_audio/include/audio_util.h -+ webrtc_dsp/common_audio/wav_header.cc -+ webrtc_dsp/common_audio/real_fourier_ooura.cc -+ webrtc_dsp/common_audio/audio_util.cc -+ webrtc_dsp/common_audio/real_fourier_ooura.h -+ webrtc_dsp/common_audio/fir_filter_sse.cc -+ webrtc_dsp/common_audio/smoothing_filter.h -+ webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc -+ webrtc_dsp/common_audio/resampler/sinc_resampler.h -+ webrtc_dsp/common_audio/resampler/resampler.cc -+ webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc -+ webrtc_dsp/common_audio/resampler/include/push_resampler.h -+ webrtc_dsp/common_audio/resampler/include/resampler.h -+ webrtc_dsp/common_audio/resampler/push_sinc_resampler.h -+ webrtc_dsp/common_audio/resampler/push_resampler.cc -+ webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.h -+ webrtc_dsp/common_audio/resampler/sinc_resampler.cc -+ webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc -+ webrtc_dsp/common_audio/fir_filter_factory.h -+ webrtc_dsp/common_audio/audio_converter.h -+ webrtc_dsp/common_audio/wav_file.cc -+ webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c -+ webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.h -+ webrtc_dsp/common_audio/third_party/fft4g/fft4g.c -+ webrtc_dsp/common_audio/third_party/fft4g/fft4g.h -+ webrtc_dsp/common_audio/audio_converter.cc -+ webrtc_dsp/common_audio/real_fourier.cc -+ webrtc_dsp/common_audio/channel_buffer.h -+ webrtc_dsp/common_audio/real_fourier.h -+ webrtc_dsp/common_audio/sparse_fir_filter.cc -+ webrtc_dsp/common_audio/smoothing_filter.cc -+ webrtc_dsp/common_audio/fir_filter_c.cc -+ webrtc_dsp/common_audio/ring_buffer.c -+ webrtc_dsp/common_audio/fir_filter_c.h -+ webrtc_dsp/common_audio/signal_processing/complex_fft_tables.h -+ webrtc_dsp/common_audio/signal_processing/complex_fft.c -+ webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c -+ webrtc_dsp/common_audio/signal_processing/levinson_durbin.c -+ webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc -+ webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c -+ webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c -+ webrtc_dsp/common_audio/signal_processing/energy.c -+ webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c -+ webrtc_dsp/common_audio/signal_processing/downsample_fast.c -+ webrtc_dsp/common_audio/signal_processing/splitting_filter1.c -+ webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c -+ webrtc_dsp/common_audio/signal_processing/spl_init.c -+ webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c -+ webrtc_dsp/common_audio/signal_processing/cross_correlation.c -+ webrtc_dsp/common_audio/signal_processing/include/signal_processing_library.h -+ webrtc_dsp/common_audio/signal_processing/include/real_fft.h -+ webrtc_dsp/common_audio/signal_processing/include/spl_inl.h -+ webrtc_dsp/common_audio/signal_processing/division_operations.c -+ webrtc_dsp/common_audio/signal_processing/auto_correlation.c -+ webrtc_dsp/common_audio/signal_processing/get_scaling_square.c -+ webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.h -+ webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.h -+ webrtc_dsp/common_audio/signal_processing/resample.c -+ webrtc_dsp/common_audio/signal_processing/min_max_operations.c -+ webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c -+ webrtc_dsp/common_audio/signal_processing/filter_ar.c -+ webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c -+ webrtc_dsp/common_audio/signal_processing/resample_fractional.c -+ webrtc_dsp/common_audio/signal_processing/real_fft.c -+ webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c -+ webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c -+ webrtc_dsp/common_audio/signal_processing/randomization_functions.c -+ webrtc_dsp/common_audio/signal_processing/copy_set_operations.c -+ webrtc_dsp/common_audio/signal_processing/resample_by_2.c -+ webrtc_dsp/common_audio/signal_processing/get_hanning_window.c -+ webrtc_dsp/common_audio/signal_processing/resample_48khz.c -+ webrtc_dsp/common_audio/signal_processing/spl_inl.c -+ webrtc_dsp/common_audio/signal_processing/spl_sqrt.c -+ webrtc_dsp/common_audio/wav_header.h -+ webrtc_dsp/common_audio/vad/vad_sp.c -+ webrtc_dsp/common_audio/vad/vad.cc -+ webrtc_dsp/common_audio/vad/webrtc_vad.c -+ webrtc_dsp/common_audio/vad/vad_core.h -+ webrtc_dsp/common_audio/vad/include/vad.h -+ webrtc_dsp/common_audio/vad/include/webrtc_vad.h -+ webrtc_dsp/common_audio/vad/vad_gmm.h -+ webrtc_dsp/common_audio/vad/vad_filterbank.c -+ webrtc_dsp/common_audio/vad/vad_core.c -+ webrtc_dsp/common_audio/vad/vad_sp.h -+ webrtc_dsp/common_audio/vad/vad_filterbank.h -+ webrtc_dsp/common_audio/vad/vad_gmm.c - --if (WIN32) -- target_compile_options(lib_tgvoip -- PRIVATE -- /wd4005 -- /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc) -- ) -- target_compile_definitions(lib_tgvoip -- PUBLIC -- WEBRTC_WIN -+ # ARM/NEON sources -+ # TODO check if there's a good way to make these compile with ARM ports of TDesktop -+ # webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c -+ # webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc -+ # webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc -+ # webrtc_dsp/modules/audio_processing/utility/ooura_fft_tables_neon_sse2.h -+ # webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc -+ # webrtc_dsp/common_audio/fir_filter_neon.cc -+ # webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc -+ # webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S -+ # webrtc_dsp/common_audio/fir_filter_neon.h -+ # webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c -+ # webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S -+ # webrtc_dsp/common_audio/signal_processing/include/spl_inl_armv7.h -+ # webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c -+ # webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c -+ # webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S - ) --elseif (APPLE) -+ - target_compile_definitions(lib_tgvoip - PUBLIC -- WEBRTC_POSIX -- WEBRTC_MAC -- TARGET_OS_OSX -- TARGET_OSX -+ WEBRTC_APM_DEBUG_DUMP=0 -+ TGVOIP_USE_DESKTOP_DSP -+ WEBRTC_NS_FLOAT - ) -- if (build_macstore) -+ -+ if (WIN32) -+ target_compile_options(lib_tgvoip -+ PRIVATE -+ /wd4005 -+ /wd4244 # conversion from 'int' to 'float', possible loss of data (several in webrtc) -+ ) -+ target_compile_definitions(lib_tgvoip -+ PUBLIC -+ WEBRTC_WIN -+ ) -+ elseif (APPLE) -+ target_compile_definitions(lib_tgvoip -+ PUBLIC -+ WEBRTC_POSIX -+ WEBRTC_MAC -+ TARGET_OS_OSX -+ TARGET_OSX -+ ) -+ if (build_macstore) -+ target_compile_definitions(lib_tgvoip -+ PUBLIC -+ TGVOIP_NO_OSX_PRIVATE_API -+ ) -+ endif() -+ else() -+ target_compile_options(lib_tgvoip -+ PRIVATE -+ -Wno-unknown-pragmas -+ -Wno-error=sequence-point -+ -Wno-error=unused-result -+ ) -+ if (build_linux32) -+ target_compile_options(lib_tgvoip PRIVATE -msse2) -+ endif() - target_compile_definitions(lib_tgvoip - PUBLIC -- TGVOIP_NO_OSX_PRIVATE_API -+ WEBRTC_POSIX -+ WEBRTC_LINUX - ) - endif() --else() -- target_compile_options(lib_tgvoip -- PRIVATE -- -Wno-unknown-pragmas -- -Wno-error=sequence-point -- -Wno-error=unused-result -- ) -- if (build_linux32) -- target_compile_options(lib_tgvoip PRIVATE -msse2) -+ -+ if (NOT WIN32) -+ target_compile_definitions(lib_tgvoip PRIVATE TGVOIP_USE_INSTALLED_OPUS) - endif() -- target_compile_definitions(lib_tgvoip -+ -+ target_include_directories(lib_tgvoip - PUBLIC -- WEBRTC_POSIX -- WEBRTC_LINUX -+ ${tgvoip_loc} -+ PRIVATE -+ ${tgvoip_loc}/webrtc_dsp - ) --endif() - --if (NOT WIN32) -- target_compile_definitions(lib_tgvoip PRIVATE TGVOIP_USE_INSTALLED_OPUS) -+ target_link_libraries(lib_tgvoip -+ PRIVATE -+ desktop-app::external_openssl -+ desktop-app::external_opus -+ ) - endif() -- --target_include_directories(lib_tgvoip --PUBLIC -- ${tgvoip_loc} --PRIVATE -- ${tgvoip_loc}/webrtc_dsp --) -- --target_link_libraries(lib_tgvoip --PRIVATE -- desktop-app::external_openssl -- desktop-app::external_opus --) -diff --git a/Telegram/cmake/telegram_options.cmake b/Telegram/cmake/telegram_options.cmake -index cb721e590..6ba0579c1 100644 ---- a/Telegram/cmake/telegram_options.cmake -+++ b/Telegram/cmake/telegram_options.cmake -@@ -9,6 +9,7 @@ option(TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME "Disable automatic 'tg://' URL sc - option(TDESKTOP_DISABLE_NETWORK_PROXY "Disable all code for working through Socks5 or MTProxy." OFF) - option(TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION "Disable automatic '.desktop' file generation (Linux only)." OFF) - option(TDESKTOP_DISABLE_GTK_INTEGRATION "Disable all code for GTK integration (Linux only)." OFF) -+option(TDESKTOP_USE_PACKAGED_TGVOIP "Find libtgvoip using CMake instead of bundled one." ${DESKTOP_APP_USE_PACKAGED}) - option(TDESKTOP_API_TEST "Use test API credentials." OFF) - set(TDESKTOP_API_ID "0" CACHE STRING "Provide 'api_id' for the Telegram API access.") - set(TDESKTOP_API_HASH "" CACHE STRING "Provide 'api_hash' for the Telegram API access.") -Submodule cmake contains modified content -diff --git a/cmake/external/crash_reports/CMakeLists.txt b/cmake/external/crash_reports/CMakeLists.txt -index a741bcb..90eae86 100644 ---- a/cmake/external/crash_reports/CMakeLists.txt -+++ b/cmake/external/crash_reports/CMakeLists.txt -@@ -7,16 +7,18 @@ - add_library(external_crash_reports INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_crash_reports ALIAS external_crash_reports) - --if (WIN32 OR LINUX OR build_macstore) -- add_subdirectory(breakpad) -- target_link_libraries(external_crash_reports -- INTERFACE -- desktop-app::external_breakpad -- ) --else() -- add_subdirectory(crashpad) -- target_link_libraries(external_crash_reports -- INTERFACE -- desktop-app::external_crashpad -- ) -+if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) -+ if (WIN32 OR LINUX OR build_macstore) -+ add_subdirectory(breakpad) -+ target_link_libraries(external_crash_reports -+ INTERFACE -+ desktop-app::external_breakpad -+ ) -+ else() -+ add_subdirectory(crashpad) -+ target_link_libraries(external_crash_reports -+ INTERFACE -+ desktop-app::external_crashpad -+ ) -+ endif() - endif() -diff --git a/cmake/external/ffmpeg/CMakeLists.txt b/cmake/external/ffmpeg/CMakeLists.txt -index 014fb06..843ca09 100644 ---- a/cmake/external/ffmpeg/CMakeLists.txt -+++ b/cmake/external/ffmpeg/CMakeLists.txt -@@ -7,32 +7,58 @@ - add_library(external_ffmpeg INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_ffmpeg ALIAS external_ffmpeg) - --target_include_directories(external_ffmpeg SYSTEM --INTERFACE -- ${libs_loc}/ffmpeg --) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(PkgConfig REQUIRED) - --set(ffmpeg_lib_loc ${libs_loc}/ffmpeg) -+ pkg_check_modules(AVCODEC REQUIRED libavcodec) -+ pkg_check_modules(AVFORMAT REQUIRED libavformat) -+ pkg_check_modules(AVUTIL REQUIRED libavutil) -+ pkg_check_modules(SWSCALE REQUIRED libswscale) -+ pkg_check_modules(SWRESAMPLE REQUIRED libswresample) - --target_link_libraries(external_ffmpeg --INTERFACE -- ${ffmpeg_lib_loc}/libavformat/libavformat.a -- ${ffmpeg_lib_loc}/libavcodec/libavcodec.a -- ${ffmpeg_lib_loc}/libswresample/libswresample.a -- ${ffmpeg_lib_loc}/libswscale/libswscale.a -- ${ffmpeg_lib_loc}/libavutil/libavutil.a --) --if (LINUX) -- target_link_static_libraries(external_ffmpeg -+ target_include_directories(external_ffmpeg - INTERFACE -- va-x11 -- va-drm -- va -- vdpau -- drm -- Xi -- Xext -- Xfixes -- Xrender -+ ${AVCODEC_INCLUDE_DIRS} -+ ${AVFORMAT_INCLUDE_DIRS} -+ ${AVUTIL_INCLUDE_DIRS} -+ ${SWSCALE_INCLUDE_DIRS} -+ ${SWRESAMPLE_INCLUDE_DIRS}) -+ -+ target_link_libraries(external_ffmpeg -+ INTERFACE -+ ${AVCODEC_LIBRARIES} -+ ${AVFORMAT_LIBRARIES} -+ ${AVUTIL_LIBRARIES} -+ ${SWSCALE_LIBRARIES} -+ ${SWRESAMPLE_LIBRARIES}) -+else() -+ target_include_directories(external_ffmpeg SYSTEM -+ INTERFACE -+ ${libs_loc}/ffmpeg -+ ) -+ -+ set(ffmpeg_lib_loc ${libs_loc}/ffmpeg) -+ -+ target_link_libraries(external_ffmpeg -+ INTERFACE -+ ${ffmpeg_lib_loc}/libavformat/libavformat.a -+ ${ffmpeg_lib_loc}/libavcodec/libavcodec.a -+ ${ffmpeg_lib_loc}/libswresample/libswresample.a -+ ${ffmpeg_lib_loc}/libswscale/libswscale.a -+ ${ffmpeg_lib_loc}/libavutil/libavutil.a - ) -+ if (LINUX) -+ target_link_static_libraries(external_ffmpeg -+ INTERFACE -+ va-x11 -+ va-drm -+ va -+ vdpau -+ drm -+ Xi -+ Xext -+ Xfixes -+ Xrender -+ ) -+ endif() - endif() -diff --git a/cmake/external/lz4/CMakeLists.txt b/cmake/external/lz4/CMakeLists.txt -index 49821af..bcf308d 100644 ---- a/cmake/external/lz4/CMakeLists.txt -+++ b/cmake/external/lz4/CMakeLists.txt -@@ -4,26 +4,37 @@ - # For license and copyright information please follow this link: - # https://github.com/desktop-app/legal/blob/master/LEGAL - --add_library(external_lz4 OBJECT) --add_library(desktop-app::external_lz4 ALIAS external_lz4) --init_target(external_lz4 "(external)") -+if (DESKTOP_APP_USE_PACKAGED) -+ add_library(external_lz4 INTERFACE IMPORTED GLOBAL) -+ add_library(desktop-app::external_lz4 ALIAS external_lz4) - --set(lz4_loc ${third_party_loc}/lz4/lib) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LZ4 REQUIRED liblz4) - --target_sources(external_lz4 --PRIVATE -- ${lz4_loc}/lz4.c -- ${lz4_loc}/lz4.h -- ${lz4_loc}/lz4frame.c -- ${lz4_loc}/lz4frame.h -- ${lz4_loc}/lz4frame_static.h -- ${lz4_loc}/lz4hc.c -- ${lz4_loc}/lz4hc.h -- ${lz4_loc}/xxhash.c -- ${lz4_loc}/xxhash.h --) -+ target_include_directories(external_lz4 INTERFACE ${LZ4_INCLUDE_DIRS}) -+ target_link_libraries(external_lz4 INTERFACE ${LZ4_LIBRARIES}) -+else() -+ add_library(external_lz4 OBJECT) -+ add_library(desktop-app::external_lz4 ALIAS external_lz4) -+ init_target(external_lz4 "(external)") - --target_include_directories(external_lz4 --PUBLIC -- ${lz4_loc} --) -+ set(lz4_loc ${third_party_loc}/lz4/lib) -+ -+ target_sources(external_lz4 -+ PRIVATE -+ ${lz4_loc}/lz4.c -+ ${lz4_loc}/lz4.h -+ ${lz4_loc}/lz4frame.c -+ ${lz4_loc}/lz4frame.h -+ ${lz4_loc}/lz4frame_static.h -+ ${lz4_loc}/lz4hc.c -+ ${lz4_loc}/lz4hc.h -+ ${lz4_loc}/xxhash.c -+ ${lz4_loc}/xxhash.h -+ ) -+ -+ target_include_directories(external_lz4 -+ PUBLIC -+ ${lz4_loc} -+ ) -+endif() -diff --git a/cmake/external/openal/CMakeLists.txt b/cmake/external/openal/CMakeLists.txt -index e2e4992..d20ca0c 100644 ---- a/cmake/external/openal/CMakeLists.txt -+++ b/cmake/external/openal/CMakeLists.txt -@@ -7,7 +7,11 @@ - add_library(external_openal INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_openal ALIAS external_openal) - --if (WIN32) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(OpenAL REQUIRED) -+ target_include_directories(external_openal INTERFACE ${OPENAL_INCLUDE_DIR}) -+ target_link_libraries(external_openal INTERFACE ${OPENAL_LIBRARY}) -+elseif (WIN32) - target_include_directories(external_openal SYSTEM - INTERFACE - ${libs_loc}/openal-soft/include -@@ -36,8 +40,14 @@ else() - ) - endif() - -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_compile_definitions(external_openal -+ INTERFACE -+ AL_LIBTYPE_STATIC -+ ) -+endif() -+ - target_compile_definitions(external_openal - INTERFACE -- AL_LIBTYPE_STATIC - AL_ALEXT_PROTOTYPES - ) -diff --git a/cmake/external/openssl/CMakeLists.txt b/cmake/external/openssl/CMakeLists.txt -index bcbcbfa..301e9ec 100644 ---- a/cmake/external/openssl/CMakeLists.txt -+++ b/cmake/external/openssl/CMakeLists.txt -@@ -7,52 +7,57 @@ - add_library(external_openssl INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_openssl ALIAS external_openssl) - --if (LINUX) -- target_include_directories(external_openssl SYSTEM -- INTERFACE -- /usr/local/desktop-app/openssl-1.1.1/include -- ) --elseif (NOT APPLE OR NOT build_osx) -- target_include_directories(external_openssl SYSTEM -- INTERFACE -- ${libs_loc}/openssl_1_1_1/include -- ) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(OpenSSL REQUIRED) -+ target_link_libraries(external_openssl INTERFACE OpenSSL::SSL) - else() -- target_include_directories(external_openssl SYSTEM -- INTERFACE -- ${libs_loc}/openssl/include -- ) --endif() -+ if (LINUX) -+ target_include_directories(external_openssl SYSTEM -+ INTERFACE -+ /usr/local/desktop-app/openssl-1.1.1/include -+ ) -+ elseif (NOT APPLE OR NOT build_osx) -+ target_include_directories(external_openssl SYSTEM -+ INTERFACE -+ ${libs_loc}/openssl_1_1_1/include -+ ) -+ else() -+ target_include_directories(external_openssl SYSTEM -+ INTERFACE -+ ${libs_loc}/openssl/include -+ ) -+ endif() - --if (WIN32) -- set(openssl_lib_ext lib) -- set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>) --else() -- set(openssl_lib_ext a) -- if (APPLE) -- if (NOT build_osx) -- set(openssl_lib_loc ${libs_loc}/openssl_1_1_1) -+ if (WIN32) -+ set(openssl_lib_ext lib) -+ set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>) -+ else() -+ set(openssl_lib_ext a) -+ if (APPLE) -+ if (NOT build_osx) -+ set(openssl_lib_loc ${libs_loc}/openssl_1_1_1) -+ else() -+ set(openssl_lib_loc ${libs_loc}/openssl) -+ endif() - else() -- set(openssl_lib_loc ${libs_loc}/openssl) -+ set(openssl_lib_loc /usr/local/desktop-app/openssl-1.1.1/lib) - endif() -- else() -- set(openssl_lib_loc /usr/local/desktop-app/openssl-1.1.1/lib) - endif() --endif() - --target_link_libraries(external_openssl --INTERFACE -- ${openssl_lib_loc}/libssl.${openssl_lib_ext} -- ${openssl_lib_loc}/libcrypto.${openssl_lib_ext} --) -+ target_link_libraries(external_openssl -+ INTERFACE -+ ${openssl_lib_loc}/libssl.${openssl_lib_ext} -+ ${openssl_lib_loc}/libcrypto.${openssl_lib_ext} -+ ) - --if (LINUX) -- if (DESKTOP_APP_USE_GLIBC_WRAPS) -- target_link_libraries(external_openssl -- INTERFACE -- desktop-app::linux_glibc_wraps -- $<TARGET_FILE:desktop-app::linux_glibc_wraps> -- ) -+ if (LINUX) -+ if (DESKTOP_APP_USE_GLIBC_WRAPS) -+ target_link_libraries(external_openssl -+ INTERFACE -+ desktop-app::linux_glibc_wraps -+ $<TARGET_FILE:desktop-app::linux_glibc_wraps> -+ ) -+ endif() -+ target_link_libraries(external_openssl INTERFACE pthread) - endif() -- target_link_libraries(external_openssl INTERFACE pthread) - endif() -diff --git a/cmake/external/opus/CMakeLists.txt b/cmake/external/opus/CMakeLists.txt -index 00c2508..f05e8c0 100644 ---- a/cmake/external/opus/CMakeLists.txt -+++ b/cmake/external/opus/CMakeLists.txt -@@ -7,12 +7,21 @@ - add_library(external_opus INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_opus ALIAS external_opus) - --target_include_directories(external_opus SYSTEM --INTERFACE -- ${libs_loc}/opus/include --) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(OPUS opus) - --if (WIN32) -+ target_include_directories(external_opus INTERFACE ${OPUS_INCLUDE_DIRS}) -+else() -+ target_include_directories(external_opus SYSTEM -+ INTERFACE -+ ${libs_loc}/opus/include -+ ) -+endif() -+ -+if (DESKTOP_APP_USE_PACKAGED) -+ target_link_libraries(external_opus INTERFACE ${OPUS_LIBRARIES}) -+elseif (WIN32) - set(opus_lib_loc ${libs_loc}/opus/win32/VS2015/Win32/$<IF:$<CONFIG:Debug>,Debug,Release>) - - target_link_libraries(external_opus -diff --git a/cmake/external/qt/CMakeLists.txt b/cmake/external/qt/CMakeLists.txt -index 1a56319..7da3aa1 100644 ---- a/cmake/external/qt/CMakeLists.txt -+++ b/cmake/external/qt/CMakeLists.txt -@@ -15,203 +15,218 @@ if (LINUX) - endif() - endif() - --target_include_directories(external_qt SYSTEM --INTERFACE -- ${qt_loc}/include -- ${qt_loc}/include/QtCore -- ${qt_loc}/include/QtGui -- ${qt_loc}/include/QtDBus -- ${qt_loc}/include/QtCore/${qt_version} -- ${qt_loc}/include/QtGui/${qt_version} -- ${qt_loc}/include/QtCore/${qt_version}/QtCore -- ${qt_loc}/include/QtGui/${qt_version}/QtGui --) -- --target_compile_definitions(external_qt --INTERFACE -- _REENTRANT -- QT_STATICPLUGIN -- QT_PLUGIN -- QT_WIDGETS_LIB -- QT_NETWORK_LIB -- QT_GUI_LIB -- QT_CORE_LIB --) -+if (DESKTOP_APP_USE_PACKAGED) -+ target_link_libraries(external_qt -+ INTERFACE -+ Qt5::Core -+ Qt5::Gui -+ Qt5::Widgets -+ Qt5::Network -+ Qt5::DBus) - --if (WIN32) -- set(qt_lib_prefix "") -- set(qt_lib_suffix $<$<CONFIG:Debug>:d>.lib) -+ target_include_directories(external_qt -+ INTERFACE -+ ${Qt5Core_PRIVATE_INCLUDE_DIRS} -+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}) - else() -- set(qt_lib_prefix lib) -- if (APPLE) -- set(qt_lib_suffix $<$<CONFIG:Debug>:_debug>.a) -+ target_include_directories(external_qt SYSTEM -+ INTERFACE -+ ${qt_loc}/include -+ ${qt_loc}/include/QtCore -+ ${qt_loc}/include/QtGui -+ ${qt_loc}/include/QtDBus -+ ${qt_loc}/include/QtCore/${qt_version} -+ ${qt_loc}/include/QtGui/${qt_version} -+ ${qt_loc}/include/QtCore/${qt_version}/QtCore -+ ${qt_loc}/include/QtGui/${qt_version}/QtGui -+ ) -+ -+ target_compile_definitions(external_qt -+ INTERFACE -+ _REENTRANT -+ QT_STATICPLUGIN -+ QT_PLUGIN -+ QT_WIDGETS_LIB -+ QT_NETWORK_LIB -+ QT_GUI_LIB -+ QT_CORE_LIB -+ ) -+ -+ if (WIN32) -+ set(qt_lib_prefix "") -+ set(qt_lib_suffix $<$<CONFIG:Debug>:d>.lib) - else() -- set(qt_lib_suffix .a) -+ set(qt_lib_prefix lib) -+ if (APPLE) -+ set(qt_lib_suffix $<$<CONFIG:Debug>:_debug>.a) -+ else() -+ set(qt_lib_suffix .a) -+ endif() - endif() --endif() - --set(common_qt_libs -- plugins/imageformats/${qt_lib_prefix}qwebp -- plugins/imageformats/${qt_lib_prefix}qgif -- plugins/imageformats/${qt_lib_prefix}qjpeg -- lib/${qt_lib_prefix}Qt5PrintSupport -- lib/${qt_lib_prefix}Qt5AccessibilitySupport -- lib/${qt_lib_prefix}Qt5FontDatabaseSupport -- lib/${qt_lib_prefix}Qt5EventDispatcherSupport -- lib/${qt_lib_prefix}Qt5ThemeSupport -- lib/${qt_lib_prefix}Qt5Network -- lib/${qt_lib_prefix}Qt5Widgets -- lib/${qt_lib_prefix}Qt5Gui -- lib/${qt_lib_prefix}qtharfbuzz -- lib/${qt_lib_prefix}qtlibpng --) -- --set(qt_libs_list "") --if (WIN32) -- set(qt_libs -- ${common_qt_libs} -- lib/${qt_lib_prefix}Qt5Core -- lib/${qt_lib_prefix}Qt5WindowsUIAutomationSupport -- lib/${qt_lib_prefix}qtmain -- lib/${qt_lib_prefix}qtfreetype -- lib/${qt_lib_prefix}qtpcre2 -- plugins/platforms/${qt_lib_prefix}qwindows -+ set(common_qt_libs -+ plugins/imageformats/${qt_lib_prefix}qwebp -+ plugins/imageformats/${qt_lib_prefix}qgif -+ plugins/imageformats/${qt_lib_prefix}qjpeg -+ lib/${qt_lib_prefix}Qt5PrintSupport -+ lib/${qt_lib_prefix}Qt5AccessibilitySupport -+ lib/${qt_lib_prefix}Qt5FontDatabaseSupport -+ lib/${qt_lib_prefix}Qt5EventDispatcherSupport -+ lib/${qt_lib_prefix}Qt5ThemeSupport -+ lib/${qt_lib_prefix}Qt5Network -+ lib/${qt_lib_prefix}Qt5Widgets -+ lib/${qt_lib_prefix}Qt5Gui -+ lib/${qt_lib_prefix}qtharfbuzz -+ lib/${qt_lib_prefix}qtlibpng - ) -- foreach (lib ${qt_libs}) -- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -- endforeach() --elseif (APPLE) -- if (NOT build_osx) -+ -+ set(qt_libs_list "") -+ if (WIN32) - set(qt_libs - ${common_qt_libs} - lib/${qt_lib_prefix}Qt5Core -- lib/${qt_lib_prefix}Qt5GraphicsSupport -- lib/${qt_lib_prefix}Qt5ClipboardSupport -+ lib/${qt_lib_prefix}Qt5WindowsUIAutomationSupport -+ lib/${qt_lib_prefix}qtmain - lib/${qt_lib_prefix}qtfreetype - lib/${qt_lib_prefix}qtpcre2 -- plugins/platforms/${qt_lib_prefix}qcocoa -- plugins/bearer/${qt_lib_prefix}qgenericbearer -+ plugins/platforms/${qt_lib_prefix}qwindows -+ ) -+ foreach (lib ${qt_libs}) -+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -+ endforeach() -+ elseif (APPLE) -+ if (NOT build_osx) -+ set(qt_libs -+ ${common_qt_libs} -+ lib/${qt_lib_prefix}Qt5Core -+ lib/${qt_lib_prefix}Qt5GraphicsSupport -+ lib/${qt_lib_prefix}Qt5ClipboardSupport -+ lib/${qt_lib_prefix}qtfreetype -+ lib/${qt_lib_prefix}qtpcre2 -+ plugins/platforms/${qt_lib_prefix}qcocoa -+ plugins/bearer/${qt_lib_prefix}qgenericbearer -+ ) -+ else() -+ set(qt_libs -+ lib/${qt_lib_prefix}Qt5PrintSupport -+ lib/${qt_lib_prefix}Qt5PlatformSupport -+ lib/${qt_lib_prefix}Qt5Network -+ lib/${qt_lib_prefix}Qt5Widgets -+ lib/${qt_lib_prefix}Qt5Gui -+ lib/${qt_lib_prefix}Qt5Core -+ lib/${qt_lib_prefix}qtharfbuzzng -+ lib/${qt_lib_prefix}qtfreetype -+ lib/${qt_lib_prefix}qtpcre -+ plugins/platforms/${qt_lib_prefix}qcocoa -+ plugins/imageformats/${qt_lib_prefix}qwebp -+ plugins/bearer/${qt_lib_prefix}qgenericbearer -+ ) -+ endif() -+ foreach (lib ${qt_libs}) -+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -+ endforeach() -+ target_link_libraries(external_qt -+ INTERFACE -+ desktop-app::external_zlib -+ cups - ) - else() - set(qt_libs -- lib/${qt_lib_prefix}Qt5PrintSupport -- lib/${qt_lib_prefix}Qt5PlatformSupport -- lib/${qt_lib_prefix}Qt5Network -- lib/${qt_lib_prefix}Qt5Widgets -- lib/${qt_lib_prefix}Qt5Gui -- lib/${qt_lib_prefix}Qt5Core -- lib/${qt_lib_prefix}qtharfbuzzng -- lib/${qt_lib_prefix}qtfreetype -- lib/${qt_lib_prefix}qtpcre -- plugins/platforms/${qt_lib_prefix}qcocoa -- plugins/imageformats/${qt_lib_prefix}qwebp -+ plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin -+ plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin -+ plugins/platforminputcontexts/${qt_lib_prefix}fcitxplatforminputcontextplugin -+ plugins/platforminputcontexts/${qt_lib_prefix}himeplatforminputcontextplugin -+ plugins/platforminputcontexts/${qt_lib_prefix}nimfplatforminputcontextplugin -+ plugins/platforms/${qt_lib_prefix}qxcb -+ lib/${qt_lib_prefix}Qt5XcbQpa -+ lib/${qt_lib_prefix}Qt5LinuxAccessibilitySupport -+ lib/${qt_lib_prefix}Qt5ServiceSupport -+ lib/${qt_lib_prefix}Qt5EdidSupport -+ plugins/bearer/${qt_lib_prefix}qconnmanbearer - plugins/bearer/${qt_lib_prefix}qgenericbearer -+ plugins/bearer/${qt_lib_prefix}qnmbearer -+ ${common_qt_libs} -+ lib/${qt_lib_prefix}Qt5DBus -+ lib/${qt_lib_prefix}Qt5Core -+ lib/${qt_lib_prefix}qtpcre2 -+ lib/${qt_lib_prefix}xcb-static - ) -+ foreach (lib ${qt_libs}) -+ list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -+ endforeach() - endif() -- foreach (lib ${qt_libs}) -- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -- endforeach() -+ - target_link_libraries(external_qt - INTERFACE -- desktop-app::external_zlib -- cups -+ ${qt_libs_list} - ) --else() -- set(qt_libs -- plugins/platforminputcontexts/${qt_lib_prefix}composeplatforminputcontextplugin -- plugins/platforminputcontexts/${qt_lib_prefix}ibusplatforminputcontextplugin -- plugins/platforminputcontexts/${qt_lib_prefix}fcitxplatforminputcontextplugin -- plugins/platforminputcontexts/${qt_lib_prefix}himeplatforminputcontextplugin -- plugins/platforminputcontexts/${qt_lib_prefix}nimfplatforminputcontextplugin -- plugins/platforms/${qt_lib_prefix}qxcb -- lib/${qt_lib_prefix}Qt5XcbQpa -- lib/${qt_lib_prefix}Qt5LinuxAccessibilitySupport -- lib/${qt_lib_prefix}Qt5ServiceSupport -- lib/${qt_lib_prefix}Qt5EdidSupport -- plugins/bearer/${qt_lib_prefix}qconnmanbearer -- plugins/bearer/${qt_lib_prefix}qgenericbearer -- plugins/bearer/${qt_lib_prefix}qnmbearer -- ${common_qt_libs} -- lib/${qt_lib_prefix}Qt5DBus -- lib/${qt_lib_prefix}Qt5Core -- lib/${qt_lib_prefix}qtpcre2 -- lib/${qt_lib_prefix}xcb-static -- ) -- foreach (lib ${qt_libs}) -- list(APPEND qt_libs_list "${qt_loc}/${lib}${qt_lib_suffix}") -- endforeach() --endif() -- --target_link_libraries(external_qt --INTERFACE -- ${qt_libs_list} --) - --if (LINUX) -- target_include_directories(external_qt SYSTEM -- INTERFACE -- ${qt_loc}/mkspecs/linux-g++ -- ) -- target_link_options(external_qt -- INTERFACE -- -static-libstdc++ -- -pthread -- -rdynamic -- ) -- if (DESKTOP_APP_USE_GLIBC_WRAPS) -+ if (LINUX) -+ target_include_directories(external_qt SYSTEM -+ INTERFACE -+ ${qt_loc}/mkspecs/linux-g++ -+ ) - target_link_options(external_qt - INTERFACE -- -Wl,-wrap,aligned_alloc -- -Wl,-wrap,secure_getenv -- -Wl,-wrap,clock_gettime -- -Wl,--no-as-needed,-lrt -+ -static-libstdc++ -+ -pthread -+ -rdynamic - ) -- if (NOT build_linux32) -+ if (DESKTOP_APP_USE_GLIBC_WRAPS) - target_link_options(external_qt - INTERFACE -- -Wl,-wrap,__divmodti4 -+ -Wl,-wrap,aligned_alloc -+ -Wl,-wrap,secure_getenv -+ -Wl,-wrap,clock_gettime -+ -Wl,--no-as-needed,-lrt - ) -- else() -- target_link_options(external_qt -+ if (NOT build_linux32) -+ target_link_options(external_qt -+ INTERFACE -+ -Wl,-wrap,__divmodti4 -+ ) -+ else() -+ target_link_options(external_qt -+ INTERFACE -+ -Wl,-wrap,__divmoddi4 -+ ) -+ endif() -+ endif() -+ target_link_static_libraries(external_qt -+ INTERFACE -+ SM -+ ICE -+ fontconfig -+ freetype -+ expat -+ z -+ xcb-shm -+ xcb-xfixes -+ xcb-render -+ xkbcommon -+ xkbcommon-x11 -+ Xrender -+ icutu -+ icui18n -+ icuuc -+ icudata -+ ) -+ if (DESKTOP_APP_USE_GLIBC_WRAPS) -+ target_link_libraries(external_qt - INTERFACE -- -Wl,-wrap,__divmoddi4 -+ desktop-app::linux_glibc_wraps -+ $<TARGET_FILE:desktop-app::linux_glibc_wraps> - ) - endif() -- endif() -- target_link_static_libraries(external_qt -- INTERFACE -- SM -- ICE -- fontconfig -- freetype -- expat -- z -- xcb-shm -- xcb-xfixes -- xcb-render -- xkbcommon -- xkbcommon-x11 -- Xrender -- icutu -- icui18n -- icuuc -- icudata -- ) -- if (DESKTOP_APP_USE_GLIBC_WRAPS) - target_link_libraries(external_qt - INTERFACE -- desktop-app::linux_glibc_wraps -- $<TARGET_FILE:desktop-app::linux_glibc_wraps> -+ xcb -+ X11 -+ X11-xcb -+ dbus-1 -+ dl -+ glib-2.0 -+ pthread - ) - endif() -- target_link_libraries(external_qt -- INTERFACE -- xcb -- X11 -- X11-xcb -- dbus-1 -- dl -- glib-2.0 -- pthread -- ) - endif() -diff --git a/cmake/external/qt/package.cmake b/cmake/external/qt/package.cmake -index 36a1dfd..1e90baf 100644 ---- a/cmake/external/qt/package.cmake -+++ b/cmake/external/qt/package.cmake -@@ -4,19 +4,21 @@ - # For license and copyright information please follow this link: - # https://github.com/desktop-app/legal/blob/master/LEGAL - --if (NOT APPLE OR NOT build_osx) -- set(qt_version 5.12.5) --else() -- set(qt_version 5.6.2) --endif() -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ if (NOT APPLE OR NOT build_osx) -+ set(qt_version 5.12.5) -+ else() -+ set(qt_version 5.6.2) -+ endif() - --if (WIN32) -- set(qt_loc ${libs_loc}/Qt-${qt_version}) --else() -- set(qt_loc /usr/local/desktop-app/Qt-${qt_version}) --endif() -+ if (WIN32) -+ set(qt_loc ${libs_loc}/Qt-${qt_version}) -+ else() -+ set(qt_loc /usr/local/desktop-app/Qt-${qt_version}) -+ endif() - --set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5) -+ set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5) -+endif() - - find_package(Qt5 COMPONENTS Core Gui Widgets Network REQUIRED) - -diff --git a/cmake/external/ranges/CMakeLists.txt b/cmake/external/ranges/CMakeLists.txt -index 4c75ecb..8105361 100644 ---- a/cmake/external/ranges/CMakeLists.txt -+++ b/cmake/external/ranges/CMakeLists.txt -@@ -7,10 +7,14 @@ - add_library(external_ranges INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_ranges ALIAS external_ranges) - --target_include_directories(external_ranges SYSTEM --INTERFACE -- ${libs_loc}/range-v3/include --) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(range-v3 REQUIRED) -+else() -+ target_include_directories(external_ranges SYSTEM -+ INTERFACE -+ ${libs_loc}/range-v3/include -+ ) -+endif() - - if (WIN32) - target_compile_options(external_ranges -diff --git a/cmake/external/rlottie/CMakeLists.txt b/cmake/external/rlottie/CMakeLists.txt -index 4fc3a54..155532e 100644 ---- a/cmake/external/rlottie/CMakeLists.txt -+++ b/cmake/external/rlottie/CMakeLists.txt -@@ -4,115 +4,123 @@ - # For license and copyright information please follow this link: - # https://github.com/desktop-app/legal/blob/master/LEGAL - --add_library(external_rlottie OBJECT) --add_library(desktop-app::external_rlottie ALIAS external_rlottie) --init_target(external_rlottie "(external)") -+if (DESKTOP_APP_USE_PACKAGED_RLOTTIE) -+ add_library(external_rlottie INTERFACE IMPORTED GLOBAL) -+ add_library(desktop-app::external_rlottie ALIAS external_rlottie) - --get_filename_component(src_loc . REALPATH) --set(rlottie_loc ${third_party_loc}/rlottie) -+ find_package(rlottie REQUIRED) -+ target_link_libraries(external_rlottie INTERFACE rlottie::rlottie) -+else() -+ add_library(external_rlottie OBJECT) -+ add_library(desktop-app::external_rlottie ALIAS external_rlottie) -+ init_target(external_rlottie "(external)") - --target_sources(external_rlottie PRIVATE ${src_loc}/config/config.h) --nice_target_sources(external_rlottie ${rlottie_loc} --PRIVATE -- inc/rlottie.h -- inc/rlottie_capi.h -- inc/rlottiecommon.h -+ get_filename_component(src_loc . REALPATH) -+ set(rlottie_loc ${third_party_loc}/rlottie) - -- src/lottie/lottieanimation.cpp -- src/lottie/lottieitem.cpp -- src/lottie/lottieitem.h -- src/lottie/lottiekeypath.cpp -- src/lottie/lottiekeypath.h -- src/lottie/lottieloader.cpp -- src/lottie/lottieloader.h -- src/lottie/lottiemodel.cpp -- src/lottie/lottiemodel.h -- src/lottie/lottieparser.cpp -- src/lottie/lottieparser.h -- src/lottie/lottieproxymodel.cpp -- src/lottie/lottieproxymodel.h -+ target_sources(external_rlottie PRIVATE ${src_loc}/config/config.h) -+ nice_target_sources(external_rlottie ${rlottie_loc} -+ PRIVATE -+ inc/rlottie.h -+ inc/rlottie_capi.h -+ inc/rlottiecommon.h - -- src/vector/freetype/v_ft_math.cpp -- src/vector/freetype/v_ft_math.h -- src/vector/freetype/v_ft_raster.cpp -- src/vector/freetype/v_ft_raster.h -- src/vector/freetype/v_ft_stroker.cpp -- src/vector/freetype/v_ft_stroker.h -- src/vector/freetype/v_ft_types.h -+ src/lottie/lottieanimation.cpp -+ src/lottie/lottieitem.cpp -+ src/lottie/lottieitem.h -+ src/lottie/lottiekeypath.cpp -+ src/lottie/lottiekeypath.h -+ src/lottie/lottieloader.cpp -+ src/lottie/lottieloader.h -+ src/lottie/lottiemodel.cpp -+ src/lottie/lottiemodel.h -+ src/lottie/lottieparser.cpp -+ src/lottie/lottieparser.h -+ src/lottie/lottieproxymodel.cpp -+ src/lottie/lottieproxymodel.h - -- # src/vector/pixman/pixman-arm-neon-asm.h -- # src/vector/pixman/pixman-arm-neon-asm.S -- src/vector/pixman/vregion.cpp -- src/vector/pixman/vregion.h -+ src/vector/freetype/v_ft_math.cpp -+ src/vector/freetype/v_ft_math.h -+ src/vector/freetype/v_ft_raster.cpp -+ src/vector/freetype/v_ft_raster.h -+ src/vector/freetype/v_ft_stroker.cpp -+ src/vector/freetype/v_ft_stroker.h -+ src/vector/freetype/v_ft_types.h - -- src/vector/vbezier.cpp -- src/vector/vbezier.h -- src/vector/vbitmap.cpp -- src/vector/vbitmap.h -- src/vector/vbrush.cpp -- src/vector/vbrush.h -- src/vector/vcompositionfunctions.cpp -- src/vector/vcowptr.h -- src/vector/vdasher.cpp -- src/vector/vdasher.h -- src/vector/vdebug.cpp -- src/vector/vdebug.h -- src/vector/vdrawable.cpp -- src/vector/vdrawable.h -- src/vector/vdrawhelper.cpp -- src/vector/vdrawhelper.h -- src/vector/vdrawhelper_neon.cpp -- src/vector/vdrawhelper_sse2.cpp -- src/vector/velapsedtimer.cpp -- src/vector/velapsedtimer.h -- src/vector/vglobal.h -- src/vector/vimageloader.cpp -- src/vector/vimageloader.h -- src/vector/vinterpolator.cpp -- src/vector/vinterpolator.h -- src/vector/vline.h -- src/vector/vmatrix.cpp -- src/vector/vmatrix.h -- src/vector/vpainter.cpp -- src/vector/vpainter.h -- src/vector/vpath.cpp -- src/vector/vpath.h -- src/vector/vpathmesure.cpp -- src/vector/vpathmesure.h -- src/vector/vpoint.h -- src/vector/vraster.cpp -- src/vector/vraster.h -- src/vector/vrect.cpp -- src/vector/vrect.h -- src/vector/vrle.cpp -- src/vector/vrle.h -- src/vector/vstackallocator.h -- src/vector/vtaskqueue.h --) -+ # src/vector/pixman/pixman-arm-neon-asm.h -+ # src/vector/pixman/pixman-arm-neon-asm.S -+ src/vector/pixman/vregion.cpp -+ src/vector/pixman/vregion.h - --target_compile_definitions(external_rlottie --PUBLIC -- LOT_BUILD --PRIVATE -- _USE_MATH_DEFINES -- "RAPIDJSON_ASSERT=(void)" --) -+ src/vector/vbezier.cpp -+ src/vector/vbezier.h -+ src/vector/vbitmap.cpp -+ src/vector/vbitmap.h -+ src/vector/vbrush.cpp -+ src/vector/vbrush.h -+ src/vector/vcompositionfunctions.cpp -+ src/vector/vcowptr.h -+ src/vector/vdasher.cpp -+ src/vector/vdasher.h -+ src/vector/vdebug.cpp -+ src/vector/vdebug.h -+ src/vector/vdrawable.cpp -+ src/vector/vdrawable.h -+ src/vector/vdrawhelper.cpp -+ src/vector/vdrawhelper.h -+ src/vector/vdrawhelper_neon.cpp -+ src/vector/vdrawhelper_sse2.cpp -+ src/vector/velapsedtimer.cpp -+ src/vector/velapsedtimer.h -+ src/vector/vglobal.h -+ src/vector/vimageloader.cpp -+ src/vector/vimageloader.h -+ src/vector/vinterpolator.cpp -+ src/vector/vinterpolator.h -+ src/vector/vline.h -+ src/vector/vmatrix.cpp -+ src/vector/vmatrix.h -+ src/vector/vpainter.cpp -+ src/vector/vpainter.h -+ src/vector/vpath.cpp -+ src/vector/vpath.h -+ src/vector/vpathmesure.cpp -+ src/vector/vpathmesure.h -+ src/vector/vpoint.h -+ src/vector/vraster.cpp -+ src/vector/vraster.h -+ src/vector/vrect.cpp -+ src/vector/vrect.h -+ src/vector/vrle.cpp -+ src/vector/vrle.h -+ src/vector/vstackallocator.h -+ src/vector/vtaskqueue.h -+ ) - --target_include_directories(external_rlottie --PUBLIC -- ${rlottie_loc}/inc --PRIVATE -- ${src_loc}/config -- ${rlottie_loc}/src/lottie -- ${rlottie_loc}/src/vector -- ${rlottie_loc}/src/vector/pixman -- ${rlottie_loc}/src/vector/freetype --) -+ target_compile_definitions(external_rlottie -+ PUBLIC -+ LOT_BUILD -+ PRIVATE -+ _USE_MATH_DEFINES -+ "RAPIDJSON_ASSERT=(void)" -+ ) - --if (WIN32) -- target_compile_options(external_rlottie -+ target_include_directories(external_rlottie -+ PUBLIC -+ ${rlottie_loc}/inc - PRIVATE -- /w44244 # 'initializing': conversion from 'double' to 'float' -- /w44251 # needs to have dll-interface to be used by clients of class -+ ${src_loc}/config -+ ${rlottie_loc}/src/lottie -+ ${rlottie_loc}/src/vector -+ ${rlottie_loc}/src/vector/pixman -+ ${rlottie_loc}/src/vector/freetype - ) -+ -+ if (WIN32) -+ target_compile_options(external_rlottie -+ PRIVATE -+ /w44244 # 'initializing': conversion from 'double' to 'float' -+ /w44251 # needs to have dll-interface to be used by clients of class -+ ) -+ endif() - endif() -diff --git a/cmake/external/xxhash/CMakeLists.txt b/cmake/external/xxhash/CMakeLists.txt -index ba98eda..1219ae8 100644 ---- a/cmake/external/xxhash/CMakeLists.txt -+++ b/cmake/external/xxhash/CMakeLists.txt -@@ -7,12 +7,20 @@ - add_library(external_xxhash INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_xxhash ALIAS external_xxhash) - --target_include_directories(external_xxhash SYSTEM --INTERFACE -- ${third_party_loc}/xxHash --) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_library(XXHASH_LIBRARY xxhash) -+ find_path(XXHASH_INCLUDE_DIRS xxhash.h) - --target_compile_definitions(external_xxhash --INTERFACE -- XXH_INLINE_ALL --) -+ target_include_directories(external_xxhash INTERFACE ${XXHASH_INCLUDE_DIRS}) -+ target_link_libraries(external_xxhash INTERFACE ${XXHASH_LIBRARY}) -+else() -+ target_include_directories(external_xxhash SYSTEM -+ INTERFACE -+ ${third_party_loc}/xxHash -+ ) -+ -+ target_compile_definitions(external_xxhash -+ INTERFACE -+ XXH_INLINE_ALL -+ ) -+endif() -diff --git a/cmake/external/zlib/CMakeLists.txt b/cmake/external/zlib/CMakeLists.txt -index d2bc1fc..dc0a979 100644 ---- a/cmake/external/zlib/CMakeLists.txt -+++ b/cmake/external/zlib/CMakeLists.txt -@@ -7,7 +7,16 @@ - add_library(external_zlib INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_zlib ALIAS external_zlib) - --if (NOT WIN32) -+if (DESKTOP_APP_USE_PACKAGED) -+ add_library(external_minizip INTERFACE IMPORTED) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(MINIZIP REQUIRED minizip) -+ -+ target_include_directories(external_minizip INTERFACE ${MINIZIP_INCLUDE_DIRS}) -+ target_link_libraries(external_minizip INTERFACE ${MINIZIP_LIBRARIES}) -+ -+ target_link_libraries(external_zlib INTERFACE external_minizip) -+elseif (NOT WIN32) - add_library(external_minizip STATIC) - init_target(external_minizip "(external)") - -@@ -32,13 +41,18 @@ if (NOT WIN32) - target_link_libraries(external_zlib INTERFACE external_minizip) - endif() - --target_include_directories(external_zlib SYSTEM --INTERFACE -- ${libs_loc}/zlib -- ${libs_loc}/zlib/contrib/minizip --) -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_include_directories(external_zlib SYSTEM -+ INTERFACE -+ ${libs_loc}/zlib -+ ${libs_loc}/zlib/contrib/minizip -+ ) -+endif() - --if (WIN32) -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(ZLIB REQUIRED) -+ target_link_libraries(external_zlib INTERFACE ZLIB::ZLIB) -+elseif (WIN32) - target_compile_definitions(external_zlib INTERFACE ZLIB_WINAPI) - - set(zlib_lib_loc ${libs_loc}/zlib/contrib/vstudio/vc14/x86/ZlibStat$<IF:$<CONFIG:Debug>,Debug,ReleaseWithoutAsm>) -diff --git a/cmake/init_target.cmake b/cmake/init_target.cmake -index c7a1244..484ea91 100644 ---- a/cmake/init_target.cmake -+++ b/cmake/init_target.cmake -@@ -26,8 +26,10 @@ function(init_target target_name) # init_target(my_target folder_name) - MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") - endif() - target_link_libraries(${target_name} PUBLIC desktop-app::common_options) -+ if (NOT DESKTOP_APP_USE_PACKAGED) -+ set_target_properties(${target_name} PROPERTIES LINK_SEARCH_START_STATIC 1) -+ endif() - set_target_properties(${target_name} PROPERTIES -- LINK_SEARCH_START_STATIC 1 - XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES - XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES - XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES -diff --git a/cmake/options_linux.cmake b/cmake/options_linux.cmake -index a6a13c9..5b22b8d 100644 ---- a/cmake/options_linux.cmake -+++ b/cmake/options_linux.cmake -@@ -6,10 +6,9 @@ - - target_compile_options(common_options - INTERFACE -- $<IF:$<CONFIG:Debug>,,-Ofast -fno-strict-aliasing> -+ $<IF:$<CONFIG:Debug>,,-fno-strict-aliasing> - -pipe - -Wall -- -Werror - -W - -fPIC - -Wno-unused-variable -@@ -26,14 +25,21 @@ INTERFACE - -Wno-maybe-uninitialized - -Wno-error=class-memaccess - ) --target_link_options(common_options --INTERFACE -- $<IF:$<CONFIG:Debug>,,-Ofast> --) -+if (NOT DESKTOP_APP_USE_PACKAGED) -+ target_compile_options(common_options -+ INTERFACE -+ $<IF:$<CONFIG:Debug>,,-Ofast> -+ -Werror -+ ) -+ target_link_options(common_options -+ INTERFACE -+ $<IF:$<CONFIG:Debug>,,-Ofast> -+ ) -+endif() - if (build_linux32) - target_compile_options(common_options INTERFACE -g0) - target_link_options(common_options INTERFACE -g0) --else() -+elseif (NOT DESKTOP_APP_USE_PACKAGED) - target_compile_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto>) - target_link_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto -fuse-linker-plugin>) - endif() -diff --git a/cmake/variables.cmake b/cmake/variables.cmake -index b3d7ff4..10031e7 100644 ---- a/cmake/variables.cmake -+++ b/cmake/variables.cmake -@@ -10,6 +10,7 @@ option(DESKTOP_APP_DISABLE_SPELLCHECK "Disable spellcheck library." OFF) - option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON) - option(DESKTOP_APP_USE_GLIBC_WRAPS "Use wraps for new GLIBC features." OFF) - option(DESKTOP_APP_USE_PACKAGED "Find libraries using CMake instead of exact paths." ON) -+option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled one." ${DESKTOP_APP_USE_PACKAGED}) - - function(report_bad_special_target) - message(FATAL_ERROR "Bad special target '${DESKTOP_APP_SPECIAL_TARGET}'") -@@ -74,9 +75,11 @@ else() - elseif (NOT DESKTOP_APP_SPECIAL_TARGET STREQUAL "") - report_bad_special_target() - endif() -- set(CMAKE_AR /usr/bin/gcc-ar) -- set(CMAKE_RANLIB /usr/bin/gcc-ranlib) -- set(CMAKE_NM /usr/bin/gcc-nm) -+ if (NOT DESKTOP_APP_USE_PACKAGED) -+ set(CMAKE_AR /usr/bin/gcc-ar) -+ set(CMAKE_RANLIB /usr/bin/gcc-ranlib) -+ set(CMAKE_NM /usr/bin/gcc-nm) -+ endif() - endif() - - if (NOT APPLE OR build_osx) diff --git a/fix-notifications.patch b/fix-notifications.patch deleted file mode 100644 index ad93293e1df9..000000000000 --- a/fix-notifications.patch +++ /dev/null @@ -1,216 +0,0 @@ -diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp -index f93941021..b9ace2751 100644 ---- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp -+++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp -@@ -28,12 +28,12 @@ std::vector<QString> GetServerInformation( - const std::shared_ptr<QDBusInterface> ¬ificationInterface) { - std::vector<QString> serverInformation; - auto serverInformationReply = notificationInterface -- ->call("GetServerInformation"); -+ ->call(qsl("GetServerInformation")); - - if (serverInformationReply.type() == QDBusMessage::ReplyMessage) { - for (const auto &arg : serverInformationReply.arguments()) { - if (static_cast<QMetaType::Type>(arg.type()) -- == QMetaType::QString) { -+ == QMetaType::QString) { - serverInformation.push_back(arg.toString()); - } else { - LOG(("Native notification error: " -@@ -55,7 +55,7 @@ std::vector<QString> GetServerInformation( - std::vector<QString> GetCapabilities( - const std::shared_ptr<QDBusInterface> ¬ificationInterface) { - QDBusReply<QStringList> capabilitiesReply = notificationInterface -- ->call("GetCapabilities"); -+ ->call(qsl("GetCapabilities")); - - if (capabilitiesReply.isValid()) { - return capabilitiesReply.value().toVector().toStdVector(); -@@ -96,23 +96,25 @@ NotificationData::NotificationData( - - if (ranges::find(capabilities, qsl("body-markup")) != capabilitiesEnd) { - _body = subtitle.isEmpty() -- ? msg.toHtmlEscaped() -- : qsl("<b>%1</b>\n%2").arg(subtitle.toHtmlEscaped()) -- .arg(msg.toHtmlEscaped()); -+ ? msg.toHtmlEscaped() -+ : qsl("<b>%1</b>\n%2").arg(subtitle.toHtmlEscaped()) -+ .arg(msg.toHtmlEscaped()); - } else { - _body = subtitle.isEmpty() -- ? msg -- : qsl("%1\n%2").arg(subtitle).arg(msg); -+ ? msg -+ : qsl("%1\n%2").arg(subtitle).arg(msg); - } - - if (ranges::find(capabilities, qsl("actions")) != capabilitiesEnd) { -+ _actions << qsl("default") << qsl(""); -+ - // icon name according to https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html -- _actions << "mail-reply-sender" -- << tr::lng_notification_reply(tr::now); -+ _actions << qsl("mail-reply-sender") -+ << tr::lng_notification_reply(tr::now); - - connect(_notificationInterface.get(), -- SIGNAL(ActionInvoked(uint, QString)), -- this, SLOT(notificationClicked(uint))); -+ SIGNAL(ActionInvoked(uint, QString)), -+ this, SLOT(notificationClicked(uint))); - } - - if (ranges::find(capabilities, qsl("action-icons")) != capabilitiesEnd) { -@@ -125,26 +127,35 @@ NotificationData::NotificationData( - _hints["suppress-sound"] = true; - } else { - // sound name according to http://0pointer.de/public/sound-naming-spec.html -- _hints["sound-name"] = "message-new-instant"; -+ _hints["sound-name"] = qsl("message-new-instant"); - } - } - - if (ranges::find(capabilities, qsl("x-canonical-append")) -- != capabilitiesEnd) { -- _hints["x-canonical-append"] = "true"; -+ != capabilitiesEnd) { -+ _hints["x-canonical-append"] = qsl("true"); - } - -- _hints["category"] = "im.received"; -- _hints["desktop-entry"] = "kotatogramdesktop"; -+ _hints["category"] = qsl("im.received"); -+ -+#ifdef TDESKTOP_LAUNCHER_FILENAME -+#define TDESKTOP_LAUNCHER_FILENAME_TO_STRING_HELPER(V) #V -+#define TDESKTOP_LAUNCHER_FILENAME_TO_STRING(V) TDESKTOP_LAUNCHER_FILENAME_TO_STRING_HELPER(V) -+ _hints["desktop-entry"] = -+ qsl(TDESKTOP_LAUNCHER_FILENAME_TO_STRING(TDESKTOP_LAUNCHER_FILENAME)) -+ .remove(QRegExp(qsl("\\.desktop$"), Qt::CaseInsensitive)); -+#else -+ _hints["desktop-entry"] = qsl("kotatogramdesktop"); -+#endif - - connect(_notificationInterface.get(), -- SIGNAL(NotificationClosed(uint, uint)), -- this, SLOT(notificationClosed(uint))); -+ SIGNAL(NotificationClosed(uint, uint)), -+ this, SLOT(notificationClosed(uint))); - } - - bool NotificationData::show() { -- QDBusReply<uint> notifyReply = _notificationInterface->call("Notify", -- str_const_toString(AppName), uint(0), "kotatogram", _title, _body, -+ QDBusReply<uint> notifyReply = _notificationInterface->call(qsl("Notify"), -+ str_const_toString(AppName), uint(0), qsl(""), _title, _body, - _actions, _hints, -1); - - if (notifyReply.isValid()) { -@@ -159,7 +170,7 @@ bool NotificationData::show() { - - bool NotificationData::close() { - QDBusReply<void> closeReply = _notificationInterface -- ->call("CloseNotification", _notificationId); -+ ->call(qsl("CloseNotification"), _notificationId); - - if (!closeReply.isValid()) { - LOG(("Native notification error: %1") -@@ -180,12 +191,12 @@ void NotificationData::setImage(const QString &imagePath) { - const auto minorVersion = specificationVersion.minorVersion(); - - if ((majorVersion == 1 && minorVersion >= 2) || majorVersion > 1) { -- imageKey = "image-data"; -+ imageKey = qsl("image-data"); - } else if (majorVersion == 1 && minorVersion) { -- imageKey = "image_data"; -+ imageKey = qsl("image_data"); - } else if ((majorVersion == 1 && minorVersion < 1) -- || majorVersion < 1) { -- imageKey = "icon_data"; -+ || majorVersion < 1) { -+ imageKey = qsl("icon_data"); - } else { - LOG(("Native notification error: unknown specification version")); - return; -@@ -197,7 +208,7 @@ void NotificationData::setImage(const QString &imagePath) { - - auto image = QImage(imagePath).convertToFormat(QImage::Format_RGBA8888); - QByteArray imageBytes((const char*)image.constBits(), -- image.sizeInBytes()); -+ image.sizeInBytes()); - - ImageData imageData; - imageData.width = image.width(); -@@ -233,12 +244,12 @@ QDBusArgument &operator<<(QDBusArgument &argument, - const NotificationData::ImageData &imageData) { - argument.beginStructure(); - argument << imageData.width -- << imageData.height -- << imageData.rowStride -- << imageData.hasAlpha -- << imageData.bitsPerSample -- << imageData.channels -- << imageData.data; -+ << imageData.height -+ << imageData.rowStride -+ << imageData.hasAlpha -+ << imageData.bitsPerSample -+ << imageData.channels -+ << imageData.data; - argument.endStructure(); - return argument; - } -@@ -247,29 +258,23 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, - NotificationData::ImageData &imageData) { - argument.beginStructure(); - argument >> imageData.width -- >> imageData.height -- >> imageData.rowStride -- >> imageData.hasAlpha -- >> imageData.bitsPerSample -- >> imageData.channels -- >> imageData.data; -+ >> imageData.height -+ >> imageData.rowStride -+ >> imageData.hasAlpha -+ >> imageData.bitsPerSample -+ >> imageData.channels -+ >> imageData.data; - argument.endStructure(); - return argument; - } - - bool Supported() { -- static auto Checked = false; -- static auto NotificationDaemonRunning = false; -- -- if (!Checked) { -- Checked = true; -- NotificationDaemonRunning = QDBusInterface( -- str_const_toString(kService), -- str_const_toString(kObjectPath), -- str_const_toString(kInterface)).isValid(); -- } -+ static auto Available = QDBusInterface( -+ str_const_toString(kService), -+ str_const_toString(kObjectPath), -+ str_const_toString(kInterface)).isValid(); - -- return NotificationDaemonRunning; -+ return Available; - } - - std::unique_ptr<Window::Notifications::Manager> Create( -@@ -284,9 +289,9 @@ Manager::Private::Private(Manager *manager, Type type) - : _cachedUserpics(type) - , _manager(manager) - , _notificationInterface(std::make_shared<QDBusInterface>( -- str_const_toString(kService), -- str_const_toString(kObjectPath), -- str_const_toString(kInterface))) { -+ str_const_toString(kService), -+ str_const_toString(kObjectPath), -+ str_const_toString(kInterface))) { - qDBusRegisterMetaType<NotificationData::ImageData>(); - - auto specificationVersion = ParseSpecificationVersion( diff --git a/fix-spellcheck.patch b/fix-spellcheck.patch deleted file mode 100644 index fedc0b9ae82c..000000000000 --- a/fix-spellcheck.patch +++ /dev/null @@ -1,523 +0,0 @@ -diff --git a/.gitmodules b/.gitmodules -index f206a48c7..8bf8047de 100644 ---- a/.gitmodules -+++ b/.gitmodules -@@ -64,3 +64,6 @@ - [submodule "Telegram/lib_qr"] - path = Telegram/lib_qr - url = https://github.com/desktop-app/lib_qr.git -+[submodule "Telegram/ThirdParty/sonnet"] -+ path = Telegram/ThirdParty/sonnet -+ url = https://github.com/KDE/sonnet -diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt -index b00bd61e5..277acdb45 100644 ---- a/Telegram/CMakeLists.txt -+++ b/Telegram/CMakeLists.txt -@@ -94,6 +94,10 @@ if (NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) - target_link_libraries(Telegram PRIVATE desktop-app::external_crash_reports) - endif() - -+if (LINUX AND NOT DESKTOP_APP_DISABLE_SPELLCHECK AND NOT DESKTOP_APP_USE_PACKAGED) -+ target_link_libraries(Telegram PRIVATE desktop-app::external_sonnet) -+endif() -+ - target_precompile_headers(Telegram PRIVATE ${src_loc}/stdafx.h) - nice_target_sources(Telegram ${src_loc} - PRIVATE -Submodule Telegram/lib_spellcheck contains modified content -diff --git a/Telegram/lib_spellcheck/CMakeLists.txt b/Telegram/lib_spellcheck/CMakeLists.txt -index 282e732..5b264ec 100644 ---- a/Telegram/lib_spellcheck/CMakeLists.txt -+++ b/Telegram/lib_spellcheck/CMakeLists.txt -@@ -44,4 +44,6 @@ if (LINUX) - - pkg_search_module(ENCHANT REQUIRED enchant-2 enchant) - target_include_directories(lib_spellcheck PRIVATE ${ENCHANT_INCLUDE_DIRS}) -+ -+ target_link_libraries(lib_spellcheck PUBLIC desktop-app::external_sonnet) - endif() -diff --git a/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp b/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp -index a465cc6..be96fb8 100644 ---- a/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp -+++ b/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp -@@ -4,25 +4,35 @@ - // Author: Nicholas Guriev <guriev-ns@ya.ru>, public domain, 2019 - // License: CC0, https://creativecommons.org/publicdomain/zero/1.0/legalcode - --#include <set> - #include <QLocale> - -+#ifdef DESKTOP_APP_USE_PACKAGED -+#include <Sonnet/GuessLanguage> -+#else -+#include "guesslanguage.h" -+#endif -+ - #include "spellcheck/spellcheck_utils.h" - #include "spellcheck/platform/linux/linux_enchant.h" - - #include "spellcheck/platform/linux/spellcheck_linux.h" - #include "base/integration.h" -+#include "base/flat_map.h" - - namespace Platform::Spellchecker { - namespace { - -+constexpr auto kMinReliability = 0.1; -+constexpr auto kMaxItems = 5; -+ -+using DictPtr = std::shared_ptr<enchant::Dict>; -+ - class EnchantSpellChecker { - public: -- bool isAvailable(); -- auto knownLanguages(); -+ std::vector<QString> knownLanguages(); - bool checkSpelling(const QString &word); -- auto findSuggestions(const QString &word); -- void addWord(const QString &wordToAdd); -+ std::vector<QString> findSuggestions(const QString &word); -+ void addWord(const QString &word); - void ignoreWord(const QString &word); - void removeWord(const QString &word); - bool isWordInDictionary(const QString &word); -@@ -31,41 +41,21 @@ public: - private: - EnchantSpellChecker(); - EnchantSpellChecker(const EnchantSpellChecker&) = delete; -- EnchantSpellChecker& operator =(const EnchantSpellChecker&) = delete; -+ EnchantSpellChecker &operator=(const EnchantSpellChecker&) = delete; - -- std::unique_ptr<enchant::Broker> _brokerHandle; -- std::vector<std::unique_ptr<enchant::Dict>> _validators; -+ DictPtr getValidatorByWord(const QString &word); -+ -+ Sonnet::GuessLanguage _guessLanguage; -+ enchant::Broker _brokerHandle; -+ base::flat_map<QString, DictPtr> _validatorCache; -+ -+ QString _prevLang; -+ QString _locale; - }; - - EnchantSpellChecker::EnchantSpellChecker() { -- if (!enchant::loader::do_explicit_linking()) return; -- -- std::set<std::string> langs; -- _brokerHandle = std::make_unique<enchant::Broker>(); -- _brokerHandle->list_dicts([]( -- const char *language, -- const char *provider, -- const char *description, -- const char *filename, -- void *our_payload) { -- static_cast<decltype(langs)*>(our_payload)->insert(language); -- }, &langs); -- using DictPtr = std::unique_ptr<enchant::Dict>; -- _validators.reserve(langs.size()); -- try { -- std::string langTag = QLocale::system().name().toStdString(); -- _validators.push_back(DictPtr(_brokerHandle->request_dict(langTag))); -- langs.erase(langTag); -- } catch (const enchant::Exception &e) { -- // no first dictionary found -- } -- for (const std::string &language : langs) { -- try { -- _validators.push_back(DictPtr(_brokerHandle->request_dict(language))); -- } catch (const enchant::Exception &e) { -- base::Integration::Instance().logMessage(QString("Catch after request_dict: ") + e.what()); -- } -- } -+ _prevLang = _locale = QLocale::system().name(); -+ _guessLanguage.setLimits(kMaxItems, kMinReliability); - } - - EnchantSpellChecker *EnchantSpellChecker::instance() { -@@ -73,71 +63,101 @@ EnchantSpellChecker *EnchantSpellChecker::instance() { - return &capsule; - } - --bool EnchantSpellChecker::isAvailable() { -- return !_validators.empty(); --} -+DictPtr EnchantSpellChecker::getValidatorByWord(const QString &word) { -+ // If GuessLanguage can't guess the language, it fallback to the first available dictionary in this list -+ // Note: when Sonnet is built statically, it can use only Hunspell -+ const auto guessLangs = QStringList() << _prevLang << _locale; - --auto EnchantSpellChecker::knownLanguages() { -- return _validators | ranges::views::transform([](const auto &validator) { -- return QString(validator->get_lang().c_str()); -- }) | ranges::to_vector; --} -+ const auto lang = _guessLanguage.identify(word, guessLangs); -+ _prevLang = lang; - --bool EnchantSpellChecker::checkSpelling(const QString &word) { -- auto w = word.toStdString(); -- return ranges::any_of(_validators, [&](const auto &validator) { -+ auto &validator = _validatorCache[lang]; -+ -+ if (!validator) { - try { -- return validator->check(w); -+ validator.reset(_brokerHandle.request_dict(lang.toStdString())); - } catch (const enchant::Exception &e) { -- base::Integration::Instance().logMessage(QString("Catch after check '") + word + "': " + e.what()); -- return true; -+ base::Integration::Instance().logMessage( -+ QStringLiteral("Catch after request_dict: %1").arg(e.what())); - } -- }) || _validators.empty(); -+ } -+ -+ return validator; -+} -+ -+std::vector<QString> EnchantSpellChecker::knownLanguages() { -+ std::vector<QString> langs; -+ _brokerHandle.list_dicts([]( -+ const char *language, -+ const char *provider, -+ const char *description, -+ const char *filename, -+ void *our_payload) { -+ static_cast<decltype(langs)*>(our_payload) -+ ->push_back(QString::fromLatin1(language)); -+ }, &langs); -+ return langs; - } - --auto EnchantSpellChecker::findSuggestions(const QString &word) { -- auto w = word.toStdString(); -+bool EnchantSpellChecker::checkSpelling(const QString &word) { -+ auto validator = getValidatorByWord(word); -+ if (!validator) return true; -+ -+ try { -+ return validator->check(word.toStdString()); -+ } catch (const enchant::Exception &e) { -+ base::Integration::Instance().logMessage( -+ QStringLiteral("Catch after check %1: %2") -+ .arg(word).arg(e.what())); -+ return true; -+ } -+} -+ -+std::vector<QString> EnchantSpellChecker::findSuggestions( -+ const QString &word) { -+ auto validator = getValidatorByWord(word); - std::vector<QString> result; -- for (const auto &validator : _validators) { -- for (const auto &replacement : validator->suggest(w)) { -- if (!replacement.empty()) { -- result.push_back(replacement.c_str()); -- } -- if (result.size() >= Platform::Spellchecker::kMaxSuggestions) { -- break; -- } -+ if (!validator) return result; -+ -+ for (const auto &replacement : validator->suggest(word.toStdString())) { -+ if (!replacement.empty()) { -+ result.push_back(replacement.c_str()); - } -- if (!result.empty()) { -+ if (result.size() >= Platform::Spellchecker::kMaxSuggestions) { - break; - } - } - return result; - } - --void EnchantSpellChecker::addWord(const QString &wordToAdd) { -- auto word = wordToAdd.toStdString(); -- auto &&first = _validators.at(0); -- first->add(word); -- first->add_to_session(word); -+void EnchantSpellChecker::addWord(const QString &word) { -+ auto validator = getValidatorByWord(word); -+ if (!validator) return; -+ -+ validator->add(word.toStdString()); - } - - void EnchantSpellChecker::ignoreWord(const QString &word) { -- _validators.at(0)->add_to_session(word.toStdString()); -+ auto validator = getValidatorByWord(word); -+ if (!validator) return; -+ -+ validator->add_to_session(word.toStdString()); - } - - void EnchantSpellChecker::removeWord(const QString &word) { -- auto w = word.toStdString(); -- for (const auto &validator : _validators) { -- validator->remove_from_session(w); -- validator->remove(w); -- } -+ auto validator = getValidatorByWord(word); -+ if (!validator) return; -+ -+ const auto w = word.toStdString(); -+ validator->remove_from_session(w); -+ validator->remove(w); - } - - bool EnchantSpellChecker::isWordInDictionary(const QString &word) { -- auto w = word.toStdString(); -- return ranges::any_of(_validators, [&w](const auto &validator) { -- return validator->is_added(w); -- }); -+ auto validator = getValidatorByWord(word); -+ if (!validator) return false; -+ -+ return validator->is_added(word.toStdString()); - } - - } // namespace -@@ -146,7 +166,8 @@ void Init() { - } - - bool IsAvailable() { -- return EnchantSpellChecker::instance()->isAvailable(); -+ static auto Available = enchant::loader::do_explicit_linking(); -+ return Available; - } - - void KnownLanguages(std::vector<QString> *langCodes) { -Submodule cmake contains modified content -diff --git a/cmake/external/CMakeLists.txt b/cmake/external/CMakeLists.txt -index 4187ad3..de044e1 100644 ---- a/cmake/external/CMakeLists.txt -+++ b/cmake/external/CMakeLists.txt -@@ -9,6 +9,9 @@ add_subdirectory(crash_reports) - add_subdirectory(expected) - add_subdirectory(ffmpeg) - add_subdirectory(gsl) -+if (LINUX) -+ add_subdirectory(hunspell) -+endif() - add_subdirectory(iconv) - add_subdirectory(lz4) - add_subdirectory(openal) -@@ -18,6 +21,9 @@ add_subdirectory(qt) - add_subdirectory(qr_code_generator) - add_subdirectory(ranges) - add_subdirectory(rlottie) -+if (LINUX) -+ add_subdirectory(sonnet) -+endif() - if (APPLE) - add_subdirectory(sp_media_key_tap) - endif() -diff --git a/cmake/external/hunspell/CMakeLists.txt b/cmake/external/hunspell/CMakeLists.txt -new file mode 100644 -index 0000000..88fd143 ---- /dev/null -+++ b/cmake/external/hunspell/CMakeLists.txt -@@ -0,0 +1,25 @@ -+# This file is part of Desktop App Toolkit, -+# a set of libraries for developing nice desktop applications. -+# -+# For license and copyright information please follow this link: -+# https://github.com/desktop-app/legal/blob/master/LEGAL -+ -+add_library(external_hunspell INTERFACE IMPORTED GLOBAL) -+add_library(desktop-app::external_hunspell ALIAS external_hunspell) -+ -+if (DESKTOP_APP_USE_PACKAGED) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(HUNSPELL hunspell) -+ target_include_directories(external_hunspell INTERFACE ${HUNSPELL_INCLUDE_DIRS}) -+else() -+ target_include_directories(external_hunspell SYSTEM -+ INTERFACE -+ ${libs_loc}/hunspell/src/hunspell -+ ) -+endif() -+ -+if (DESKTOP_APP_USE_PACKAGED) -+ target_link_libraries(external_hunspell INTERFACE ${HUNSPELL_LIBRARIES}) -+else() -+ target_link_static_libraries(external_sonnet INTERFACE hunspell) -+endif() -diff --git a/cmake/external/sonnet/CMakeLists.txt b/cmake/external/sonnet/CMakeLists.txt -new file mode 100644 -index 0000000..96ef3d1 ---- /dev/null -+++ b/cmake/external/sonnet/CMakeLists.txt -@@ -0,0 +1,84 @@ -+# This file is part of Desktop App Toolkit, -+# a set of libraries for developing nice desktop applications. -+# -+# For license and copyright information please follow this link: -+# https://github.com/desktop-app/legal/blob/master/LEGAL -+ -+if (DESKTOP_APP_USE_PACKAGED) -+ add_library(external_sonnet INTERFACE IMPORTED GLOBAL) -+ add_library(desktop-app::external_sonnet ALIAS external_sonnet) -+ -+ find_package(KF5Sonnet) -+ -+ if (KF5Sonnet_FOUND) -+ target_link_libraries(external_sonnet INTERFACE KF5::SonnetCore) -+ endif() -+else() -+ add_subdirectory(parsetrigrams) -+ -+ add_library(external_sonnet OBJECT) -+ add_library(desktop-app::external_sonnet ALIAS external_sonnet) -+ init_target(external_sonnet "(external)") -+ -+ get_filename_component(src_loc . REALPATH) -+ set(sonnet_loc ${third_party_loc}/sonnet) -+ -+ set_target_properties(external_sonnet PROPERTIES AUTOMOC ON AUTORCC ON) -+ -+ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/data/trigrams.map" -+ COMMAND external_parsetrigrams "${sonnet_loc}/data/trigrams" > "${CMAKE_BINARY_DIR}/data/trigrams.map") -+ configure_file(${sonnet_loc}/data/trigrams.qrc.in ${CMAKE_BINARY_DIR}/data/trigrams.qrc @ONLY) -+ -+ target_sources(external_sonnet -+ PRIVATE -+ ${CMAKE_BINARY_DIR}/data/trigrams.qrc -+ ${sonnet_loc}/src/core/backgroundchecker.cpp -+ ${sonnet_loc}/src/core/backgroundchecker.h -+ ${sonnet_loc}/src/core/backgroundchecker_p.h -+ ${sonnet_loc}/src/core/client.cpp -+ ${sonnet_loc}/src/core/client_p.h -+ ${sonnet_loc}/src/core/guesslanguage.cpp -+ ${sonnet_loc}/src/core/guesslanguage.h -+ ${sonnet_loc}/src/core/languagefilter.cpp -+ ${sonnet_loc}/src/core/languagefilter_p.h -+ ${sonnet_loc}/src/core/loader.cpp -+ ${sonnet_loc}/src/core/loader_p.h -+ ${sonnet_loc}/src/core/settings.cpp -+ ${sonnet_loc}/src/core/settings_p.h -+ ${sonnet_loc}/src/core/speller.cpp -+ ${sonnet_loc}/src/core/speller.h -+ ${sonnet_loc}/src/core/spellerplugin.cpp -+ ${sonnet_loc}/src/core/spellerplugin_p.h -+ ${sonnet_loc}/src/core/textbreaks.cpp -+ ${sonnet_loc}/src/core/textbreaks_p.h -+ ${sonnet_loc}/src/core/tokenizer.cpp -+ ${sonnet_loc}/src/core/tokenizer_p.h -+ ${sonnet_loc}/src/plugins/hunspell/hunspellclient.cpp -+ ${sonnet_loc}/src/plugins/hunspell/hunspellclient.h -+ ${sonnet_loc}/src/plugins/hunspell/hunspelldict.cpp -+ ${sonnet_loc}/src/plugins/hunspell/hunspelldict.h -+ ${src_loc}/config/core_debug.cpp -+ ${src_loc}/config/core_debug.h -+ ${src_loc}/config/hunspelldebug.cpp -+ ${src_loc}/config/hunspelldebug.h -+ ) -+ -+ target_compile_definitions(external_sonnet -+ PRIVATE -+ QT_USE_QSTRINGBUILDER -+ SONNET_STATIC -+ ) -+ -+ target_include_directories(external_sonnet -+ PUBLIC -+ ${sonnet_loc}/src/core -+ ${sonnet_loc}/src/plugins/hunspell -+ ${src_loc}/config -+ ) -+ -+ target_link_libraries(external_sonnet -+ PUBLIC -+ desktop-app::external_qt -+ desktop-app::external_hunspell -+ ) -+endif() -diff --git a/cmake/external/sonnet/config/config-hunspell.h b/cmake/external/sonnet/config/config-hunspell.h -new file mode 100644 -index 0000000..80eddda ---- /dev/null -+++ b/cmake/external/sonnet/config/config-hunspell.h -@@ -0,0 +1 @@ -+#define USE_OLD_HUNSPELL_API 0 -diff --git a/cmake/external/sonnet/config/core_debug.cpp b/cmake/external/sonnet/config/core_debug.cpp -new file mode 100644 -index 0000000..c3aa700 ---- /dev/null -+++ b/cmake/external/sonnet/config/core_debug.cpp -@@ -0,0 +1,2 @@ -+#include "core_debug.h" -+Q_LOGGING_CATEGORY(SONNET_LOG_CORE, "sonnet.core", QtInfoMsg) -diff --git a/cmake/external/sonnet/config/core_debug.h b/cmake/external/sonnet/config/core_debug.h -new file mode 100644 -index 0000000..ba71c23 ---- /dev/null -+++ b/cmake/external/sonnet/config/core_debug.h -@@ -0,0 +1,4 @@ -+#pragma once -+ -+#include <QLoggingCategory> -+Q_DECLARE_LOGGING_CATEGORY(SONNET_LOG_CORE) -diff --git a/cmake/external/sonnet/config/hunspelldebug.cpp b/cmake/external/sonnet/config/hunspelldebug.cpp -new file mode 100644 -index 0000000..527f60d ---- /dev/null -+++ b/cmake/external/sonnet/config/hunspelldebug.cpp -@@ -0,0 +1,2 @@ -+#include "hunspelldebug.h" -+Q_LOGGING_CATEGORY(SONNET_HUNSPELL, "sonnet.plugins.hunspell", QtInfoMsg) -diff --git a/cmake/external/sonnet/config/hunspelldebug.h b/cmake/external/sonnet/config/hunspelldebug.h -new file mode 100644 -index 0000000..26b2455 ---- /dev/null -+++ b/cmake/external/sonnet/config/hunspelldebug.h -@@ -0,0 +1,4 @@ -+#pragma once -+ -+#include <QLoggingCategory> -+Q_DECLARE_LOGGING_CATEGORY(SONNET_HUNSPELL) -diff --git a/cmake/external/sonnet/config/sonnetcore_export.h b/cmake/external/sonnet/config/sonnetcore_export.h -new file mode 100644 -index 0000000..db467d8 ---- /dev/null -+++ b/cmake/external/sonnet/config/sonnetcore_export.h -@@ -0,0 +1 @@ -+#define SONNETCORE_EXPORT -diff --git a/cmake/external/sonnet/parsetrigrams/CMakeLists.txt b/cmake/external/sonnet/parsetrigrams/CMakeLists.txt -new file mode 100644 -index 0000000..bf61d46 ---- /dev/null -+++ b/cmake/external/sonnet/parsetrigrams/CMakeLists.txt -@@ -0,0 +1,14 @@ -+add_executable(external_parsetrigrams) -+init_target(external_parsetrigrams "(external)") -+ -+set(sonnet_loc ${third_party_loc}/sonnet) -+ -+target_sources(external_parsetrigrams -+PRIVATE -+ ${sonnet_loc}/data/parsetrigrams.cpp -+) -+ -+target_link_libraries(external_parsetrigrams -+PUBLIC -+ desktop-app::external_qt -+) -diff --git a/cmake/options.cmake b/cmake/options.cmake -index 56dbe48..a207f28 100644 ---- a/cmake/options.cmake -+++ b/cmake/options.cmake -@@ -19,6 +19,13 @@ if (DESKTOP_APP_DISABLE_CRASH_REPORTS) - ) - endif() - -+if (DESKTOP_APP_USE_PACKAGED) -+ target_compile_definitions(common_options -+ INTERFACE -+ DESKTOP_APP_USE_PACKAGED -+ ) -+endif() -+ - if (WIN32) - include(cmake/options_win.cmake) - elseif (APPLE) diff --git a/remove-qt-config.patch b/remove-qt-config.patch deleted file mode 100644 index 84c4b156121d..000000000000 --- a/remove-qt-config.patch +++ /dev/null @@ -1,13 +0,0 @@ -Submodule Telegram/lib_ui contains modified content -diff --git a/Telegram/lib_ui/qt_conf/linux.qrc b/Telegram/lib_ui/qt_conf/linux.qrc -index b9f5692..8a9bbb3 100644 ---- a/Telegram/lib_ui/qt_conf/linux.qrc -+++ b/Telegram/lib_ui/qt_conf/linux.qrc -@@ -1,7 +1,4 @@ - <RCC> -- <qresource prefix="/qt/etc"> -- <file alias="qt.conf">qt_linux.conf</file> -- </qresource> - <qresource prefix="/fc"> - <file>fc-custom.conf</file> - </qresource> |