From d218fae4376bf0a3b801570164ee6c02e5e94cc0 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 5 Nov 2020 21:59:33 +0100 Subject: [PATCH 4/7] Fix transitive dependencies (of static libraries) The dependencies of these libraries are not reliably picked up by their corresponding find modules. This change allows adding the required dependencies by setting certain variables, e.g. within the toolchain file. This change also disables the upstream hack for OpenSSL's dependencies as it is even more hacky to hardcode the library names and the casing they use doesn't even work when building on GNU/Linux. Change-Id: I9afee4f1a1debb482ede63421de86adf1c7c5adc --- .../3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake | 2 +- cmake/FindMySQL.cmake | 1 + cmake/FindWrapDBus1.cmake | 1 + cmake/FindWrapOpenSSL.cmake | 4 ++-- cmake/FindWrapSystemFreetype.cmake | 2 +- cmake/FindWrapSystemHarfbuzz.cmake | 2 +- cmake/FindWrapSystemPNG.cmake | 2 +- src/plugins/sqldrivers/psql/CMakeLists.txt | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake index 8f873c1b45..831ca8e624 100644 --- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake +++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake @@ -95,7 +95,7 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) add_library(GLIB2::GLIB2 UNKNOWN IMPORTED) set_target_properties(GLIB2::GLIB2 PROPERTIES IMPORTED_LOCATION "${GLIB2_LIBRARIES}" - INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES}" + INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES};${GLIB2_DEPENDENCIES}" INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}") endif() diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index a069a5eb12..0fcba2148e 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -40,6 +40,7 @@ if(MySQL_FOUND) add_library(MySQL::MySQL UNKNOWN IMPORTED) set_target_properties(MySQL::MySQL PROPERTIES IMPORTED_LOCATION "${MySQL_LIBRARIES}" + INTERFACE_LINK_LIBRARIES "${MYSQL_DEPENDENCIES}" INTERFACE_INCLUDE_DIRECTORIES "${MySQL_INCLUDE_DIRS}") endif() endif() diff --git a/cmake/FindWrapDBus1.cmake b/cmake/FindWrapDBus1.cmake index bdbcab9eb3..06e9af49f6 100644 --- a/cmake/FindWrapDBus1.cmake +++ b/cmake/FindWrapDBus1.cmake @@ -47,4 +47,5 @@ find_package_handle_standard_args(WrapDBus1 REQUIRED_VARS VERSION_VAR DBus1_VERSION) if(TARGET dbus-1) set_property(TARGET dbus-1 PROPERTY IMPORTED_IMPLIB ${DBus1_LIBRARY}) + set_property(TARGET dbus-1 PROPERTY INTERFACE_LINK_LIBRARIES "${DBUS1_DEPENDENCIES}") endif() diff --git a/cmake/FindWrapOpenSSL.cmake b/cmake/FindWrapOpenSSL.cmake index a09aa99518..ff13e1e931 100644 --- a/cmake/FindWrapOpenSSL.cmake +++ b/cmake/FindWrapOpenSSL.cmake @@ -11,7 +11,7 @@ set(WrapOpenSSL_FOUND OFF) find_package(WrapOpenSSLHeaders ${WrapOpenSSL_FIND_VERSION}) if(OpenSSL_FOUND) - if(WIN32) + if(WIN32 AND NOT MINGW) get_target_property(libType OpenSSL::Crypto TYPE) if(libType STREQUAL "ALIAS") get_target_property(writableLib OpenSSL::Crypto ALIASED_TARGET) @@ -26,7 +26,7 @@ if(OpenSSL_FOUND) set(WrapOpenSSL_FOUND ON) add_library(WrapOpenSSL::WrapOpenSSL INTERFACE IMPORTED) - target_link_libraries(WrapOpenSSL::WrapOpenSSL INTERFACE OpenSSL::SSL) + target_link_libraries(WrapOpenSSL::WrapOpenSSL INTERFACE OpenSSL::SSL ${OPENSSL_DEPENDENCIES}) endif() include(FindPackageHandleStandardArgs) diff --git a/cmake/FindWrapSystemFreetype.cmake b/cmake/FindWrapSystemFreetype.cmake index 2cf6caca19..23dc161e4c 100644 --- a/cmake/FindWrapSystemFreetype.cmake +++ b/cmake/FindWrapSystemFreetype.cmake @@ -44,7 +44,7 @@ find_package_handle_standard_args(WrapSystemFreetype if(WrapSystemFreetype_FOUND) add_library(WrapSystemFreetype::WrapSystemFreetype INTERFACE IMPORTED) target_link_libraries(WrapSystemFreetype::WrapSystemFreetype - INTERFACE "${__freetype_target_name}") + INTERFACE "${__freetype_target_name}" ${FREETYPE_DEPENDENCIES}) endif() unset(__freetype_target_name) unset(__freetype_found) diff --git a/cmake/FindWrapSystemHarfbuzz.cmake b/cmake/FindWrapSystemHarfbuzz.cmake index 3cb44aa766..9dc741b2be 100644 --- a/cmake/FindWrapSystemHarfbuzz.cmake +++ b/cmake/FindWrapSystemHarfbuzz.cmake @@ -54,7 +54,7 @@ find_package_handle_standard_args(WrapSystemHarfbuzz if(WrapSystemHarfbuzz_FOUND) add_library(WrapSystemHarfbuzz::WrapSystemHarfbuzz INTERFACE IMPORTED) target_link_libraries(WrapSystemHarfbuzz::WrapSystemHarfbuzz - INTERFACE "${__harfbuzz_target_name}") + INTERFACE "${__harfbuzz_target_name}" ${HARFBUZZ_DEPENDENCIES}) endif() unset(__harfbuzz_target_name) unset(__harfbuzz_found) diff --git a/cmake/FindWrapSystemPNG.cmake b/cmake/FindWrapSystemPNG.cmake index 372a064ff4..a363bfd31b 100644 --- a/cmake/FindWrapSystemPNG.cmake +++ b/cmake/FindWrapSystemPNG.cmake @@ -33,7 +33,7 @@ find_package_handle_standard_args(WrapSystemPNG if(WrapSystemPNG_FOUND) add_library(WrapSystemPNG::WrapSystemPNG INTERFACE IMPORTED) target_link_libraries(WrapSystemPNG::WrapSystemPNG - INTERFACE "${__png_target_name}") + INTERFACE "${__png_target_name}" ${LIBPNG_DEPENDENCIES}) endif() unset(__png_target_name) unset(__png_found) diff --git a/src/plugins/sqldrivers/psql/CMakeLists.txt b/src/plugins/sqldrivers/psql/CMakeLists.txt index b151932da7..7e6b38acd1 100644 --- a/src/plugins/sqldrivers/psql/CMakeLists.txt +++ b/src/plugins/sqldrivers/psql/CMakeLists.txt @@ -16,7 +16,7 @@ qt_internal_add_plugin(QPSQLDriverPlugin QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII LIBRARIES - PostgreSQL::PostgreSQL + PostgreSQL::PostgreSQL ${POSTGRESQL_DEPENDENCIES} Qt::Core Qt::CorePrivate Qt::SqlPrivate -- 2.32.0