diff options
author | Eike Ziller <eike.ziller@qt.io> | 2017-07-10 09:54:52 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2017-07-10 09:54:52 +0200 |
commit | 345ea0307cb34bc7a00acb8881fa53bedb28b0ca (patch) | |
tree | 11b96bf9330e9c7a4b5c1b04b982be2bdd63741b | |
parent | 491ab37b1f5499bf53b5c8e41862776ec4d3658c (diff) | |
parent | 4196534759f7f7aa04c8675378cfec57539abc75 (diff) |
Merge remote-tracking branch 'origin/4.3' into 4.4
Conflicts:
qtcreator.qbs
Change-Id: Ic5e268326d93172208de291d31a716e437b9cedf
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | doc/src/overview/creator-supported-platforms.qdoc | 2 | ||||
-rw-r--r-- | qbs/imports/QtcProduct.qbs | 2 | ||||
-rw-r--r-- | qtcreator.qbs | 2 | ||||
-rw-r--r-- | src/app/Info.plist | 2 | ||||
-rw-r--r-- | src/app/app.pro | 7 | ||||
-rw-r--r-- | src/app/app.qbs | 11 | ||||
-rw-r--r-- | src/libs/cplusplus/LookupContext.cpp | 20 | ||||
-rw-r--r-- | src/libs/cplusplus/LookupContext.h | 3 |
9 files changed, 29 insertions, 22 deletions
@@ -8,7 +8,7 @@ The standalone binary packages support the following platforms: * Windows 7 or later * (K)Ubuntu Linux 16.04 (64-bit) or later -* macOS 10.8 or later +* macOS 10.10 or later ## Compiling Qt Creator diff --git a/doc/src/overview/creator-supported-platforms.qdoc b/doc/src/overview/creator-supported-platforms.qdoc index dda8caee09..43118e4c8d 100644 --- a/doc/src/overview/creator-supported-platforms.qdoc +++ b/doc/src/overview/creator-supported-platforms.qdoc @@ -97,7 +97,7 @@ \endlist - \li \macos 10.8 or later with the following: + \li \macos 10.10 or later with the following: \list diff --git a/qbs/imports/QtcProduct.qbs b/qbs/imports/QtcProduct.qbs index d89dbd1635..ea9fb30163 100644 --- a/qbs/imports/QtcProduct.qbs +++ b/qbs/imports/QtcProduct.qbs @@ -8,6 +8,7 @@ Product { version: qtc.qtcreator_version property bool install: true property string installDir + property string installSourceBase property stringList installTags: type property string fileName: FileInfo.fileName(sourceDirectory) + ".qbs" property bool useNonGuiPchFile: false @@ -37,6 +38,7 @@ Product { fileTagsFilter: installTags qbs.install: install qbs.installDir: installDir + qbs.installSourceBase: installSourceBase } Group { diff --git a/qtcreator.qbs b/qtcreator.qbs index 3394719939..97ed38a468 100644 --- a/qtcreator.qbs +++ b/qtcreator.qbs @@ -4,7 +4,7 @@ import qbs.FileInfo Project { name: "Qt Creator" - minimumQbsVersion: "1.6.0" + minimumQbsVersion: "1.7.0" property string minimumMacosVersion: "10.8" property bool withAutotests: qbs.buildVariant === "debug" property path ide_source_tree: path diff --git a/src/app/Info.plist b/src/app/Info.plist index 6d31c52d26..8447dd66d4 100644 --- a/src/app/Info.plist +++ b/src/app/Info.plist @@ -253,6 +253,6 @@ <key>CFBundleShortVersionString</key> <string>@SHORT_VERSION@</string> <key>LSMinimumSystemVersion</key> - <string>10.8</string> + <string>@MACOSX_DEPLOYMENT_TARGET@</string> </dict> </plist> diff --git a/src/app/app.pro b/src/app/app.pro index fee710e99d..58dca7ba05 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -53,7 +53,12 @@ win32 { INSTALLS += icns } } - QMAKE_INFO_PLIST = Info.plist + + infoplist = $$cat($$PWD/Info.plist, blob) + infoplist = $$replace(infoplist, @MACOSX_DEPLOYMENT_TARGET@, $$QMAKE_MACOSX_DEPLOYMENT_TARGET) + write_file($$OUT_PWD/Info.plist, infoplist) + + QMAKE_INFO_PLIST = $$OUT_PWD/Info.plist } target.path = $$INSTALL_APP_PATH diff --git a/src/app/app.qbs b/src/app/app.qbs index 2eac52ac64..0af41ca20d 100644 --- a/src/app/app.qbs +++ b/src/app/app.qbs @@ -20,7 +20,9 @@ QtcProduct { targetName: qtc.ide_app_target version: qtc.qtcreator_version - installDir: qtc.ide_bin_path + installDir: bundle.isBundle ? qtc.ide_app_path : qtc.ide_bin_path + installTags: bundle.isBundle ? ["bundle.content"] : base + installSourceBase: bundle.isBundle ? buildDirectory : base property bool qtcRunnable: true cpp.rpaths: qbs.targetOS.contains("macos") ? ["@executable_path/../Frameworks"] @@ -72,11 +74,4 @@ QtcProduct { "../shared/qtlockedfile/qtlockedfile_win.cpp" ] } - - Group { - condition: qbs.targetOS.contains("macos") - fileTagsFilter: ["aggregate_infoplist", "pkginfo", "compiled_assetcatalog"] - qbs.install: true - qbs.installSourceBase: product.buildDirectory - } } diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index cb2aead5a3..0e9fccead2 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -952,7 +952,7 @@ ClassOrNamespace *ClassOrNamespace::lookupType_helper(const Name *name, return this; } - if (ClassOrNamespace *e = nestedType(name, origin)) + if (ClassOrNamespace *e = nestedType(name, processed, origin)) return e; if (_templateId) { @@ -1074,7 +1074,9 @@ ClassOrNamespace *ClassOrNamespace::findOrCreateNestedAnonymousType( } } -ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespace *origin) +ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, + QSet<ClassOrNamespace *> *processed, + ClassOrNamespace *origin) { Q_ASSERT(name != 0); Q_ASSERT(name->isNameId() || name->isTemplateNameId() || name->isAnonymousNameId()); @@ -1184,11 +1186,11 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac instantiation->_name = templId; instantiation->_templateId = templId; - QSet<ClassOrNamespace *> processed; + QSet<ClassOrNamespace *> otherProcessed; while (!origin->_symbols.isEmpty() && origin->_symbols[0]->isBlock()) { - if (processed.contains(origin)) + if (otherProcessed.contains(origin)) break; - processed.insert(origin); + otherProcessed.insert(origin); origin = origin->parent(); } @@ -1310,7 +1312,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac // Another template that uses the dependent name. // Ex.: template <class T> class A : public B<T> {}; if (baseTemplId->identifier() != templId->identifier()) - baseBinding = nestedType(baseName, origin); + baseBinding = nestedType(baseName, processed, origin); } else if (const QualifiedNameId *qBaseName = baseName->asQualifiedNameId()) { // Qualified names in general. // Ex.: template <class T> class A : public B<T>::Type {}; @@ -1361,7 +1363,8 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac } if (binding) { - ClassOrNamespace * baseBinding = binding->lookupType(baseName); + ClassOrNamespace * baseBinding + = binding->lookupType_helper(baseName, processed, true, this); if (baseBinding && !knownUsings.contains(baseBinding)) reference->addUsing(baseBinding); } @@ -1518,7 +1521,8 @@ ClassOrNamespace *ClassOrNamespace::findOrCreateType(const Name *name, ClassOrNa return findOrCreateType(q->base(), origin)->findOrCreateType(q->name(), origin, clazz); } else if (name->isNameId() || name->isTemplateNameId() || name->isAnonymousNameId()) { - ClassOrNamespace *e = nestedType(name, origin); + QSet<ClassOrNamespace *> processed; + ClassOrNamespace *e = nestedType(name, &processed, origin); if (! e) { e = _factory->allocClassOrNamespace(this); diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h index 7273fe57d0..b13df5da29 100644 --- a/src/libs/cplusplus/LookupContext.h +++ b/src/libs/cplusplus/LookupContext.h @@ -121,7 +121,8 @@ private: ClassOrNamespace *findBlock_helper(Block *block, QSet<ClassOrNamespace *> *processed, bool searchInEnclosingScope); - ClassOrNamespace *nestedType(const Name *name, ClassOrNamespace *origin); + ClassOrNamespace *nestedType(const Name *name, QSet<ClassOrNamespace *> *processed, + ClassOrNamespace *origin); void instantiateNestedClasses(ClassOrNamespace *enclosingTemplateClass, Clone &cloner, |