From 074daa41ff8bb0834ce207c36efeaa2563e0cf86 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Date: Mon, 29 Oct 2012 12:43:43 +0100 Subject: [PATCH] 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 (cherry picked from qttools/0e75115e557b4cf1c737e3e5524f876a6b85a39e) (cherry picked from qttools/769fa282ac8a4b98698dada6969452363e0eb415) Reviewed-by: Daniel Teske <daniel.teske@digia.com> --- src/shared/proparser/qmakeevaluator.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index be62a8b45ac..dd82e3d72b9 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -1051,20 +1051,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(); @@ -1108,8 +1111,13 @@ bool QMakeEvaluator::loadSpec() } updateMkspecPaths(); + if (qmakespec.isEmpty()) + 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 = m_hostBuild ? QLatin1String("default-host") : QLatin1String("default"); +#endif if (IoUtils::isRelativePath(qmakespec)) { foreach (const QString &root, m_mkspecPaths) { QString mkspec = root + QLatin1Char('/') + qmakespec; -- GitLab