1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
Description: Remove ability to build tdapi & tdclient dynamically
Caused tests to segfault, and upstream says that dynamic usage of these libraries is basically never needed.
Author: Cosima Neidahl <opna2608@protonmail.com>
Origin: backport, https://github.com/tdlib/td/commit/c1fea0f26355d94842f25651edc154842563e97b
Bug: https://github.com/tdlib/td/issues/3090
Forwarded: https://github.com/tdlib/td/pull/3092
Applied-Upstream: 1.8.38
Last-Update: 2025-01-10
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -841,7 +841,7 @@
target_link_libraries(memprof_stat PRIVATE tdutils)
-add_library(tdapi ${TL_TD_API_SOURCE})
+add_library(tdapi STATIC ${TL_TD_API_SOURCE})
target_include_directories(tdapi PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> INTERFACE $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
target_link_libraries(tdapi PRIVATE tdutils)
@@ -881,7 +881,7 @@
endif()
endif()
-add_library(tdclient td/telegram/Client.cpp td/telegram/Client.h td/telegram/Log.cpp td/telegram/Log.h)
+add_library(tdclient STATIC td/telegram/Client.cpp td/telegram/Client.h td/telegram/Log.cpp td/telegram/Log.h)
target_include_directories(tdclient PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
@@ -1010,13 +1010,22 @@
add_library(Td::TdJson ALIAS TdJson)
add_library(Td::TdJsonStatic ALIAS TdJsonStatic)
-install(TARGETS tdjson TdJson tdjson_static TdJsonStatic tdjson_private tdclient tdcore tdapi TdStatic EXPORT TdTargets
+set(INSTALL_TARGETS tdjson TdJson)
+set(INSTALL_STATIC_TARGETS tdjson_static TdJsonStatic tdjson_private tdclient tdcore tdapi TdStatic)
+
+install(TARGETS ${INSTALL_TARGETS} EXPORT TdTargets
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
+install(TARGETS ${INSTALL_STATIC_TARGETS} EXPORT TdStaticTargets
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+)
+
# generate pkg-config files
include(GeneratePkgConfig)
@@ -1069,6 +1078,4 @@
)
# Add SOVERSION to shared libraries
-set_property(TARGET tdclient PROPERTY SOVERSION "${TDLib_VERSION}")
-set_property(TARGET tdapi PROPERTY SOVERSION "${TDLib_VERSION}")
set_property(TARGET tdjson PROPERTY SOVERSION "${TDLib_VERSION}")
|