aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-10-10 13:57:22 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-10-22 11:36:41 +0000
commit6e29a5c6fb1bdf20c0d8ee832a2d1ede9bd31717 (patch)
tree781db387e60230a71fe742abfa48f11b1104c7a5
parent39e5b86655d86793358ce80b610d56b2534c09e5 (diff)
qtprofilesetup: Support platforms where qtmain is called qt5main
Fixes: QBS-767 Change-Id: I5b00c7d13d59cc4f461b0806f22536e595c0a266 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp41
1 files changed, 28 insertions, 13 deletions
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp
index 658aa696f..1ee4aa3c6 100644
--- a/src/lib/qtprofilesetup/qtprofilesetup.cpp
+++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp
@@ -690,21 +690,36 @@ static QStringList fillEntryPointLibs(const QtEnvironment &qtEnvironment, const
bool debug)
{
QStringList result;
- QString qtmain = qtEnvironment.libraryPath + QLatin1Char('/');
const bool isMinGW = qtEnvironment.isForMinGw();
- if (isMinGW)
- qtmain += QLatin1String("lib");
- qtmain += QLatin1String("qtmain") + qtEnvironment.qtLibInfix;
- if (debug)
- qtmain += QLatin1Char('d');
- if (isMinGW) {
- qtmain += QLatin1String(".a");
- } else {
- qtmain += QLatin1String(".lib");
- if (qtVersion >= Version(5, 4, 0))
- result << QLatin1String("Shell32.lib");
+
+ // Some Linux distributions rename the qtmain library.
+ QStringList qtMainCandidates(QLatin1String("qtmain"));
+ if (isMinGW && qtEnvironment.qtMajorVersion == 5)
+ qtMainCandidates << QLatin1String("qt5main");
+
+ for (const QString &baseNameCandidate : qtMainCandidates) {
+ QString qtmain = qtEnvironment.libraryPath + QLatin1Char('/');
+ if (isMinGW)
+ qtmain += QLatin1String("lib");
+ qtmain += baseNameCandidate + qtEnvironment.qtLibInfix;
+ if (debug)
+ qtmain += QLatin1Char('d');
+ if (isMinGW) {
+ qtmain += QLatin1String(".a");
+ } else {
+ qtmain += QLatin1String(".lib");
+ if (qtVersion >= Version(5, 4, 0))
+ result << QLatin1String("Shell32.lib");
+ }
+ if (QFile::exists(qtmain)) {
+ result << qtmain;
+ break;
+ }
+ }
+ if (result.isEmpty()) {
+ qDebug("Warning: Could not find the qtmain library. "
+ "You will not be able to link Qt applications.");
}
- result << qtmain;
return result;
}