1
0
telegram-desktop/0001-Dynamic-linking-system-libs.patch
Marcel Kuehlhorn 3e6e4c093d Accepting request 764829 from home:nuklly
- 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
2020-01-16 10:02:40 +00:00

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()