forked from qt-creator/qt-creator
QtSupport: Add setting for arbitrary features for a Qt version
Change-Id: I9cd296316bd100d6f867ca7bffefb9676dc66c09 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
6f5f07d2e4
commit
4f537a5ea3
@@ -70,6 +70,7 @@ using namespace Utils;
|
||||
|
||||
static const char QTVERSIONAUTODETECTED[] = "isAutodetected";
|
||||
static const char QTVERSIONAUTODETECTIONSOURCE[] = "autodetectionSource";
|
||||
static const char QTVERSION_OVERRIDE_FEATURES[] = "overrideFeatures";
|
||||
static const char QTVERSIONQMAKEPATH[] = "QMakePath";
|
||||
static const char QTVERSIONSOURCEPATH[] = "SourcePath";
|
||||
|
||||
@@ -227,6 +228,7 @@ BaseQtVersion::BaseQtVersion(const BaseQtVersion &other) :
|
||||
m_qtConfigValues(other.m_qtConfigValues),
|
||||
m_unexpandedDisplayName(other.m_unexpandedDisplayName),
|
||||
m_autodetectionSource(other.m_autodetectionSource),
|
||||
m_overrideFeatures(other.m_overrideFeatures),
|
||||
m_sourcePath(other.m_sourcePath),
|
||||
m_mkspec(other.m_mkspec),
|
||||
m_mkspecFullPath(other.m_mkspecFullPath),
|
||||
@@ -662,6 +664,7 @@ void BaseQtVersion::fromMap(const QVariantMap &map)
|
||||
m_isAutodetected = map.value(QTVERSIONAUTODETECTED).toBool();
|
||||
if (m_isAutodetected)
|
||||
m_autodetectionSource = map.value(QTVERSIONAUTODETECTIONSOURCE).toString();
|
||||
m_overrideFeatures = Core::Id::fromStringList(map.value(QTVERSION_OVERRIDE_FEATURES).toStringList());
|
||||
QString string = map.value(QTVERSIONQMAKEPATH).toString();
|
||||
if (string.startsWith('~'))
|
||||
string.remove(0, 1).prepend(QDir::homePath());
|
||||
@@ -688,6 +691,9 @@ QVariantMap BaseQtVersion::toMap() const
|
||||
result.insert(QTVERSIONAUTODETECTED, isAutodetected());
|
||||
if (isAutodetected())
|
||||
result.insert(QTVERSIONAUTODETECTIONSOURCE, autodetectionSource());
|
||||
if (!m_overrideFeatures.isEmpty())
|
||||
result.insert(QTVERSION_OVERRIDE_FEATURES, Core::Id::toStringList(m_overrideFeatures));
|
||||
|
||||
result.insert(QTVERSIONQMAKEPATH, qmakeCommand().toString());
|
||||
return result;
|
||||
}
|
||||
@@ -1359,6 +1365,13 @@ void BaseQtVersion::populateQmlFileFinder(FileInProjectFinder *finder, const Tar
|
||||
finder->setAdditionalSearchDirectories(additionalSearchDirectories);
|
||||
}
|
||||
|
||||
QSet<Id> BaseQtVersion::features() const
|
||||
{
|
||||
if (m_overrideFeatures.isEmpty())
|
||||
return availableFeatures();
|
||||
return m_overrideFeatures;
|
||||
}
|
||||
|
||||
void BaseQtVersion::addToEnvironment(const Kit *k, Environment &env) const
|
||||
{
|
||||
Q_UNUSED(k);
|
||||
|
@@ -205,7 +205,6 @@ public:
|
||||
static QString defaultUnexpandedDisplayName(const Utils::FileName &qmakePath,
|
||||
bool fromPath = false);
|
||||
|
||||
virtual QSet<Core::Id> availableFeatures() const;
|
||||
virtual QSet<Core::Id> targetDeviceTypes() const = 0;
|
||||
|
||||
virtual QList<ProjectExplorer::Task> validateKit(const ProjectExplorer::Kit *k);
|
||||
@@ -237,7 +236,9 @@ public:
|
||||
static void populateQmlFileFinder(Utils::FileInProjectFinder *finder,
|
||||
const ProjectExplorer::Target *target);
|
||||
|
||||
QSet<Core::Id> features() const;
|
||||
protected:
|
||||
virtual QSet<Core::Id> availableFeatures() const;
|
||||
BaseQtVersion();
|
||||
BaseQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString());
|
||||
BaseQtVersion(const BaseQtVersion &other);
|
||||
@@ -294,6 +295,7 @@ private:
|
||||
|
||||
QString m_unexpandedDisplayName;
|
||||
QString m_autodetectionSource;
|
||||
QSet<Core::Id> m_overrideFeatures;
|
||||
mutable Utils::FileName m_sourcePath;
|
||||
mutable Utils::FileName m_qtSources;
|
||||
|
||||
|
@@ -231,7 +231,7 @@ Kit::Predicate QtKitInformation::qtVersionPredicate(const QSet<Core::Id> &requir
|
||||
return false;
|
||||
if (max.majorVersion > -1 && current > max)
|
||||
return false;
|
||||
return version->availableFeatures().contains(required);
|
||||
return version->features().contains(required);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ QSet<Core::Id> QtKitInformation::supportedPlatforms(const Kit *k) const
|
||||
QSet<Core::Id> QtKitInformation::availableFeatures(const Kit *k) const
|
||||
{
|
||||
BaseQtVersion *version = QtKitInformation::qtVersion(k);
|
||||
return version ? version->availableFeatures() : QSet<Core::Id>();
|
||||
return version ? version->features() : QSet<Core::Id>();
|
||||
}
|
||||
|
||||
} // namespace QtSupport
|
||||
|
Reference in New Issue
Block a user