aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}