From 4c41b1450f2ca14cd6961b88ff2671937df5630c Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Tue, 17 Apr 2018 17:01:32 +0200
Subject: [PATCH] PKG: analyse dependencies of Qt plugins

---
 Packaging/install_rule.cmake      | 6 ++++++
 Packaging/prepare_file_list.cmake | 9 +++++++++
 2 files changed, 15 insertions(+)

diff --git a/Packaging/install_rule.cmake b/Packaging/install_rule.cmake
index adfdf03c26..01455727e5 100644
--- a/Packaging/install_rule.cmake
+++ b/Packaging/install_rule.cmake
@@ -29,6 +29,9 @@ function(install_rule src_file)
   get_filename_component(src_file_NAME_WE ${src_file} NAME_WE)
   get_filename_component(src_file_PATH ${src_file} PATH)
 
+  get_filename_component(src_file_GPATH ${src_file_PATH} PATH)
+  get_filename_component(src_file_GNAME ${src_file_GPATH} NAME)
+
   file(GLOB src_file_star "${src_file_PATH}/${src_file_NAME_WE}*")
   foreach(sfile ${src_file_star})
     get_filename_component(sfile_NAME ${sfile} NAME)
@@ -51,6 +54,9 @@ function(install_rule src_file)
 	message("SKIP INSTALL for ${sfile_NAME_LOWER}")
       endif()
       continue()
+    elseif(("${sfile_ABS_LOWER}" MATCHES "(\\${LIB_EXT})$") AND (src_file_GNAME STREQUAL "plugins"))
+      # special case: Qt plugins are installed by install_qtdev_files
+      continue()
     elseif("${sfile_ABS_LOWER}" MATCHES "(\\.exe)$")
       set(install_type PROGRAMS)
       set(install_dir bin)
diff --git a/Packaging/prepare_file_list.cmake b/Packaging/prepare_file_list.cmake
index 859847f630..4477bd2373 100644
--- a/Packaging/prepare_file_list.cmake
+++ b/Packaging/prepare_file_list.cmake
@@ -95,5 +95,14 @@ function(prepare_file_list file_list_result)
     list(APPEND file_list "libEGL.dll")
   endif()
 
+  # Qt plugins
+  if(HAVE_QT)
+    file(GLOB _qt_plugins "${SUPERBUILD_INSTALL_DIR}/plugins/*/${LIB_PREFIX}*${LIB_EXT}")
+    foreach(_qt_plugin ${_qt_plugins})
+      get_filename_component(_qt_plugin_name ${_qt_plugin} NAME)
+      list(APPEND file_list ${_qt_plugin_name})
+    endforeach()
+  endif()
+
   set(${file_list_result} ${file_list} PARENT_SCOPE)
 endfunction()
-- 
GitLab