From ab5d35371b1fdcfb30dfa981ede54ec83db214a9 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 28 Jul 2020 01:34:35 +0300 Subject: [PATCH] Ensure that OpenSSL is linked against needed Windows libraries. GitOrigin-RevId: d2928c94ebe6565e155f81db8ccc24c4c5d69a54 --- CMakeLists.txt | 7 +++++++ benchmark/CMakeLists.txt | 7 +++++++ sqlite/CMakeLists.txt | 8 ++++++++ tdnet/CMakeLists.txt | 4 ++-- tdutils/CMakeLists.txt | 24 +++++++++++++----------- 5 files changed, 37 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 825095a26..1f80bada6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -792,6 +792,13 @@ add_library(tdcore STATIC ${TDLIB_SOURCE}) target_include_directories(tdcore PUBLIC $ $) target_include_directories(tdcore SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR}) target_link_libraries(tdcore PUBLIC tdapi tdactor tdutils tdnet tddb PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES}) +if (WIN32) + if (MINGW) + target_link_libraries(tdcore PRIVATE ws2_32 mswsock) + else() + target_link_libraries(tdcore PRIVATE ws2_32 Mswsock) + endif() +endif() if (NOT CMAKE_CROSSCOMPILING) add_dependencies(tdcore tl_generate_common) diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 9b7d5c05a..e175ee414 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -8,6 +8,13 @@ endif() #TODO: all benchmarks in one file add_executable(bench_crypto bench_crypto.cpp) target_link_libraries(bench_crypto PRIVATE tdutils ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES}) +if (WIN32) + if (MINGW) + target_link_libraries(bench_crypto PRIVATE ws2_32 mswsock) + else() + target_link_libraries(bench_crypto PRIVATE ws2_32 Mswsock) + endif() +endif() target_include_directories(bench_crypto SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR}) add_executable(bench_actor bench_actor.cpp) diff --git a/sqlite/CMakeLists.txt b/sqlite/CMakeLists.txt index 8ca0aee5a..67fdeaad1 100644 --- a/sqlite/CMakeLists.txt +++ b/sqlite/CMakeLists.txt @@ -21,6 +21,14 @@ add_library(tdsqlite STATIC ${SQLITE_SOURCE}) target_include_directories(tdsqlite PUBLIC $) target_include_directories(tdsqlite SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR}) target_link_libraries(tdsqlite PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES}) +if (WIN32) + if (MINGW) + target_link_libraries(tdsqlite PRIVATE ws2_32 mswsock) + else() + target_link_libraries(tdsqlite PRIVATE ws2_32 Mswsock) + endif() +endif() + target_compile_definitions(tdsqlite PRIVATE -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_OMIT_LOAD_EXTENSION diff --git a/tdnet/CMakeLists.txt b/tdnet/CMakeLists.txt index efe2d30b7..306da0c67 100644 --- a/tdnet/CMakeLists.txt +++ b/tdnet/CMakeLists.txt @@ -60,9 +60,9 @@ target_link_libraries(tdnet PRIVATE ${OPENSSL_CRYPTO_LIBRARY}) if (WIN32) if (MINGW) - target_link_libraries(tdnet PRIVATE crypt32) + target_link_libraries(tdnet PRIVATE ws2_32 mswsock crypt32) else() - target_link_libraries(tdnet PRIVATE Crypt32) + target_link_libraries(tdnet PRIVATE ws2_32 Mswsock Crypt32) endif() endif() diff --git a/tdutils/CMakeLists.txt b/tdutils/CMakeLists.txt index 5995750d7..504ae8e5c 100644 --- a/tdutils/CMakeLists.txt +++ b/tdutils/CMakeLists.txt @@ -300,17 +300,7 @@ set(TDUTILS_TEST_SOURCE #RULES #LIBRARIES add_library(tdutils STATIC ${TDUTILS_SOURCE}) -if (WIN32) - # find_library for system libraries doesn't work for UWP builds - # find_library(WS2_32_LIBRARY ws2_32) - # find_library(MSWSOCK_LIBRARY Mswsock) - # target_link_libraries(tdutils PRIVATE ${WS2_32_LIBRARY} ${MSWSOCK_LIBRARY}) - if (MINGW) - target_link_libraries(tdutils PRIVATE ws2_32 mswsock normaliz psapi) - else() - target_link_libraries(tdutils PRIVATE ws2_32 Mswsock Normaliz psapi) - endif() -endif() + if (NOT CMAKE_CROSSCOMPILING AND TDUTILS_MIME_TYPE) add_dependencies(tdutils tdmime_auto) endif() @@ -337,6 +327,18 @@ if (ABSL_FOUND) target_link_libraries(tdutils SYSTEM PUBLIC absl::flat_hash_map absl::flat_hash_set absl::hash) endif() +if (WIN32) + # find_library for system libraries doesn't work for UWP builds + # find_library(WS2_32_LIBRARY ws2_32) + # find_library(MSWSOCK_LIBRARY Mswsock) + # target_link_libraries(tdutils PRIVATE ${WS2_32_LIBRARY} ${MSWSOCK_LIBRARY}) + if (MINGW) + target_link_libraries(tdutils PRIVATE ws2_32 mswsock normaliz psapi) + else() + target_link_libraries(tdutils PRIVATE ws2_32 Mswsock Normaliz psapi) + endif() +endif() + if (ANDROID) target_link_libraries(tdutils PRIVATE log) endif()