diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp index 651ca7aab64..d687b9156ae 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp @@ -597,7 +597,7 @@ void CMakeRunPage::runCMake() m_argumentsLineEdit->text(), m_cmakeWizard->sourceDirectory(), m_buildDirectory, env, QString::fromLatin1(generatorInfo.generatorArgument()), - QString::fromLatin1(generatorInfo.preLoadScriptFileArgument())); + generatorInfo.preLoadCacheFileArgument()); } else { m_runCMake->setEnabled(true); m_argumentsLineEdit->setEnabled(true); diff --git a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitconfigwidget.cpp b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitconfigwidget.cpp index 03d365d7fd0..58793fedf3a 100644 --- a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitconfigwidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitconfigwidget.cpp @@ -77,7 +77,7 @@ void CMakePreloadCacheKitConfigWidget::makeReadOnly() void CMakePreloadCacheKitConfigWidget::refresh() { if (!m_ignoreChange) - m_lineEdit->setText(m_kit->value(CMakePreloadCacheKitInformation::id()).toString()); + m_lineEdit->setText(CMakePreloadCacheKitInformation::preloadCacheFile(m_kit)); } void CMakePreloadCacheKitConfigWidget::preloadFileWasChanged(const QString &text) diff --git a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.cpp index 4cb31191b37..6267eff9b08 100644 --- a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.cpp @@ -78,8 +78,7 @@ void CMakePreloadCacheKitInformation::fix(Kit *k) KitInformation::ItemList CMakePreloadCacheKitInformation::toUserOutput(const Kit *k) const { - return ItemList() - << qMakePair(tr("CMake Preload"), k->value(id()).toString()); + return ItemList() << qMakePair(tr("CMake Preload"), k->value(id()).toString()); } KitConfigWidget *CMakePreloadCacheKitInformation::createConfigWidget(Kit *k) const @@ -87,4 +86,18 @@ KitConfigWidget *CMakePreloadCacheKitInformation::createConfigWidget(Kit *k) con return new Internal::CMakePreloadCacheKitConfigWidget(k, this); } +void CMakePreloadCacheKitInformation::setPreloadCacheFile(Kit *k, const QString &preload) +{ + if (!k) + return; + k->setValue(CMakePreloadCacheKitInformation::id(), preload); +} + +QString CMakePreloadCacheKitInformation::preloadCacheFile(const Kit *k) +{ + if (!k) + return QString(); + return k->value(CMakePreloadCacheKitInformation::id()).toString(); +} + } // namespace CMakeProjectManager diff --git a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.h b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.h index 1a6a97990c7..5f653a2a738 100644 --- a/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.h +++ b/src/plugins/cmakeprojectmanager/cmakepreloadcachekitinformation.h @@ -49,8 +49,11 @@ public: QList validate(const ProjectExplorer::Kit *k) const override; void setup(ProjectExplorer::Kit *k) override; void fix(ProjectExplorer::Kit *k) override; - virtual ItemList toUserOutput(const ProjectExplorer::Kit *k) const override; - virtual ProjectExplorer::KitConfigWidget *createConfigWidget(ProjectExplorer::Kit *k) const override; + ItemList toUserOutput(const ProjectExplorer::Kit *k) const override; + ProjectExplorer::KitConfigWidget *createConfigWidget(ProjectExplorer::Kit *k) const override; + + static void setPreloadCacheFile(ProjectExplorer::Kit *k, const QString &preload); + static QString preloadCacheFile(const ProjectExplorer::Kit *k); }; } // namespace CMakeProjectManager diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 5510968bf9c..f624b46383b 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -160,7 +160,8 @@ void CMakeManager::createXmlFile(Utils::QtcProcess *proc, const QString &executa Utils::QtcProcess::addArg(&args, srcdir); Utils::QtcProcess::addArgs(&args, arguments); Utils::QtcProcess::addArg(&args, generator); - Utils::QtcProcess::addArg(&args, preloadCache); + if (!preloadCache.isEmpty()) + Utils::QtcProcess::addArg(&args, preloadCache); proc->setCommand(executable, args); proc->start(); } diff --git a/src/plugins/cmakeprojectmanager/generatorinfo.cpp b/src/plugins/cmakeprojectmanager/generatorinfo.cpp index 828c13821df..84b7e3f92d1 100644 --- a/src/plugins/cmakeprojectmanager/generatorinfo.cpp +++ b/src/plugins/cmakeprojectmanager/generatorinfo.cpp @@ -94,15 +94,10 @@ QByteArray GeneratorInfo::generatorArgument() const return QByteArray("-GCodeBlocks - ") + tmp; } -QByteArray GeneratorInfo::preLoadScriptFileArgument() const +QString GeneratorInfo::preLoadCacheFileArgument() const { - if (!m_kit) - return QByteArray(); - - QByteArray tmp = m_kit->value(CMakePreloadCacheKitInformation::id()).toByteArray(); - if (tmp.isEmpty()) - return tmp; - return QByteArray("-C") + tmp; + const QString tmp = CMakePreloadCacheKitInformation::preloadCacheFile(m_kit); + return tmp.isEmpty() ? QString() : QString::fromLatin1("-C") + tmp; } QString GeneratorInfo::displayName() const diff --git a/src/plugins/cmakeprojectmanager/generatorinfo.h b/src/plugins/cmakeprojectmanager/generatorinfo.h index 5b24fbfc39d..bd79cdecb18 100644 --- a/src/plugins/cmakeprojectmanager/generatorinfo.h +++ b/src/plugins/cmakeprojectmanager/generatorinfo.h @@ -56,7 +56,7 @@ public: QString displayName() const; QByteArray generatorArgument() const; QByteArray generator() const; - QByteArray preLoadScriptFileArgument() const; + QString preLoadCacheFileArgument() const; private: ProjectExplorer::Kit *m_kit;