diff options
author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2012-10-29 12:43:43 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-01 20:17:57 +0100 |
commit | 7d20f3dd1065a20b40cb4689783fba05190fe317 (patch) | |
tree | a8e149e2a704fe3fabb9cfff199adbcf234e9cae /qmake | |
parent | 8abfe4bb43616d1a57087bfa2c2cfc889a5dcea4 (diff) |
rewrite default spec handling
instead of symlinking (on unix) or creating a forwarding spec (on
windows), just put the default specs into (the bootstrapped)
QLibraryInfo.
Change-Id: I595500ef7399f77cb8ec117c4303bc0a2ffe505f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/library/qmakeevaluator.cpp | 14 | ||||
-rw-r--r-- | qmake/property.cpp | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index f4125eca8e..e861c8d4f6 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -1127,20 +1127,23 @@ bool QMakeEvaluator::loadSpecInternal() evalError(fL1S("Could not read qmake configuration file %1.").arg(spec)); return false; } -#ifdef Q_OS_UNIX +#ifndef QT_BUILD_QMAKE + // Legacy support for Qt4 default specs +# ifdef Q_OS_UNIX if (m_qmakespec.endsWith(QLatin1String("/default-host")) || m_qmakespec.endsWith(QLatin1String("/default"))) { QString rspec = QFileInfo(m_qmakespec).readLink(); if (!rspec.isEmpty()) m_qmakespec = QDir::cleanPath(QDir(m_qmakespec).absoluteFilePath(rspec)); } -#else +# else // We can't resolve symlinks as they do on Unix, so configure.exe puts // the source of the qmake.conf at the end of the default/qmake.conf in // the QMAKESPEC_ORIGINAL variable. const ProString &orig_spec = first(ProKey("QMAKESPEC_ORIGINAL")); if (!orig_spec.isEmpty()) m_qmakespec = orig_spec.toQString(); +# endif #endif valuesRef(ProKey("QMAKESPEC")) << ProString(m_qmakespec); m_qmakespecName = IoUtils::fileName(m_qmakespec).toString(); @@ -1188,7 +1191,12 @@ bool QMakeEvaluator::loadSpec() updateMkspecPaths(); if (qmakespec.isEmpty()) - qmakespec = m_hostBuild ? QLatin1String("default-host") : QLatin1String("default"); + qmakespec = propertyValue(ProKey(m_hostBuild ? "QMAKE_SPEC" : "QMAKE_XSPEC")).toQString(); +#ifndef QT_BUILD_QMAKE + // Legacy support for Qt4 qmake in Qt Creator, etc. + if (qmakespec.isEmpty()) + qmakespec = QLatin1String("default-host") : QLatin1String("default"); +#endif if (IoUtils::isRelativePath(qmakespec)) { foreach (const QString &root, m_mkspecPaths) { QString mkspec = root + QLatin1Char('/') + qmakespec; diff --git a/qmake/property.cpp b/qmake/property.cpp index d9056cdb72..f1e9ba63ac 100644 --- a/qmake/property.cpp +++ b/qmake/property.cpp @@ -71,6 +71,8 @@ static const struct { { "QT_HOST_PREFIX", QLibraryInfo::HostPrefixPath, true }, { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true }, { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true }, + { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true }, + { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true }, }; QMakeProperty::QMakeProperty() : settings(0) |