diff options
Diffstat (limited to 'src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp')
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 93cbde2eb10..eeab2c51f77 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -52,6 +52,7 @@ #include <utils/qtcprocess.h> #include <QCoreApplication> +#include <QCryptographicHash> using namespace ProjectExplorer; using namespace Utils; @@ -92,6 +93,18 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Core::Id id) this, &QbsBuildConfiguration::triggerReparseIfActive); connect(this, &QbsBuildConfiguration::qbsConfigurationChanged, this, &QbsBuildConfiguration::triggerReparseIfActive); + + m_buildSystem = new QbsBuildSystem(this); +} + +QbsBuildConfiguration::~QbsBuildConfiguration() +{ + delete m_buildSystem; +} + +BuildSystem *QbsBuildConfiguration::buildSystem() const +{ + return m_buildSystem; } void QbsBuildConfiguration::initialize() @@ -119,7 +132,15 @@ void QbsBuildConfiguration::initialize() + Utils::FileUtils::fileSystemFriendlyName(initialDisplayName()); } - m_configurationName->setValue(configName); + const Kit *kit = target()->kit(); + const QString kitName = kit->displayName(); + const QByteArray kitHash = QCryptographicHash::hash(kitName.toUtf8(), QCryptographicHash::Sha1); + + const QString uniqueConfigName = configName + + '_' + kit->fileSystemFriendlyName().left(8) + + '_' + kitHash.toHex().left(16); + + m_configurationName->setValue(uniqueConfigName); BuildStepList *buildSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); auto bs = new QbsBuildStep(buildSteps); @@ -137,7 +158,7 @@ void QbsBuildConfiguration::initialize() void QbsBuildConfiguration::triggerReparseIfActive() { if (isActive()) - qbsProject()->delayParsing(); + m_buildSystem->delayParsing(); } bool QbsBuildConfiguration::fromMap(const QVariantMap &map) @@ -169,11 +190,6 @@ QVariantMap QbsBuildConfiguration::qbsConfiguration() const return config; } -Internal::QbsProject *QbsBuildConfiguration::qbsProject() const -{ - return qobject_cast<Internal::QbsProject *>(project()); -} - BuildConfiguration::BuildType QbsBuildConfiguration::buildType() const { QString variant; |