aboutsummarylogtreecommitdiffstats
path: root/0029-Hardcode-linker-flags-for-platform-plugins.patch
diff options
context:
space:
mode:
Diffstat (limited to '0029-Hardcode-linker-flags-for-platform-plugins.patch')
-rw-r--r--0029-Hardcode-linker-flags-for-platform-plugins.patch178
1 files changed, 178 insertions, 0 deletions
diff --git a/0029-Hardcode-linker-flags-for-platform-plugins.patch b/0029-Hardcode-linker-flags-for-platform-plugins.patch
new file mode 100644
index 000000000000..e1a952761d31
--- /dev/null
+++ b/0029-Hardcode-linker-flags-for-platform-plugins.patch
@@ -0,0 +1,178 @@
+From c08a720e1cd51c0015ec02143cd65b17e5e69b64 Mon Sep 17 00:00:00 2001
+From: Martchus <martchus@gmx.net>
+Date: Wed, 25 Jan 2017 23:42:30 +0100
+Subject: [PATCH 29/32] Hardcode linker flags for platform plugins
+
+Otherwise incorrect order of libs leads to errors
+when building libqminimal.dll, libqoffscreen.dll,
+libqwindows.dll and libqdirect2d.dll. Unfortunately
+this workaround leads to hardcoding include flags
+as well.
+
+Change-Id: I1863d184cff744d2c02e15875e1d108d32ea7861
+---
+ src/plugins/platforms/direct2d/direct2d.pro | 39 +++++++++++++++---
+ src/plugins/platforms/minimal/minimal.pro | 17 +++++++-
+ src/plugins/platforms/offscreen/offscreen.pro | 16 +++++++-
+ src/plugins/platforms/windows/windows.pro | 40 ++++++++++++++-----
+ 4 files changed, 93 insertions(+), 19 deletions(-)
+
+diff --git a/src/plugins/platforms/direct2d/direct2d.pro b/src/plugins/platforms/direct2d/direct2d.pro
+index 6e73bd14f9d..8046e73d61d 100644
+--- a/src/plugins/platforms/direct2d/direct2d.pro
++++ b/src/plugins/platforms/direct2d/direct2d.pro
+@@ -1,12 +1,41 @@
+ TARGET = qdirect2d
+
+ QT += \
+- core-private gui-private \
+- eventdispatcher_support-private \
+- fontdatabase_support-private theme_support-private
++ core-private gui-private
+
+-qtConfig(accessibility): QT += accessibility_support-private
+-qtConfig(vulkan): QT += vulkan_support-private
++# Fix linker error when building libqdirect2d.dll by specifying linker flags for
++# required modules manually (otherwise order is messed)
++LIBS += \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5EventDispatcherSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5FontDatabaseSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5ThemeSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ -lfreetype -lole32 -lgdi32 -luuid
++# However, this workaround leads to the necessity of specifying include dirs manually
++INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION}/QtEventDispatcherSupport \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}/QtFontDatabaseSupport \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtThemeSupport/$${QT_VERSION}/QtThemeSupport \
++ $$QT_BUILD_TREE/include/QtThemeSupport/$${QT_VERSION}
++# Same for private support libs for accessibility and vulkan, if those are enabled
++qtConfig(accessibility) {
++ LIBS += $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5AccessibilitySupport.$${QMAKE_EXTENSION_STATICLIB}
++ INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtAccessibilitySupport/$${QT_VERSION}/Qt5AccessibilitySupport \
++ $$QT_BUILD_TREE/include/QtAccessibilitySupport/$${QT_VERSION}
++}
++qtConfig(vulkan) {
++ LIBS += $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5VulkanSupport.$${QMAKE_EXTENSION_STATICLIB}
++ INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtVulkanSupport/$${QT_VERSION}/Qt5VulkanSupport \
++ $$QT_BUILD_TREE/include/QtVulkanSupport/$${QT_VERSION}
++}
++# Also add Qt5WindowsUIAutomationSupport - it seems to link against it
++LIBS += $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5WindowsUIAutomationSupport.$${QMAKE_EXTENSION_STATICLIB}
++INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/Qt5WindowsUIAutomationSupport/$${QT_VERSION}/Qt5WindowsUIAutomationSupport \
++ $$QT_BUILD_TREE/include/Qt5WindowsUIAutomationSupport/$${QT_VERSION}
+
+ LIBS += -ldwmapi -lversion
+ QMAKE_USE_PRIVATE += gdi32 dwrite_1 d2d1_1 d3d11_1 dxgi1_2
+diff --git a/src/plugins/platforms/minimal/minimal.pro b/src/plugins/platforms/minimal/minimal.pro
+index a1a2da547b3..9fd5c4fca2f 100644
+--- a/src/plugins/platforms/minimal/minimal.pro
++++ b/src/plugins/platforms/minimal/minimal.pro
+@@ -1,8 +1,21 @@
+ TARGET = qminimal
+
+ QT += \
+- core-private gui-private \
+- eventdispatcher_support-private fontdatabase_support-private
++ core-private gui-private
++
++# Fix linker error when building libqminimal.dll by specifying linker flags for
++# required modules manually (otherwise order is messed)
++LIBS += \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5EventDispatcherSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5FontDatabaseSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ -lfreetype -lole32 -lgdi32 -luuid
++# However, this workaround leads to the necessity of specifying include dirs manually
++INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION}/QtEventDispatcherSupport \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}/QtFontDatabaseSupport \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}
++
+
+ DEFINES += QT_NO_FOREACH
+
+diff --git a/src/plugins/platforms/offscreen/offscreen.pro b/src/plugins/platforms/offscreen/offscreen.pro
+index f226132592d..592fa7406f0 100644
+--- a/src/plugins/platforms/offscreen/offscreen.pro
++++ b/src/plugins/platforms/offscreen/offscreen.pro
+@@ -1,8 +1,20 @@
+ TARGET = qoffscreen
+
+ QT += \
+- core-private gui-private \
+- eventdispatcher_support-private fontdatabase_support-private
++ core-private gui-private
++
++# Fix linker error when building libqoffscreen.dll by specifying linker flags for
++# required modules manually (otherwise order is messed)
++LIBS += \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5EventDispatcherSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5FontDatabaseSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ -lfreetype -lole32 -lgdi32 -luuid
++# However, this workaround leads to the necessity of specifying include dirs manually
++INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION}/QtEventDispatcherSupport \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}/QtFontDatabaseSupport \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}
+
+ DEFINES += QT_NO_FOREACH
+
+diff --git a/src/plugins/platforms/windows/windows.pro b/src/plugins/platforms/windows/windows.pro
+index 50a3bb41a92..02f74650a9b 100644
+--- a/src/plugins/platforms/windows/windows.pro
++++ b/src/plugins/platforms/windows/windows.pro
+@@ -1,15 +1,35 @@
+ TARGET = qwindows
+
+-QT += \
+- core-private gui-private \
+- eventdispatcher_support-private \
+- fontdatabase_support-private theme_support-private
+-
+-qtConfig(accessibility): QT += accessibility_support-private
+-qtConfig(vulkan): QT += vulkan_support-private
+-
+-LIBS += -ldwmapi
+-QMAKE_USE_PRIVATE += gdi32
++QT += core-private gui-private
++
++# Fix linker error when building libqwindows.dll by specifying linker flags for
++# required modules manually (otherwise order is messed)
++LIBS += \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5EventDispatcherSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5FontDatabaseSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5ThemeSupport.$${QMAKE_EXTENSION_STATICLIB} \
++ -lfreetype -lole32 -lgdi32 -ldwmapi
++# However, this workaround leads to the necessity of specifying include dirs manually
++INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION}/QtEventDispatcherSupport \
++ $$QT_BUILD_TREE/include/QtEventDispatcherSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION}/QtFontDatabaseSupport \
++ $$QT_BUILD_TREE/include/QtFontDatabaseSupport/$${QT_VERSION} \
++ $$QT_BUILD_TREE/include/QtThemeSupport/$${QT_VERSION}/QtThemeSupport \
++ $$QT_BUILD_TREE/include/QtThemeSupport/$${QT_VERSION}
++# Same for private support libs for accessibility and vulkan, if those are enabled
++qtConfig(accessibility) {
++ LIBS += $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5AccessibilitySupport.$${QMAKE_EXTENSION_STATICLIB}
++ INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtAccessibilitySupport/$${QT_VERSION}/Qt5AccessibilitySupport \
++ $$QT_BUILD_TREE/include/QtAccessibilitySupport/$${QT_VERSION}
++}
++qtConfig(vulkan) {
++ LIBS += $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}Qt5VulkanSupport.$${QMAKE_EXTENSION_STATICLIB}
++ INCLUDEPATH += \
++ $$QT_BUILD_TREE/include/QtVulkanSupport/$${QT_VERSION}/Qt5VulkanSupport \
++ $$QT_BUILD_TREE/include/QtVulkanSupport/$${QT_VERSION}
++}
+
+ include(windows.pri)
+
+--
+2.44.0
+