<html><head></head><body>Hi,<br><br>Scripts should write error messages to stderr rather than stdout.<br><br><div class="gmail_quote">Le 30 avril 2019 09:56:33 GMT+02:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Get the library/pathes from the installed PRL files in PREFIX/plugins or<br>PREFIX/qml and add it to Libs.Private in the .pc files. So the libraries are<br>kept in those folders rather than copied in the libs directory.<br><br>We get exactly the libs and order that qmake would use when linking.<hr> contrib/src/qt/AddStaticLink.sh          | 33 ++++++++++++++++++++++++<br> contrib/src/qt/FixQtPcFiles.sh           |  7 -----<br> contrib/src/qt/rules.mak                 | 25 +++++-------------<br> contrib/src/qtdeclarative/rules.mak      | 14 +++-------<br> contrib/src/qtgraphicaleffects/rules.mak |  7 ++---<br> contrib/src/qtquickcontrols2/rules.mak   |  9 ++-----<br> contrib/src/qtsvg/rules.mak              |  8 ++----<br> 7 files changed, 49 insertions(+), 54 deletions(-)<br> create mode 100644 contrib/src/qt/AddStaticLink.sh<br> delete mode 100755 contrib/src/qt/FixQtPcFiles.sh<br><br>diff --git a/contrib/src/qt/AddStaticLink.sh b/contrib/src/qt/AddStaticLink.sh<br>new file mode 100644<br>index 0000000000..b1ae2c6970<br>--- /dev/null<br>+++ b/contrib/src/qt/AddStaticLink.sh<br>@@ -0,0 +1,33 @@<br>+#! /bin/sh<br>+<br>+# Add a Qt plugin  in the static pkg-config configuration of a Qt module<br>+# By default plugins are found in $PREFIX/plugins but are not seen by pkg-config.<br>+# This is also done for qml plugins which are found in $PREFIX/qml.<br>+#<br>+# This could also be done in configure.ac to detect what plugins are available and where to add them<br>+<br>+PREFIX=$(realpath "$1")<br>+PLUGIN_PATH="$3"<br>+PLUGIN_NAME="$4"<br>+<br>+PC_DEST="${PREFIX}/lib/pkgconfig/${2}.pc"<br>+PRL_SOURCE=${PREFIX}/${PLUGIN_PATH}/${PLUGIN_NAME}.prl<br>+<br>+if [ ! -f $PC_DEST ]; then<br>+    echo "destination ${PC_DEST} doesn't exists"<br>+    exit 1    <br>+fi<br>+<br>+if [ ! -f $PRL_SOURCE ]; then<br>+    echo "source ${PRL_SOURCE} doesn't exists"<br>+    exit 1<br>+fi<br>+<br>+echo PRL_SOURCE=$PRL_SOURCE<br>+LIBS=$(sed -e "/QMAKE_PRL_LIBS/ { \<br>+             s/QMAKE_PRL_LIBS =//; \<br>+             s@$PREFIX/lib@\${libdir}@g; \<br>+             s@\$\$\[QT_INSTALL_LIBS\]@\${libdir}@g; p \<br>+         }; d"  $PRL_SOURCE )<br>+<br>+sed -i -e "s#Libs.private: #Libs.private: $LIBS -L\${prefix}/${PLUGIN_PATH} -l${PLUGIN_NAME} #" $PC_DEST<br>diff --git a/contrib/src/qt/FixQtPcFiles.sh b/contrib/src/qt/FixQtPcFiles.sh<br>deleted file mode 100755<br>index 054f7f1428..0000000000<br>--- a/contrib/src/qt/FixQtPcFiles.sh<br>+++ /dev/null<br>@@ -1,7 +0,0 @@<br>-#! /bin/sh<br>-<br>-# Use the Libs.private from the prl files that don't have debug symbols and use a proper lib order<br>-LIBS=$(sed -e '/QMAKE_PRL_LIBS/ { s/QMAKE_PRL_LIBS =//; s/\$\$\[QT_INSTALL_LIBS\]/${libdir}/g; p }; d'  $1 )<br>-sed -i \<br>-   -e "s#Libs.private:.*#Libs.private: $LIBS#" \<br>-      -e "/Libs:/ { s/d / / }" $2<br>diff --git a/contrib/src/qt/rules.mak b/contrib/src/qt/rules.mak<br>index d9ea10a581..af0c6dca31 100644<br>--- a/contrib/src/qt/rules.mak<br>+++ b/contrib/src/qt/rules.mak<br>@@ -110,27 +110,14 @@ ENV_VARS := $(HOSTVARS) DXSDK_DIR=$(PREFIX)/bin<br>   # Install tools<br>       cd $< && $(MAKE) -C src sub-moc-install_subtargets sub-rcc-install_subtargets sub-uic-install_subtargets sub-qlalr-install_subtargets<br>      # Install plugins<br>-    cd $< && $(MAKE) -C src/plugins sub-platforms-install_subtargets<br>+  cd $< && $(MAKE) -C src -C plugins sub-imageformats-install_subtargets sub-platforms-install_subtargets sub-styles-install_subtargets<br>+     $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Gui plugins/imageformats qjpeg<br> ifdef HAVE_WIN32<br>-    cd $< && $(MAKE) -C src/plugins sub-imageformats-install_subtargets<br>-       mv $(PREFIX)/plugins/imageformats/libqjpeg.a $(PREFIX)/lib/<br>-  mv $(PREFIX)/plugins/platforms/libqwindows.a $(PREFIX)/lib/ && rm -rf $(PREFIX)/plugins<br>+      # Add the private include to our project (similar to using "gui-private" in a qmake project)<br>+       sed -i.orig -e 's#-I$${includedir}/QtGui#-I$${includedir}/QtGui -I$${includedir}/QtGui/$(QT_VERSION)/QtGui#' $(PREFIX)/lib/pkgconfig/Qt5Gui.pc<br>+       $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Gui plugins/platforms qwindows<br>        # Vista styling<br>-      cd $< && $(MAKE) -C src -C plugins sub-styles-install_subtargets<br>-  mv $(PREFIX)/plugins/styles/libqwindowsvistastyle.a $(PREFIX)/lib/ && rm -rf $(PREFIX)/plugins<br>-       # Move includes to match what VLC expects<br>-    mkdir -p $(PREFIX)/include/QtGui/qpa<br>- cp $(PREFIX)/include/QtGui/$(QT_VERSION)/QtGui/qpa/qplatformnativeinterface.h $(PREFIX)/include/QtGui/qpa<br>-    # Clean Qt mess<br>-      rm -rf $(PREFIX)/lib/libQt5Bootstrap* $</lib/libQt5Bootstrap*<br>-     # Fix .pc files<br>-      for i in Qt5Core Qt5Gui Qt5Widgets Qt5Test Qt5Network ; do $(SRC)/qt/FixQtPcFiles.sh $(PREFIX)/lib/$$i.prl $(PREFIX)/lib/pkgconfig/$$i.pc; done<br>-      # Fix Qt5Gui.pc file to include qwindows (QWindowsIntegrationPlugin) and platform support libraries<br>-  cd $(PREFIX)/lib/pkgconfig; sed -i.orig -e 's/ -lQt5Gui/ -lqwindows -lqjpeg -luxtheme -ldwmapi -lwtsapi32 -lQt5ThemeSupport -lQt5FontDatabaseSupport -lQt5EventDispatcherSupport -lQt5WindowsUIAutomationSupport -lqtfreetype -lQt5Gui/g' Qt5Gui.pc<br>-  # Fix Qt5Widget.pc file to include qwindowsvistastyle before Qt5Widget, as it depends on it<br>-  cd $(PREFIX)/lib/pkgconfig; sed -i.orig -e 's/ -lQt5Widget/ -lqwindowsvistastyle -lQt5Widget/' Qt5Widgets.pc<br>- # Use ANGLE OpenGL provided by Qt<br>-    cd $(PREFIX)/lib/pkgconfig; sed -i.orig -e 's/-llibGLESv2/-llibGLESv2 -ld3d9 -ltranslator -lpreprocessor/g' Qt5Gui.pc<br>+        $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Widgets plugins/styles qwindowsvistastyle<br> endif<br>     # Install a qmake with correct paths set<br>      cd $< && $(MAKE) sub-qmake-qmake-aux-pro-install_subtargets install_mkspecs<br>diff --git a/contrib/src/qtdeclarative/rules.mak b/contrib/src/qtdeclarative/rules.mak<br>index 7829002b4f..3d6be45a71 100644<br>--- a/contrib/src/qtdeclarative/rules.mak<br>+++ b/contrib/src/qtdeclarative/rules.mak<br>@@ -36,15 +36,9 @@ qtdeclarative: qtdeclarative-everywhere-src-$(QTDECLARATIVE_VERSION).tar.xz .sum<br>        # the particle module to be built<br>     cd $< && $(MAKE) -C src sub-particles-make_first-ordered<br>   cd $< && $(MAKE) -C src sub-qmltest-install_subtargets sub-quick-install_subtargets sub-qml-install_subtargets sub-quickwidgets-install_subtargets sub-imports-install_subtargets<br>- cp $(PREFIX)/qml/QtQuick.2/libqtquick2plugin.a $(PREFIX)/lib/<br>-        cd $(PREFIX)/qml/QtQuick/ && cp Layouts/libqquicklayoutsplugin.a Window.2/libwindowplugin.a $(PREFIX)/lib/<br>-   cp $(PREFIX)/qml/QtQml/Models.2/libmodelsplugin.a $(PREFIX)/lib/<br>-     rm -rf $(PREFIX)/qml<br>- for i in Qt5Quick Qt5Qml Qt5QuickWidgets; do \<br>-               $(SRC)/qt/FixQtPcFiles.sh $(PREFIX)/lib/$$i.prl $(PREFIX)/lib/pkgconfig/$$i.pc; \<br>-    done<br>- cd $(PREFIX)/lib/pkgconfig; sed -i.orig -e 's/ -lQt5Quick/ -lqtquick2plugin -lqquicklayoutsplugin -lwindowplugin -lQt5Quick/' Qt5Quick.pc<br>-    cd $(PREFIX)/lib/pkgconfig; sed -i.orig -e 's/ -lQt5Qml/ -lmodelsplugin -lQt5Qml/' Qt5Qml.pc<br>-<br>+      $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Quick qml/QtQuick.2 qtquick2plugin<br>+   $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Quick qml/QtQuick/Layouts qquicklayoutsplugin<br>+        $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Quick qml/QtQuick/Window.2 windowplugin<br>+      $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Qml qml/QtQml/Models.2 modelsplugin<br> <br>        touch $@<br>diff --git a/contrib/src/qtgraphicaleffects/rules.mak b/contrib/src/qtgraphicaleffects/rules.mak<br>index 6e9e9bf31c..9d58a16bb3 100644<br>--- a/contrib/src/qtgraphicaleffects/rules.mak<br>+++ b/contrib/src/qtgraphicaleffects/rules.mak<br>@@ -28,9 +28,6 @@ qtgraphicaleffects: qtgraphicaleffects-everywhere-src-$(QTGE_VERSION).tar.xz .su<br>   # Make && Install libraries<br>   cd $< && $(MAKE)<br>   cd $< && $(MAKE) -C src sub-effects-install_subtargets<br>-    cd $(PREFIX)/qml/QtGraphicalEffects/ && cp libqtgraphicaleffectsplugin.a private/libqtgraphicaleffectsprivate.a $(PREFIX)/lib/<br>-       rm -rf $(PREFIX)/qml<br>- cd $(PREFIX)/lib/pkgconfig; sed -i.orig \<br>-            -e 's/ -lQt5QuickWidgets/ -lqtgraphicaleffectsplugin -lqtgraphicaleffectsprivate -lQt5QuickWidgets/' \<br>-               Qt5QuickWidgets.pc<br>+   $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5QuickWidgets qml/QtGraphicalEffects qtgraphicaleffectsplugin<br>+ $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5QuickWidgets qml/QtGraphicalEffects/private qtgraphicaleffectsprivate<br>         touch $@<br>diff --git a/contrib/src/qtquickcontrols2/rules.mak b/contrib/src/qtquickcontrols2/rules.mak<br>index da34d3c9eb..04443adb8a 100644<br>--- a/contrib/src/qtquickcontrols2/rules.mak<br>+++ b/contrib/src/qtquickcontrols2/rules.mak<br>@@ -29,11 +29,6 @@ qtquickcontrols2: qtquickcontrols2-everywhere-src-$(QTQC2_VERSION).tar.xz .sum-q<br>  # Make && Install libraries<br>   cd $< && $(MAKE)<br>   cd $< && $(MAKE) -C src sub-quickcontrols2-install_subtargets sub-imports-install_subtargets<br>-      cp $(PREFIX)/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.a $(PREFIX)/lib/<br>-       cp $(PREFIX)/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.a $(PREFIX)/lib/<br>-     rm -rf $(PREFIX)/qml<br>- $(SRC)/qt/FixQtPcFiles.sh $(PREFIX)/lib/Qt5QuickControls2.prl $(PREFIX)/lib/pkgconfig/Qt5QuickControls2.pc<br>-   cd $(PREFIX)/lib/pkgconfig; sed -i.orig \<br>-            -e 's/ -lQt5QuickControls2/ -lqtquicktemplates2plugin  -lQt5QuickTemplates2 -lqtquickcontrols2plugin -lQt5QuickControls2/' \<br>-         Qt5QuickControls2.pc<br>+ $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5QuickControls2 qml/QtQuick/Controls.2 qtquickcontrols2plugin<br>+ $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5QuickControls2 qml/QtQuick/Templates.2 qtquicktemplates2plugin<br>        touch $@<br>diff --git a/contrib/src/qtsvg/rules.mak b/contrib/src/qtsvg/rules.mak<br>index 84e03f2519..1999a401d8 100644<br>--- a/contrib/src/qtsvg/rules.mak<br>+++ b/contrib/src/qtsvg/rules.mak<br>@@ -29,10 +29,6 @@ qtsvg: qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz .sum-qtsvg<br>        # Make && Install libraries<br>   cd $< && $(MAKE)<br>   cd $< && $(MAKE) -C src sub-plugins-install_subtargets sub-svg-install_subtargets<br>- mv $(PREFIX)/plugins/iconengines/libqsvgicon.a $(PREFIX)/lib/<br>-        mv $(PREFIX)/plugins/imageformats/libqsvg.a $(PREFIX)/lib/<br>-   $(SRC)/qt/FixQtPcFiles.sh $(PREFIX)/lib/Qt5Svg.prl $(PREFIX)/lib/pkgconfig/Qt5Svg.pc<br>- cd $(PREFIX)/lib/pkgconfig; sed -i.orig \<br>-            -e '/Libs:/  s/-lQt5Svg/-lqsvg -lqsvgicon -lQt5Svg/ ' \<br>-              Qt5Svg.pc<br>+    $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Svg plugins/iconengines qsvgicon<br>+     $(SRC)/qt/AddStaticLink.sh $(PREFIX) Qt5Svg plugins/imageformats qsvg<br>         touch $@</pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>