@@ -39,7 +39,8 @@ endif()
3939include (PreventInSourceBuild )
4040prevent_in_source_build ()
4141
42- option (TD_ENABLE_FILTERED_INSTALL "Use \" ON\" to limit installation to files (libraries, dev files) relevant for the chosen \" BUILD_SHARED_LIBS\" value." OFF )
42+ option (TD_INSTALL_STATIC_LIBRARIES "Enable installation of static libraries." ON )
43+ option (TD_INSTALL_SHARED_LIBRARIES "Enable installation of shared libraries." ON )
4344option (TD_ENABLE_JNI "Use \" ON\" to enable JNI-compatible TDLib API." )
4445option (TD_ENABLE_DOTNET "Use \" ON\" to enable generation of C++/CLI or C++/CX TDLib API bindings." )
4546if (NOT CMAKE_CROSSCOMPILING )
@@ -168,9 +169,10 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/td/telegram/GitCommitHash.cpp.in" "$
168169add_subdirectory (tdtl )
169170
170171if (TD_GENERATE_SOURCE_FILES)
171- set (TDUTILS_MIME_TYPE ON CACHE BOOL "" )
172- set (TDUTILS_USE_EXTERNAL_DEPENDENCIES OFF CACHE BOOL "" )
172+ set (TDUTILS_MIME_TYPE ON CACHE BOOL "" FORCE )
173+ set (TDUTILS_USE_EXTERNAL_DEPENDENCIES OFF CACHE BOOL "" FORCE )
173174endif ()
175+ set (TDUTILS_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE )
174176add_subdirectory (tdutils )
175177
176178add_subdirectory (td/generate )
@@ -213,12 +215,16 @@ if (NOT TDUTILS_MIME_TYPE OR NOT TDUTILS_USE_EXTERNAL_DEPENDENCIES)
213215 return ()
214216endif ()
215217
218+ set (TDACTOR_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE )
216219add_subdirectory (tdactor )
217220
221+ set (TDNET_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE )
218222add_subdirectory (tdnet )
219223
224+ set (TDSQLITE_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE )
220225add_subdirectory (sqlite )
221226
227+ set (TDDB_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE )
222228add_subdirectory (tddb )
223229
224230if (BUILD_TESTING)
@@ -1311,7 +1317,7 @@ add_library(Td::TdJsonStatic ALIAS TdJsonStatic)
13111317set (INSTALL_TARGETS tdjson TdJson)
13121318set (INSTALL_STATIC_TARGETS tdjson_static TdJsonStatic tdjson_private "${TD_CORE_PART_TARGETS} " tdcore tdmtproto tdclient TdStatic tdapi)
13131319
1314- if (NOT TD_ENABLE_FILTERED_INSTALL OR BUILD_SHARED_LIBS )
1320+ if (TD_INSTALL_SHARED_LIBRARIES )
13151321 install (TARGETS ${INSTALL_TARGETS} EXPORT TdTargets
13161322 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR} "
13171323 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
@@ -1320,7 +1326,7 @@ if (NOT TD_ENABLE_FILTERED_INSTALL OR BUILD_SHARED_LIBS)
13201326 )
13211327endif ()
13221328
1323- if (NOT TD_ENABLE_FILTERED_INSTALL OR NOT BUILD_SHARED_LIBS )
1329+ if (TD_INSTALL_STATIC_LIBRARIES )
13241330 install (TARGETS ${INSTALL_STATIC_TARGETS} EXPORT TdStaticTargets
13251331 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR} "
13261332 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
@@ -1331,49 +1337,57 @@ endif()
13311337# generate pkg-config files
13321338include (GeneratePkgConfig )
13331339
1334- generate_pkgconfig (tdutils "Telegram Library - Utils" )
1335- generate_pkgconfig (tdactor "Telegram Library - Actor" )
1336- generate_pkgconfig (tdnet "Telegram Library - Net" )
1337- generate_pkgconfig (tdsqlite "Telegram Library - SQLite" )
1338- generate_pkgconfig (tddb "Telegram Library - Database" )
1339- if (MEMPROF)
1340- # generate_pkgconfig(memprof "memprof - simple library for memory usage profiling")
1340+ if (TD_INSTALL_STATIC_LIBRARIES)
1341+ generate_pkgconfig (tdutils "Telegram Library - Utils" )
1342+ generate_pkgconfig (tdactor "Telegram Library - Actor" )
1343+ generate_pkgconfig (tdnet "Telegram Library - Net" )
1344+ generate_pkgconfig (tdsqlite "Telegram Library - SQLite" )
1345+ generate_pkgconfig (tddb "Telegram Library - Database" )
1346+ if (MEMPROF)
1347+ # generate_pkgconfig(memprof "memprof - simple library for memory usage profiling")
1348+ endif ()
1349+ generate_pkgconfig (tdmtproto "Telegram Library - MTProto implementation" )
1350+ generate_pkgconfig (tdcore "Telegram Library - Core" )
1351+ generate_pkgconfig (tdclient "Telegram Library - C++ Interface" )
1352+ if (TD_ENABLE_DOTNET)
1353+ # generate_pkgconfig(tddotnet "Telegram Library - C# Interface")
1354+ endif ()
1355+ # generate_pkgconfig(tdc "Telegram Library - C interface")
1356+ generate_pkgconfig (tdapi "Telegram Library - API" )
1357+ generate_pkgconfig (tdjson_private "Telegram Library - JSON interface (private)" )
1358+ generate_pkgconfig (tdjson_static "Telegram Library - JSON interface (static)" )
13411359endif ()
1342- generate_pkgconfig (tdmtproto "Telegram Library - MTProto implementation" )
1343- generate_pkgconfig (tdcore "Telegram Library - Core" )
1344- generate_pkgconfig (tdclient "Telegram Library - C++ Interface" )
1345- if (TD_ENABLE_DOTNET)
1346- # generate_pkgconfig(tddotnet "Telegram Library - C# Interface")
1360+ if (TD_INSTALL_SHARED_LIBRARIES)
1361+ generate_pkgconfig (tdjson "Telegram Library - JSON interface (shared)" )
13471362endif ()
1348- # generate_pkgconfig(tdc "Telegram Library - C interface")
1349- generate_pkgconfig (tdapi "Telegram Library - API" )
1350- generate_pkgconfig (tdjson_private "Telegram Library - JSON interface (private)" )
1351- generate_pkgconfig (tdjson "Telegram Library - JSON interface (shared)" )
1352- generate_pkgconfig (tdjson_static "Telegram Library - JSON interface (static)" )
13531363
1354- if (NOT TD_ENABLE_FILTERED_INSTALL OR BUILD_SHARED_LIBS )
1364+ if (TD_INSTALL_SHARED_LIBRARIES )
13551365 install (EXPORT TdTargets
13561366 FILE TdTargets.cmake
13571367 NAMESPACE Td::
13581368 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/Td"
13591369 )
13601370endif ()
13611371
1362- if (NOT TD_ENABLE_FILTERED_INSTALL OR NOT BUILD_SHARED_LIBS )
1372+ if (TD_INSTALL_STATIC_LIBRARIES )
13631373 install (EXPORT TdStaticTargets
13641374 FILE TdStaticTargets.cmake
13651375 NAMESPACE Td::
13661376 DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/Td"
13671377 )
13681378endif ()
13691379
1370- # Install tdjson/tdjson_static:
1371- install (FILES ${TD_JSON_HEADERS} "${CMAKE_CURRENT_BINARY_DIR } /td/telegram/tdjson_export.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1372- # Install tdclient:
1373- install (FILES td/telegram/Client.h td/telegram/Log.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1374- # Install tdapi:
1375- install (FILES td/tl/TlObject.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/tl" )
1376- install (FILES "${TL_TD_AUTO_INCLUDE_DIR} /td/telegram/td_api.h" "${TL_TD_AUTO_INCLUDE_DIR} /td/telegram/td_api.hpp" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1380+ if (TD_INSTALL_SHARED_LIBRARIES OR TD_INSTALL_STATIC_LIBRARIES)
1381+ # Install tdjson/tdjson_static:
1382+ install (FILES ${TD_JSON_HEADERS} "${CMAKE_CURRENT_BINARY_DIR } /td/telegram/tdjson_export.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1383+ endif ()
1384+ if (TD_INSTALL_STATIC_LIBRARIES)
1385+ # Install tdclient:
1386+ install (FILES td/telegram/Client.h td/telegram/Log.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1387+ # Install tdapi:
1388+ install (FILES td/tl/TlObject.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/tl" )
1389+ install (FILES "${TL_TD_AUTO_INCLUDE_DIR} /td/telegram/td_api.h" "${TL_TD_AUTO_INCLUDE_DIR} /td/telegram/td_api.hpp" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/telegram" )
1390+ endif ()
13771391if (TD_ENABLE_JNI)
13781392 install (FILES td/tl/tl_jni_object.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} /td/tl" )
13791393endif ()
0 commit comments