diff options
author | Martchus | 2018-02-19 20:15:12 +0100 |
---|---|---|
committer | Martchus | 2018-02-19 20:15:12 +0100 |
commit | c6673c0c7a8cd272bf5c57bae2dfdf9e3375e720 (patch) | |
tree | 7ffbbb53d01f5ba10741792a307c49bfbd975c42 /0021-Merge-shared-and-static-library-trees.patch | |
parent | a984353d1a4d7e288228aae29ecde8aab27ca487 (diff) | |
download | aur-c6673c0c7a8cd272bf5c57bae2dfdf9e3375e720.tar.gz |
Update to 5.10.1
Diffstat (limited to '0021-Merge-shared-and-static-library-trees.patch')
-rw-r--r-- | 0021-Merge-shared-and-static-library-trees.patch | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/0021-Merge-shared-and-static-library-trees.patch b/0021-Merge-shared-and-static-library-trees.patch new file mode 100644 index 000000000000..c75ede7a9cf2 --- /dev/null +++ b/0021-Merge-shared-and-static-library-trees.patch @@ -0,0 +1,132 @@ +From 297f163b0298a45307f397842bca505c860a7fc3 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 18 Sep 2016 18:45:08 +0200 +Subject: [PATCH 21/32] Merge shared and static library trees + +Allow installation of shared and static build in the same prefix +--- + configure.pri | 9 +++++++++ + mkspecs/features/default_post.prf | 11 +++++++++++ + mkspecs/features/qt.prf | 17 +++++++++++++++++ + mkspecs/features/spec_pre.prf | 11 ++++++++--- + qmake/generators/makefile.cpp | 9 ++++++--- + 5 files changed, 51 insertions(+), 6 deletions(-) + +diff --git a/configure.pri b/configure.pri +index ea482552c4..9da756fb3a 100644 +--- a/configure.pri ++++ b/configure.pri +@@ -1225,3 +1225,12 @@ defineTest(createConfigStatus) { + + QMAKE_POST_CONFIGURE += \ + "createConfigStatus()" ++ ++# merge shared and static library trees ++contains(CONFIG, static) { ++ CONFIG -= shared ++ QT_CONFIG += static jpeg gif ++ QT_CONFIG -= shared ++ # prevent smart library merge from messing cyclic dependency between freetype2 and harfbuzz ++ CONFIG += no_smart_library_merge ++} +diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf +index 7e027325bd..ad0db62b78 100644 +--- a/mkspecs/features/default_post.prf ++++ b/mkspecs/features/default_post.prf +@@ -1,5 +1,16 @@ + # This file is loaded by qmake right after loading the actual project file. + ++win32:contains(CONFIG, static) { ++ # Ensure defines are set correctly for static build ++ DEFINES -= QT_SHARED ++ DEFINES *= QT_STATIC QT_DESIGNER_STATIC ++ contains(QT_CONFIG, angle): DEFINES *= QT_OPENGL_ES_2_ANGLE_STATIC ++ # Ensure we link against all dependencies statically ++ QMAKE_LFLAGS += -static -static-libstdc++ -static-libgcc ++ # Prevent qmake from finding the prl file for shared libs ++ QMAKE_EXT_PRL = .static.prl ++} ++ + contains(TEMPLATE, ".*(lib|app)"):CONFIG += have_target + + !have_target:!force_qt: CONFIG -= qt +diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf +index b57afcf72d..6eebd068f1 100644 +--- a/mkspecs/features/qt.prf ++++ b/mkspecs/features/qt.prf +@@ -259,6 +259,23 @@ for(ever) { + !isEmpty(MODULE_WINRT_CAPABILITIES_DEVICE): \ + WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE + } ++ ++ # Ensure linking against all required static libraries as defined in mingw-w64-g++ mkspec ++ win32:contains(CONFIG, static) { ++ isEqual(MODULE_NAME, QtCore) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_CORE ++ } else:isEqual(MODULE_NAME, QtGui) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_GUI_STATIC ++ } else:isEqual(MODULE_NAME, QtNetwork) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_NETWORK_STATIC ++ } else:isEqual(MODULE_NAME, QtDBus) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_DBUS_STATIC ++ } else:isEqual(MODULE_NAME, QtWidgets) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_WIDGETS_STATIC ++ } else:isEqual(MODULE_NAME, QtOpenGL) { ++ LIBS$$var_sfx += $$QMAKE_LIBS_OPENGL ++ } ++ } + } + !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)") + +diff --git a/mkspecs/features/spec_pre.prf b/mkspecs/features/spec_pre.prf +index 51ea3a8321..275e080ae4 100644 +--- a/mkspecs/features/spec_pre.prf ++++ b/mkspecs/features/spec_pre.prf +@@ -14,9 +14,14 @@ QMAKE_EXT_H = .h .hpp .hh .hxx + QMAKE_EXT_H_MOC = .cpp + QMAKE_EXT_JS = .js + QMAKE_EXT_LEX = .l +-QMAKE_EXT_LIBTOOL = .la +-QMAKE_EXT_PKGCONFIG = .pc +-QMAKE_EXT_PRL = .prl ++QMAKE_EXT_PKGCONFIG = .pc ++contains(CONFIG, static) { ++ QMAKE_EXT_LIBTOOL = .static.la ++ QMAKE_EXT_PRL = .static.prl ++} else { ++ QMAKE_EXT_LIBTOOL = .la ++ QMAKE_EXT_PRL = .prl ++} + QMAKE_EXT_UI = .ui + QMAKE_EXT_YACC = .y + +diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp +index 0d07d6c333..5e84628e72 100644 +--- a/qmake/generators/makefile.cpp ++++ b/qmake/generators/makefile.cpp +@@ -3163,6 +3163,9 @@ MakefileGenerator::pkgConfigFileName(bool fixify, bool onlyPrependDestdir) + if (project->isActiveConfig("debug")) { + ret += "d"; + } ++ if (project->isActiveConfig("staticlib")) { ++ ret.insert(0, QStringLiteral("Static")); ++ } + ret += Option::pkgcfg_ext; + QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR").toQString(); + if(!subdir.isEmpty()) { +@@ -3336,9 +3339,9 @@ MakefileGenerator::writePkgConfigFile() + t << endl; + + // requires +- const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(' '); +- if (!requires.isEmpty()) { +- t << "Requires: " << requires << endl; ++ t << "Requires:"; ++ for (const auto &required : project->values("QMAKE_PKGCONFIG_REQUIRES")) { ++ t << (project->isActiveConfig("staticlib") ? QStringLiteral(" Static") : QStringLiteral(" ")) << required.toQString(); + } + + t << endl; +-- +2.16.1 + |