diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 2 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 51 |
2 files changed, 38 insertions, 15 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 92c92fd4b..4f871c17f 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -1696,6 +1696,8 @@ QVariantMap ProjectResolver::evaluateModuleValues(Item *item, bool lookupPrototy ? &m_elapsedTimeModPropEval : nullptr); QVariantMap moduleValues; for (const Item::Module &module : item->modules()) { + if (!module.item->isPresentModule()) + continue; const QString fullName = module.name.toString(); moduleValues[fullName] = evaluateProperties(module.item, lookupPrototype, true); } diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index 3bc21b279..804844d13 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -692,21 +692,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; } @@ -726,8 +741,14 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, const Version qtVersion = Version(qtEnvironment.qtMajorVersion, qtEnvironment.qtMinorVersion, qtEnvironment.qtPatchVersion); - qtEnvironment.entryPointLibsDebug = fillEntryPointLibs(qtEnvironment, qtVersion, true); - qtEnvironment.entryPointLibsRelease = fillEntryPointLibs(qtEnvironment, qtVersion, false); + if (qtEnvironment.buildVariant.contains(QLatin1String("debug"))) { + qtEnvironment.entryPointLibsDebug = fillEntryPointLibs(qtEnvironment, qtVersion, + true); + } + if (qtEnvironment.buildVariant.contains(QLatin1String("release"))) { + qtEnvironment.entryPointLibsRelease = fillEntryPointLibs(qtEnvironment, qtVersion, + false); + } } else if (qtEnvironment.mkspecPath.contains(QLatin1String("macx"))) { if (qtEnvironment.qtMajorVersion >= 5) { QFile qmakeConf(qtEnvironment.mkspecPath + QStringLiteral("/qmake.conf")); |