diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index 8fad206f6acf3da3c27c8c1814fbe3aa9d2600bf..32cec77306d52808db11927f8763f9d2810f7aa7 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -211,7 +211,6 @@ void QMakeEvaluator::initFrom(const QMakeEvaluator &other) m_valuemapStack = other.m_valuemapStack; m_valuemapInited = true; m_qmakespec = other.m_qmakespec; - m_qmakespecFull = other.m_qmakespecFull; m_qmakespecName = other.m_qmakespecName; m_mkspecPaths = other.m_mkspecPaths; m_featureRoots = other.m_featureRoots; @@ -1129,16 +1128,17 @@ bool QMakeEvaluator::loadSpecInternal() return false; } #ifdef Q_OS_UNIX - m_qmakespecFull = QFileInfo(m_qmakespec).canonicalFilePath(); + m_qmakespec = QFileInfo(m_qmakespec).canonicalFilePath(); #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")); - m_qmakespecFull = orig_spec.isEmpty() ? m_qmakespec : orig_spec.toQString(); + if (!orig_spec.isEmpty()) + m_qmakespec = orig_spec.toQString(); #endif - valuesRef(ProKey("QMAKESPEC")) << ProString(m_qmakespecFull); - m_qmakespecName = IoUtils::fileName(m_qmakespecFull).toString(); + valuesRef(ProKey("QMAKESPEC")) << ProString(m_qmakespec); + m_qmakespecName = IoUtils::fileName(m_qmakespec).toString(); if (!evaluateFeatureFile(QLatin1String("spec_post.prf"))) return false; // The MinGW and x-build specs may change the separator; $$shell_{path,quote}() need it @@ -1426,12 +1426,12 @@ void QMakeEvaluator::updateFeaturePaths() foreach (const QString &item, m_qmakepath) feature_bases << (item + mkspecs_concat); - if (!m_qmakespecFull.isEmpty()) { + if (!m_qmakespec.isEmpty()) { // The spec is already platform-dependent, so no subdirs here. - feature_roots << (m_qmakespecFull + features_concat); + feature_roots << (m_qmakespec + features_concat); // Also check directly under the root directory of the mkspecs collection - QDir specdir(m_qmakespecFull); + QDir specdir(m_qmakespec); while (!specdir.isRoot() && specdir.cdUp()) { const QString specpath = specdir.path(); if (specpath.endsWith(mkspecs_concat)) { diff --git a/qmake/library/qmakeevaluator.h b/qmake/library/qmakeevaluator.h index 312b02c41350f291a755179ac46aa67790d4f831..cdc85c3b23649e72fe15984ed3b3ec3b2946e593 100644 --- a/qmake/library/qmakeevaluator.h +++ b/qmake/library/qmakeevaluator.h @@ -278,7 +278,6 @@ public: bool m_valuemapInited; bool m_hostBuild; QString m_qmakespec; - QString m_qmakespecFull; QString m_qmakespecName; QString m_superfile; QString m_conffile; diff --git a/qmake/project.h b/qmake/project.h index f38b4351febee88f95175df4a3125085dac339f1..3b5e57cd904f2f20439fcde2961439e5ebbc67e2 100644 --- a/qmake/project.h +++ b/qmake/project.h @@ -60,7 +60,7 @@ public: QString buildRoot() const { return m_buildRoot; } QString confFile() const { return m_conffile; } QString cacheFile() const { return m_cachefile; } - QString specDir() const { return m_qmakespecFull; } + QString specDir() const { return m_qmakespec; } ProString expand(const QString &v, const QString &file, int line); QStringList expand(const ProKey &func, const QList<ProStringList> &args);