forked from pool/libqt5-qtbase
103 lines
4.1 KiB
Diff
103 lines
4.1 KiB
Diff
|
From 4da47d0fba04e5d50bf6b63e73bc0de986560f42 Mon Sep 17 00:00:00 2001
|
||
|
From: Joerg Bornemann <joerg.bornemann@qt.io>
|
||
|
Date: Mon, 3 Jun 2019 14:59:16 +0200
|
||
|
Subject: Make sure .pc, .prl and .la files are created for header_only modules
|
||
|
|
||
|
Those modules are TEMPLATE=aux, so they weren't triggering the file creation
|
||
|
here.
|
||
|
|
||
|
To make this work properly we have to:
|
||
|
- check for TEMPLATE aux in the right places
|
||
|
- add a dummy target to INSTALLS to actually trigger the creation
|
||
|
- initialize PRL_TARGET for aux templates
|
||
|
|
||
|
Fixes: QTBUG-75901
|
||
|
Started-by: Thiago Macieira <thiago.macieira@intel.com>
|
||
|
Change-Id: Idce141629dd34287808bfffd159f92ac28c6c8b1
|
||
|
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
||
|
---
|
||
|
mkspecs/features/qt_module.prf | 5 +++++
|
||
|
qmake/generators/makefile.cpp | 3 ++-
|
||
|
qmake/generators/unix/unixmake.cpp | 2 +-
|
||
|
qmake/generators/unix/unixmake2.cpp | 10 +++++++---
|
||
|
4 files changed, 15 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
|
||
|
index 51b5bde67a..18060cd490 100644
|
||
|
--- a/mkspecs/features/qt_module.prf
|
||
|
+++ b/mkspecs/features/qt_module.prf
|
||
|
@@ -82,6 +82,11 @@ header_module {
|
||
|
CONFIG += force_qt # Needed for the headers_clean tests.
|
||
|
!lib_bundle: \
|
||
|
CONFIG += qt_no_install_library
|
||
|
+
|
||
|
+ # Allow creation of .prl, .la and .pc files.
|
||
|
+ target.path = $$[QT_INSTALL_LIBS]
|
||
|
+ target.CONFIG += dummy_install
|
||
|
+ INSTALLS += target
|
||
|
} else {
|
||
|
TEMPLATE = lib
|
||
|
}
|
||
|
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
|
||
|
index 4a99a60892..caaf6e71b6 100644
|
||
|
--- a/qmake/generators/makefile.cpp
|
||
|
+++ b/qmake/generators/makefile.cpp
|
||
|
@@ -1120,7 +1120,8 @@ MakefileGenerator::writePrlFile()
|
||
|
&& project->values("QMAKE_FAILED_REQUIREMENTS").isEmpty()
|
||
|
&& project->isActiveConfig("create_prl")
|
||
|
&& (project->first("TEMPLATE") == "lib"
|
||
|
- || project->first("TEMPLATE") == "vclib")
|
||
|
+ || project->first("TEMPLATE") == "vclib"
|
||
|
+ || project->first("TEMPLATE") == "aux")
|
||
|
&& (!project->isActiveConfig("plugin") || project->isActiveConfig("static"))) { //write prl file
|
||
|
QString local_prl = prlFileName();
|
||
|
QString prl = fileFixify(local_prl);
|
||
|
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
|
||
|
index 7f42fbe09e..b809bb6c19 100644
|
||
|
--- a/qmake/generators/unix/unixmake.cpp
|
||
|
+++ b/qmake/generators/unix/unixmake.cpp
|
||
|
@@ -726,7 +726,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
- if(project->first("TEMPLATE") == "lib") {
|
||
|
+ if (isAux || project->first("TEMPLATE") == "lib") {
|
||
|
QStringList types;
|
||
|
types << "prl" << "libtool" << "pkgconfig";
|
||
|
for(int i = 0; i < types.size(); ++i) {
|
||
|
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
|
||
|
index 24215ae7b0..d9bcccf2e2 100644
|
||
|
--- a/qmake/generators/unix/unixmake2.cpp
|
||
|
+++ b/qmake/generators/unix/unixmake2.cpp
|
||
|
@@ -48,12 +48,15 @@ void
|
||
|
UnixMakefileGenerator::writePrlFile(QTextStream &t)
|
||
|
{
|
||
|
MakefileGenerator::writePrlFile(t);
|
||
|
+ const ProString tmplt = project->first("TEMPLATE");
|
||
|
+ if (tmplt != "lib" && tmplt != "aux")
|
||
|
+ return;
|
||
|
// libtool support
|
||
|
- if(project->isActiveConfig("create_libtool") && project->first("TEMPLATE") == "lib") { //write .la
|
||
|
+ if (project->isActiveConfig("create_libtool")) {
|
||
|
writeLibtoolFile();
|
||
|
}
|
||
|
// pkg-config support
|
||
|
- if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == "lib")
|
||
|
+ if (project->isActiveConfig("create_pc"))
|
||
|
writePkgConfigFile();
|
||
|
}
|
||
|
|
||
|
@@ -1199,7 +1202,8 @@ void UnixMakefileGenerator::init2()
|
||
|
project->values("QMAKE_FRAMEWORK_VERSION").append(project->first("VER_MAJ"));
|
||
|
|
||
|
if (project->first("TEMPLATE") == "aux") {
|
||
|
- // nothing
|
||
|
+ project->values("PRL_TARGET") =
|
||
|
+ project->values("TARGET").first().prepend(project->first("QMAKE_PREFIX_STATICLIB"));
|
||
|
} else if (!project->values("QMAKE_APP_FLAG").isEmpty()) {
|
||
|
if(!project->isEmpty("QMAKE_BUNDLE")) {
|
||
|
ProString bundle_loc = project->first("QMAKE_BUNDLE_LOCATION");
|
||
|
--
|
||
|
cgit v1.2.1
|
||
|
|