diff --git a/cmake/modules/QtLinkage.cmake b/cmake/modules/QtLinkage.cmake index 5ef26de..c69f868 100644 --- a/cmake/modules/QtLinkage.cmake +++ b/cmake/modules/QtLinkage.cmake @@ -82,13 +82,22 @@ macro (use_qt_module) # find and use plugins foreach (PLUGIN ${ARGS_PLUGINS}) - if (NOT TARGET "${ARGS_PREFIX}::Q${PLUGIN}Plugin") + set(PLUGIN_TARGET "${ARGS_PREFIX}::Q${PLUGIN}Plugin") + if (NOT TARGET "${PLUGIN_TARGET}") find_package("${ARGS_PREFIX}${ARGS_MODULE}" "${META_QT5_VERSION}" REQUIRED) endif () - if (NOT TARGET "${ARGS_PREFIX}::Q${PLUGIN}Plugin") + if (NOT TARGET "${PLUGIN_TARGET}" AND PLUGIN MATCHES "Svg.*" AND ARGS_MODULE STREQUAL "Svg") + # look for Svg plugins within the Gui module's directory as well + find_package("${ARGS_PREFIX}Gui" "${META_QT5_VERSION}" REQUIRED) + set(PLUGIN_CONFIG "${${ARGS_PREFIX}Gui_DIR}/${ARGS_PREFIX}Q${PLUGIN}PluginConfig.cmake") + if (EXISTS "${PLUGIN_CONFIG}") + include("${PLUGIN_CONFIG}") + endif () + endif () + if (NOT TARGET "${PLUGIN_TARGET}") message(FATAL_ERROR "The ${ARGS_PREFIX}${ARGS_MODULE} package does not provide the target ${ARGS_PREFIX}::Q${PLUGIN}Plugin.") endif () - if ("${ARGS_PREFIX}::Q${PLUGIN}Plugin" IN_LIST "${ARGS_LIBRARIES_VARIABLE}") + if ("${PLUGIN_TARGET}" IN_LIST "${ARGS_LIBRARIES_VARIABLE}") continue() endif () set("${ARGS_LIBRARIES_VARIABLE}" "${${ARGS_LIBRARIES_VARIABLE}};${ARGS_PREFIX}::Q${PLUGIN}Plugin")