forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.3' into 4.4
Conflicts: qtcreator.qbs Change-Id: Ic5e268326d93172208de291d31a716e437b9cedf
This commit is contained in:
@@ -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
|
||||
|
||||
|
@@ -97,7 +97,7 @@
|
||||
|
||||
\endlist
|
||||
|
||||
\li \macos 10.8 or later with the following:
|
||||
\li \macos 10.10 or later with the following:
|
||||
|
||||
\list
|
||||
|
||||
|
@@ -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 {
|
||||
|
@@ -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
|
||||
|
@@ -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>
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user