diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-10 13:57:22 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-22 11:36:41 +0000 |
commit | 6e29a5c6fb1bdf20c0d8ee832a2d1ede9bd31717 (patch) | |
tree | 781db387e60230a71fe742abfa48f11b1104c7a5 | |
parent | 39e5b86655d86793358ce80b610d56b2534c09e5 (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.cpp | 41 |
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; } |