forked from pool/telegram-desktop
3e6e4c093d
- Upgrade to 1.9.3 * Videos in chats start playing automatically. * Resume playback from where you left off when watching long videos and listening to long audio tracks. * Control automatic playback for videos, GIFs and round video messages in Settings > Advanced > Automatic media download. * Enjoy system spell checker support on all modern systems. OBS-URL: https://build.opensuse.org/request/show/764829 OBS-URL: https://build.opensuse.org/package/show/server:messaging/telegram-desktop?expand=0&rev=115
323 lines
9.5 KiB
Diff
323 lines
9.5 KiB
Diff
From: John Zimmermann <johnz@posteo.net>
|
|
--- a/cmake/external/crash_reports/CMakeLists.txt
|
|
+++ b/cmake/external/crash_reports/CMakeLists.txt
|
|
@@ -7,6 +7,7 @@
|
|
add_library(external_crash_reports INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_crash_reports ALIAS external_crash_reports)
|
|
|
|
+if(NOT DESKTOP_APP_DISABLE_CRASH_REPORTS)
|
|
if (WIN32 OR LINUX OR build_macstore)
|
|
add_subdirectory(breakpad)
|
|
target_link_libraries(external_crash_reports
|
|
@@ -20,3 +21,4 @@
|
|
desktop-app::external_crashpad
|
|
)
|
|
endif()
|
|
+endif()
|
|
--- a/cmake/external/ffmpeg/CMakeLists.txt
|
|
+++ b/cmake/external/ffmpeg/CMakeLists.txt
|
|
@@ -7,6 +7,18 @@
|
|
add_library(external_ffmpeg INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_ffmpeg ALIAS external_ffmpeg)
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_package(PkgConfig REQUIRED)
|
|
+ pkg_check_modules(FFMPEG REQUIRED libavcodec libavformat libavutil libswresample libswscale)
|
|
+ target_link_libraries(external_ffmpeg
|
|
+ INTERFACE
|
|
+ ${FFMPEG_LIBRARIES}
|
|
+ )
|
|
+ target_include_directories(external_ffmpeg SYSTEM
|
|
+ INTERFACE
|
|
+ ${FFMPEG_INCLUDE_DIRS}
|
|
+ )
|
|
+else()
|
|
target_include_directories(external_ffmpeg SYSTEM
|
|
INTERFACE
|
|
${libs_loc}/ffmpeg
|
|
@@ -36,3 +48,4 @@
|
|
Xrender
|
|
)
|
|
endif()
|
|
+endif()
|
|
--- a/cmake/external/openal/CMakeLists.txt
|
|
+++ b/cmake/external/openal/CMakeLists.txt
|
|
@@ -7,6 +7,21 @@
|
|
add_library(external_openal INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_openal ALIAS external_openal)
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_package(OpenAL REQUIRED)
|
|
+ target_include_directories(external_openal SYSTEM
|
|
+ INTERFACE
|
|
+ ${OPENAL_INCLUDE_DIR}
|
|
+ )
|
|
+ target_link_libraries(external_openal
|
|
+ INTERFACE
|
|
+ ${OPENAL_LIBRARY}
|
|
+ )
|
|
+ target_compile_definitions(external_openal
|
|
+ INTERFACE
|
|
+ AL_ALEXT_PROTOTYPES
|
|
+ )
|
|
+else()
|
|
if (WIN32)
|
|
target_include_directories(external_openal SYSTEM
|
|
INTERFACE
|
|
@@ -41,3 +56,4 @@
|
|
AL_LIBTYPE_STATIC
|
|
AL_ALEXT_PROTOTYPES
|
|
)
|
|
+endif()
|
|
--- a/cmake/external/openssl/CMakeLists.txt
|
|
+++ b/cmake/external/openssl/CMakeLists.txt
|
|
@@ -7,7 +7,13 @@
|
|
add_library(external_openssl INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_openssl ALIAS external_openssl)
|
|
|
|
-if (LINUX)
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_package(OpenSSL REQUIRED)
|
|
+ target_include_directories(external_openssl SYSTEM
|
|
+ INTERFACE
|
|
+ ${OPENSSL_INCLUDE_DIR}
|
|
+ )
|
|
+elseif (LINUX)
|
|
target_include_directories(external_openssl SYSTEM
|
|
INTERFACE
|
|
/usr/local/desktop-app/openssl-1.1.1/include
|
|
@@ -24,6 +30,13 @@
|
|
)
|
|
endif()
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ target_link_libraries(external_openssl
|
|
+ INTERFACE
|
|
+ OpenSSL::Crypto
|
|
+ OpenSSL::SSL
|
|
+ )
|
|
+else()
|
|
if (WIN32)
|
|
set(openssl_lib_ext lib)
|
|
set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>)
|
|
@@ -45,6 +58,7 @@
|
|
${openssl_lib_loc}/libssl.${openssl_lib_ext}
|
|
${openssl_lib_loc}/libcrypto.${openssl_lib_ext}
|
|
)
|
|
+endif()
|
|
|
|
if (LINUX)
|
|
if (DESKTOP_APP_USE_GLIBC_WRAPS)
|
|
--- a/cmake/external/opus/CMakeLists.txt
|
|
+++ b/cmake/external/opus/CMakeLists.txt
|
|
@@ -7,6 +7,18 @@
|
|
add_library(external_opus INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_opus ALIAS external_opus)
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_package(PkgConfig REQUIRED)
|
|
+ pkg_check_modules(OPUS REQUIRED opus)
|
|
+ target_include_directories(external_opus SYSTEM
|
|
+ INTERFACE
|
|
+ ${OPUS_INCLUDE_DIRS}
|
|
+ )
|
|
+ target_link_libraries(external_opus
|
|
+ INTERFACE
|
|
+ ${OPUS_LIBRARIES}
|
|
+ )
|
|
+else()
|
|
target_include_directories(external_opus SYSTEM
|
|
INTERFACE
|
|
${libs_loc}/opus/include
|
|
@@ -43,3 +55,4 @@
|
|
opus
|
|
)
|
|
endif()
|
|
+endif()
|
|
--- a/cmake/external/qt/CMakeLists.txt
|
|
+++ b/cmake/external/qt/CMakeLists.txt
|
|
@@ -15,6 +15,36 @@
|
|
endif()
|
|
endif()
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ get_target_property(QTCORE_INCLUDE_DIRS Qt5::Core INTERFACE_INCLUDE_DIRECTORIES)
|
|
+ list(GET QTCORE_INCLUDE_DIRS 0 QT_INCLUDE_DIR)
|
|
+
|
|
+ foreach(__qt_module IN ITEMS QtCore QtGui)
|
|
+ list(APPEND QT_PRIVATE_INCLUDE_DIRS
|
|
+ ${QT_INCLUDE_DIR}/${__qt_module}/${Qt5_VERSION}
|
|
+ ${QT_INCLUDE_DIR}/${__qt_module}/${Qt5_VERSION}/${__qt_module}
|
|
+ )
|
|
+ endforeach()
|
|
+ message(STATUS "Using Qt private include directories: ${QT_PRIVATE_INCLUDE_DIRS}")
|
|
+ target_include_directories(external_qt SYSTEM
|
|
+ INTERFACE
|
|
+ ${QT_PRIVATE_INCLUDE_DIRS}
|
|
+ )
|
|
+ target_link_libraries(external_qt
|
|
+ INTERFACE
|
|
+ Qt5::DBus
|
|
+ Qt5::Network
|
|
+ Qt5::Widgets
|
|
+ desktop-app::external_zlib
|
|
+ xcb
|
|
+ X11
|
|
+ X11-xcb
|
|
+ dbus-1
|
|
+ dl
|
|
+ glib-2.0
|
|
+ pthread
|
|
+ )
|
|
+else()
|
|
target_include_directories(external_qt SYSTEM
|
|
INTERFACE
|
|
${qt_loc}/include
|
|
@@ -215,3 +245,4 @@
|
|
pthread
|
|
)
|
|
endif()
|
|
+endif()
|
|
--- a/cmake/external/qt/package.cmake
|
|
+++ b/cmake/external/qt/package.cmake
|
|
@@ -4,6 +4,9 @@
|
|
# For license and copyright information please follow this link:
|
|
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+
|
|
+else()
|
|
if (NOT APPLE OR NOT build_osx)
|
|
set(qt_version 5.12.5)
|
|
else()
|
|
@@ -17,6 +20,7 @@
|
|
endif()
|
|
|
|
set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5)
|
|
+endif()
|
|
|
|
find_package(Qt5 COMPONENTS Core Gui Widgets Network REQUIRED)
|
|
|
|
--- a/cmake/external/zlib/CMakeLists.txt
|
|
+++ b/cmake/external/zlib/CMakeLists.txt
|
|
@@ -7,6 +7,18 @@
|
|
add_library(external_zlib INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_zlib ALIAS external_zlib)
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_package(ZLIB REQUIRED)
|
|
+ find_package(PkgConfig REQUIRED)
|
|
+ pkg_check_modules(MINIZIP REQUIRED minizip)
|
|
+ find_library(minizip_LIBRARY minizip)
|
|
+ target_link_libraries(external_zlib INTERFACE ZLIB::ZLIB ${minizip_LIBRARY})
|
|
+ target_include_directories(external_zlib SYSTEM
|
|
+ INTERFACE
|
|
+ ${ZLIB_INCLUDE_DIR}
|
|
+ ${MINIZIP_INCLUDE_DIRS}
|
|
+ )
|
|
+else()
|
|
if (NOT WIN32)
|
|
add_library(external_minizip STATIC)
|
|
init_target(external_minizip "(external)")
|
|
@@ -49,3 +61,4 @@
|
|
else()
|
|
target_link_static_libraries(external_zlib INTERFACE z)
|
|
endif()
|
|
+endif()
|
|
--- a/cmake/init_target.cmake
|
|
+++ b/cmake/init_target.cmake
|
|
@@ -27,7 +27,7 @@
|
|
endif()
|
|
target_link_libraries(${target_name} PUBLIC desktop-app::common_options)
|
|
set_target_properties(${target_name} PROPERTIES
|
|
- LINK_SEARCH_START_STATIC 1
|
|
+ LINK_SEARCH_START_STATIC 0
|
|
XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES
|
|
XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES
|
|
XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES
|
|
--- a/cmake/options_linux.cmake
|
|
+++ b/cmake/options_linux.cmake
|
|
@@ -25,6 +25,9 @@
|
|
-Wno-stringop-overflow
|
|
-Wno-maybe-uninitialized
|
|
-Wno-error=class-memaccess
|
|
+ -Wno-error=deprecated-copy
|
|
+ -Wno-error=deprecated-declarations
|
|
+ -Wno-error=redundant-move
|
|
)
|
|
target_link_options(common_options
|
|
INTERFACE
|
|
@@ -33,8 +36,5 @@
|
|
if (build_linux32)
|
|
target_compile_options(common_options INTERFACE -g0)
|
|
target_link_options(common_options INTERFACE -g0)
|
|
-else()
|
|
- 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()
|
|
|
|
--- a/cmake/variables.cmake
|
|
+++ b/cmake/variables.cmake
|
|
@@ -10,6 +10,7 @@
|
|
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_SYSTEM_LIBS "Use system libs where possible." OFF)
|
|
|
|
function(report_bad_special_target)
|
|
message(FATAL_ERROR "Bad special target '${DESKTOP_APP_SPECIAL_TARGET}'")
|
|
@@ -59,8 +60,7 @@
|
|
set(DESKTOP_APP_USE_GLIBC_WRAPS OFF)
|
|
else()
|
|
set(LINUX 1)
|
|
- execute_process(COMMAND uname -m OUTPUT_VARIABLE machine_uname)
|
|
- if (NOT ${machine_uname} MATCHES "x86_64" AND NOT ${machine_uname} MATCHES "aarch64")
|
|
+ if (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
set(build_linux32 1)
|
|
endif()
|
|
if (DESKTOP_APP_SPECIAL_TARGET STREQUAL "linux")
|
|
--- a/cmake/external/lz4/CMakeLists.txt
|
|
+++ b/cmake/external/lz4/CMakeLists.txt
|
|
@@ -4,8 +4,18 @@
|
|
# For license and copyright information please follow this link:
|
|
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ add_library(external_lz4 INTERFACE IMPORTED GLOBAL)
|
|
+ add_library(desktop-app::external_lz4 ALIAS external_lz4)
|
|
+
|
|
+ find_package(PkgConfig REQUIRED)
|
|
+ pkg_check_modules(LZ4 REQUIRED liblz4)
|
|
+ target_link_libraries(external_lz4 INTERFACE ${LZ4_LIBRARIES})
|
|
+ target_include_directories(external_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIRS})
|
|
+else()
|
|
add_library(external_lz4 OBJECT)
|
|
add_library(desktop-app::external_lz4 ALIAS external_lz4)
|
|
+
|
|
init_target(external_lz4 "(external)")
|
|
|
|
set(lz4_loc ${third_party_loc}/lz4/lib)
|
|
@@ -27,3 +37,4 @@
|
|
PUBLIC
|
|
${lz4_loc}
|
|
)
|
|
+endif()
|
|
--- a/cmake/external/xxhash/CMakeLists.txt
|
|
+++ b/cmake/external/xxhash/CMakeLists.txt
|
|
@@ -7,6 +7,10 @@
|
|
add_library(external_xxhash INTERFACE IMPORTED GLOBAL)
|
|
add_library(desktop-app::external_xxhash ALIAS external_xxhash)
|
|
|
|
+if(DESKTOP_APP_USE_SYSTEM_LIBS)
|
|
+ find_library(xxhash_LIBRARIES xxhash)
|
|
+ target_link_libraries(external_xxhash INTERFACE ${xxhash_LIBRARIES})
|
|
+else()
|
|
target_include_directories(external_xxhash SYSTEM
|
|
INTERFACE
|
|
${third_party_loc}/xxHash
|
|
@@ -16,3 +20,4 @@
|
|
INTERFACE
|
|
XXH_INLINE_ALL
|
|
)
|
|
+endif()
|