diff options
Diffstat (limited to '0029-Hardcode-linker-flags-for-platform-plugins.patch')
-rw-r--r-- | 0029-Hardcode-linker-flags-for-platform-plugins.patch | 178 |
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 + |