--- CMakeLists.txt.orig	2026-10-08 21:02:52 UTC
+++ CMakeLists.txt
@@ -230,7 +230,7 @@ endif()
   add_subdirectory(test)
 endif()
 
-if (NOT CMAKE_CROSSCOMPILING)
+if (FREEBSD_BUILD_BENCHMARKS AND NOT CMAKE_CROSSCOMPILING)
   add_subdirectory(benchmark)
 endif()
 
@@ -1323,7 +1323,7 @@ set(MEMPROF_STAT_SOURCE
 # LIBRARIES
 
 # memprof - simple library for memory usage profiling
-add_library(memprof STATIC ${MEMPROF_SOURCE})
+add_library(memprof ${MEMPROF_SOURCE})
 target_include_directories(memprof PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
 target_link_libraries(memprof PRIVATE tdutils)
 if (MEMPROF)
@@ -1337,12 +1337,12 @@ endif()
   endif()
 endif()
 
-add_library(memprof_stat EXCLUDE_FROM_ALL STATIC ${MEMPROF_STAT_SOURCE})
+add_library(memprof_stat EXCLUDE_FROM_ALL ${MEMPROF_STAT_SOURCE})
 target_include_directories(memprof_stat PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
 target_link_libraries(memprof_stat PRIVATE tdutils)
 
 
-add_library(tdapi STATIC ${TL_TD_API_SOURCE})
+add_library(tdapi ${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)
 
@@ -1359,7 +1359,7 @@ endif()
   add_dependencies(tdapi tl_generate_common)
 endif()
 
-add_library(tdmtproto STATIC ${TD_MTPROTO_SOURCE})
+add_library(tdmtproto ${TD_MTPROTO_SOURCE})
 target_include_directories(tdmtproto PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
 target_include_directories(tdmtproto SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR})
 target_link_libraries(tdmtproto PUBLIC tdactor tdnet tdutils PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES})
@@ -1376,11 +1376,11 @@ if (MSVC AND TD_ENABLE_LTO)
 
 # tdcore - internal TDLib interface
 if (MSVC AND TD_ENABLE_LTO)
-  add_library(tdcore_part1 STATIC ${TDLIB_SOURCE_PART1})
+  add_library(tdcore_part1 ${TDLIB_SOURCE_PART1})
   target_include_directories(tdcore_part1 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
   target_link_libraries(tdcore_part1 PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto)
 
-  add_library(tdcore_part2 STATIC ${TDLIB_SOURCE_PART2})
+  add_library(tdcore_part2 ${TDLIB_SOURCE_PART2})
   target_include_directories(tdcore_part2 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
   target_link_libraries(tdcore_part2 PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto)
 
@@ -1389,7 +1389,7 @@ else()
 
   set(TD_CORE_PART_TARGETS tdcore_part1 tdcore_part2)
 else()
-  add_library(tdcore STATIC ${TDLIB_SOURCE})
+  add_library(tdcore ${TDLIB_SOURCE})
   target_include_directories(tdcore PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
   target_link_libraries(tdcore PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto)
 
@@ -1403,7 +1403,7 @@ endif()
   endif()
 endif()
 
-add_library(tdclient STATIC td/telegram/Client.cpp td/telegram/Client.h td/telegram/Log.cpp td/telegram/Log.h)
+add_library(tdclient 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}>)
 target_link_libraries(tdclient PUBLIC tdapi PRIVATE tdcore)
 
@@ -1436,7 +1436,7 @@ endif()
 endif()
 
 # tdc - TDLib interface in pure C
-add_library(tdc STATIC EXCLUDE_FROM_ALL ${TL_C_SCHEME_SOURCE} td/telegram/td_c_client.cpp td/telegram/td_c_client.h)
+add_library(tdc EXCLUDE_FROM_ALL ${TL_C_SCHEME_SOURCE} td/telegram/td_c_client.cpp td/telegram/td_c_client.h)
 target_include_directories(tdc PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${TL_TD_AUTO_INCLUDE_DIR}>)
 target_link_libraries(tdc PRIVATE tdclient tdutils)
 if (NOT CMAKE_CROSSCOMPILING)
@@ -1611,5 +1611,53 @@ install(FILES "TdConfig.cmake" "${CMAKE_CURRENT_BINARY
   DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Td"
 )
 
+# Let find_package(tde2e) succeed against the full TDLib too -- as with TD_E2E_ONLY above,
+# only the tde2e:: namespace differs from the Td:: targets
+if (TD_INSTALL_STATIC_LIBRARIES)
+  install(EXPORT TdStaticTargets
+    FILE tde2eStaticTargets.cmake
+    NAMESPACE tde2e::
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tde2e"
+  )
+  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/tde2eConfig.cmake"
+    "include(\"\${CMAKE_CURRENT_LIST_DIR}/tde2eStaticTargets.cmake\")\n"
+    "include(CMakePackageConfigHelpers)\n"
+    "include(CMakeFindDependencyMacro)\n"
+    "find_dependency(Td ${TDLib_VERSION} EXACT CONFIG)\n"
+    "foreach (_tde2e_target tde2e tdutils)\n"
+    "  if (NOT TARGET tde2e::\${_tde2e_target})\n"
+    "    add_library(tde2e::\${_tde2e_target} INTERFACE IMPORTED)\n"
+    "    set_target_properties(tde2e::\${_tde2e_target} PROPERTIES INTERFACE_LINK_LIBRARIES Td::\${_tde2e_target})\n"
+    "  endif()\n"
+    "endforeach()\n"
+  )
+  write_basic_package_version_file("tde2eConfigVersion.cmake"
+    VERSION "${TDLib_VERSION}"
+    COMPATIBILITY ExactVersion
+  )
+  install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tde2eConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/tde2eConfigVersion.cmake"
+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tde2e"
+  )
+endif()
+
 # Add SOVERSION to shared libraries
-set_property(TARGET tdjson PROPERTY SOVERSION "${TDLib_VERSION}")
+set_target_properties(tdapi PROPERTIES 
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        EXPORT_NAME tdapi )
+set_target_properties(tdcore PROPERTIES 
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        EXPORT_NAME tdcore )
+set_target_properties(tdclient PROPERTIES 
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        EXPORT_NAME tdclient )
+set_target_properties(tdjson PROPERTIES 
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        EXPORT_NAME tdjson )
+set_target_properties(tdmtproto PROPERTIES 
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        EXPORT_NAME tdmtproto )
