forked from qt-creator/qt-creator
iOS: Do not drag unused QSettings objects around.
Change-Id: I5f641ba713e11c7a5376f94babf745f35ccbdba2 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
@@ -131,15 +131,14 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
foreach (const QFileInfo &fInfo, platforms) {
|
foreach (const QFileInfo &fInfo, platforms) {
|
||||||
if (fInfo.isDir() && fInfo.suffix() == QLatin1String("platform")) {
|
if (fInfo.isDir() && fInfo.suffix() == QLatin1String("platform")) {
|
||||||
qCDebug(probeLog) << indent << QString::fromLatin1("Setting up %1").arg(fInfo.fileName());
|
qCDebug(probeLog) << indent << QString::fromLatin1("Setting up %1").arg(fInfo.fileName());
|
||||||
QSettingsPtr infoSettings(new QSettings(
|
QSettings infoSettings(fInfo.absoluteFilePath() + QLatin1String("/Info.plist"),
|
||||||
fInfo.absoluteFilePath() + QLatin1String("/Info.plist"),
|
QSettings::NativeFormat);
|
||||||
QSettings::NativeFormat));
|
if (!infoSettings.contains(QLatin1String("Name"))) {
|
||||||
if (!infoSettings->contains(QLatin1String("Name"))) {
|
|
||||||
qCWarning(probeLog) << indent << QString::fromLatin1("Missing platform name in Info.plist of %1")
|
qCWarning(probeLog) << indent << QString::fromLatin1("Missing platform name in Info.plist of %1")
|
||||||
.arg(fInfo.absoluteFilePath());
|
.arg(fInfo.absoluteFilePath());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
QString name = infoSettings->value(QLatin1String("Name")).toString();
|
QString name = infoSettings.value(QLatin1String("Name")).toString();
|
||||||
if (name != QLatin1String("macosx") && name != QLatin1String("iphoneos")
|
if (name != QLatin1String("macosx") && name != QLatin1String("iphoneos")
|
||||||
&& name != QLatin1String("iphonesimulator"))
|
&& name != QLatin1String("iphonesimulator"))
|
||||||
{
|
{
|
||||||
@@ -148,9 +147,9 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
}
|
}
|
||||||
|
|
||||||
// prepare default platform properties
|
// prepare default platform properties
|
||||||
QVariantMap defaultProp = infoSettings->value(QLatin1String("DefaultProperties"))
|
QVariantMap defaultProp = infoSettings.value(QLatin1String("DefaultProperties"))
|
||||||
.toMap();
|
.toMap();
|
||||||
QVariantMap overrideProp = infoSettings->value(QLatin1String("OverrideProperties"))
|
QVariantMap overrideProp = infoSettings.value(QLatin1String("OverrideProperties"))
|
||||||
.toMap();
|
.toMap();
|
||||||
QMapIterator<QString, QVariant> i(overrideProp);
|
QMapIterator<QString, QVariant> i(overrideProp);
|
||||||
while (i.hasNext()) {
|
while (i.hasNext()) {
|
||||||
@@ -184,7 +183,6 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
clangProfile.platformKind = 0;
|
clangProfile.platformKind = 0;
|
||||||
clangProfile.name = clangFullName;
|
clangProfile.name = clangFullName;
|
||||||
clangProfile.platformPath = Utils::FileName(fInfo);
|
clangProfile.platformPath = Utils::FileName(fInfo);
|
||||||
clangProfile.platformInfo = infoSettings;
|
|
||||||
clangProfile.compilerPath = Utils::FileName(clangFileInfo);
|
clangProfile.compilerPath = Utils::FileName(clangFileInfo);
|
||||||
QStringList flags = extraFlags;
|
QStringList flags = extraFlags;
|
||||||
flags << QLatin1String("-dumpmachine");
|
flags << QLatin1String("-dumpmachine");
|
||||||
@@ -208,7 +206,6 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
gccProfile.platformKind = 0;
|
gccProfile.platformKind = 0;
|
||||||
// use the arm-apple-darwin10-llvm-* variant and avoid the extraFlags if available???
|
// use the arm-apple-darwin10-llvm-* variant and avoid the extraFlags if available???
|
||||||
gccProfile.platformPath = Utils::FileName(fInfo);
|
gccProfile.platformPath = Utils::FileName(fInfo);
|
||||||
gccProfile.platformInfo = infoSettings;
|
|
||||||
gccProfile.compilerPath = Utils::FileName(gccFileInfo);
|
gccProfile.compilerPath = Utils::FileName(gccFileInfo);
|
||||||
QStringList flags = extraFlags;
|
QStringList flags = extraFlags;
|
||||||
flags << QLatin1String("-dumpmachine");
|
flags << QLatin1String("-dumpmachine");
|
||||||
@@ -223,7 +220,6 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
|
|
||||||
// set SDKs/sysroot
|
// set SDKs/sysroot
|
||||||
QString sysRoot;
|
QString sysRoot;
|
||||||
QSettingsPtr sdkSettings;
|
|
||||||
{
|
{
|
||||||
QString sdkName;
|
QString sdkName;
|
||||||
if (defaultProp.contains(QLatin1String("SDKROOT")))
|
if (defaultProp.contains(QLatin1String("SDKROOT")))
|
||||||
@@ -234,12 +230,12 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
foreach (const QFileInfo &sdkDirInfo, sdks.entryInfoList(QDir::Dirs
|
foreach (const QFileInfo &sdkDirInfo, sdks.entryInfoList(QDir::Dirs
|
||||||
| QDir::NoDotAndDotDot)) {
|
| QDir::NoDotAndDotDot)) {
|
||||||
indent = QLatin1String(" ");
|
indent = QLatin1String(" ");
|
||||||
QSettingsPtr sdkInfo(new QSettings(sdkDirInfo.absoluteFilePath()
|
QSettings sdkInfo(sdkDirInfo.absoluteFilePath()
|
||||||
+ QLatin1String("/SDKSettings.plist"),
|
+ QLatin1String("/SDKSettings.plist"),
|
||||||
QSettings::NativeFormat));
|
QSettings::NativeFormat);
|
||||||
QString versionStr = sdkInfo->value(QLatin1String("Version")).toString();
|
QString versionStr = sdkInfo.value(QLatin1String("Version")).toString();
|
||||||
QVariant currentSdkName = sdkInfo->value(QLatin1String("CanonicalName"));
|
QVariant currentSdkName = sdkInfo.value(QLatin1String("CanonicalName"));
|
||||||
bool isBaseSdk = sdkInfo->value((QLatin1String("isBaseSDK"))).toString()
|
bool isBaseSdk = sdkInfo.value((QLatin1String("isBaseSDK"))).toString()
|
||||||
.toLower() != QLatin1String("no");
|
.toLower() != QLatin1String("no");
|
||||||
if (!isBaseSdk) {
|
if (!isBaseSdk) {
|
||||||
qCDebug(probeLog) << indent << QString::fromLatin1("Skipping non base Sdk %1")
|
qCDebug(probeLog) << indent << QString::fromLatin1("Skipping non base Sdk %1")
|
||||||
@@ -250,11 +246,9 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
if (maxVersion.isEmpty() || compareVersions(maxVersion, versionStr) > 0) {
|
if (maxVersion.isEmpty() || compareVersions(maxVersion, versionStr) > 0) {
|
||||||
maxVersion = versionStr;
|
maxVersion = versionStr;
|
||||||
sdkPath = sdkDirInfo.canonicalFilePath();
|
sdkPath = sdkDirInfo.canonicalFilePath();
|
||||||
sdkSettings = sdkInfo;
|
|
||||||
}
|
}
|
||||||
} else if (currentSdkName == sdkName) {
|
} else if (currentSdkName == sdkName) {
|
||||||
sdkPath = sdkDirInfo.canonicalFilePath();
|
sdkPath = sdkDirInfo.canonicalFilePath();
|
||||||
sdkSettings = sdkInfo;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!sdkPath.isEmpty())
|
if (!sdkPath.isEmpty())
|
||||||
@@ -265,15 +259,12 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco
|
|||||||
if (hasClang && !sysRoot.isEmpty()) {
|
if (hasClang && !sysRoot.isEmpty()) {
|
||||||
m_platforms[clangFullName].platformKind |= Platform::BasePlatform;
|
m_platforms[clangFullName].platformKind |= Platform::BasePlatform;
|
||||||
m_platforms[clangFullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
m_platforms[clangFullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
||||||
m_platforms[clangFullName].sdkSettings = sdkSettings;
|
|
||||||
m_platforms[clang11FullName].platformKind |= Platform::BasePlatform;
|
m_platforms[clang11FullName].platformKind |= Platform::BasePlatform;
|
||||||
m_platforms[clang11FullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
m_platforms[clang11FullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
||||||
m_platforms[clang11FullName].sdkSettings = sdkSettings;
|
|
||||||
}
|
}
|
||||||
if (hasGcc && !sysRoot.isEmpty()) {
|
if (hasGcc && !sysRoot.isEmpty()) {
|
||||||
m_platforms[gccFullName].platformKind |= Platform::BasePlatform;
|
m_platforms[gccFullName].platformKind |= Platform::BasePlatform;
|
||||||
m_platforms[gccFullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
m_platforms[gccFullName].sdkPath = Utils::FileName::fromString(sysRoot);
|
||||||
m_platforms[gccFullName].sdkSettings = sdkSettings;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
indent = QLatin1String(" ");
|
indent = QLatin1String(" ");
|
||||||
|
|||||||
@@ -37,8 +37,6 @@
|
|||||||
|
|
||||||
namespace Ios {
|
namespace Ios {
|
||||||
|
|
||||||
typedef QSharedPointer<QSettings> QSettingsPtr;
|
|
||||||
|
|
||||||
class Platform
|
class Platform
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -56,8 +54,6 @@ public:
|
|||||||
Utils::FileName compilerPath;
|
Utils::FileName compilerPath;
|
||||||
QString architecture;
|
QString architecture;
|
||||||
QStringList backendFlags;
|
QStringList backendFlags;
|
||||||
QSettingsPtr platformInfo;
|
|
||||||
QSettingsPtr sdkSettings;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class IosProbe
|
class IosProbe
|
||||||
|
|||||||
Reference in New Issue
Block a user