diff options
author | Cristian Adam <cristian.adam@qt.io> | 2019-11-18 15:24:52 +0100 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2019-11-20 11:37:00 +0000 |
commit | da25ac632263d16b1ebb9cd3fee195f0dbb8d72d (patch) | |
tree | 3f6d627cebe4cc7e263138f5331676c46b851248 | |
parent | e8fe082bf95005e3d5b79d433c36df88b32433f0 (diff) | |
download | qt-creator-da25ac632263d16b1ebb9cd3fee195f0dbb8d72d.tar.gz |
CMakeProjectManager: Add ability to specify path to ninja
Task-number: QTBUG-79885
Change-Id: If0c5efc534e2fc6f0041b9407e2ae24ed671ac8a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
3 files changed, 19 insertions, 5 deletions
diff --git a/src/plugins/cmakeprojectmanager/builddirparameters.cpp b/src/plugins/cmakeprojectmanager/builddirparameters.cpp index 160b50bef1..7150d8645c 100644 --- a/src/plugins/cmakeprojectmanager/builddirparameters.cpp +++ b/src/plugins/cmakeprojectmanager/builddirparameters.cpp @@ -27,6 +27,8 @@ #include "cmakebuildconfiguration.h" #include "cmakekitinformation.h" +#include "cmakeprojectplugin.h" +#include "cmakespecificsettings.h" #include "cmaketoolmanager.h" #include <projectexplorer/kit.h> @@ -61,6 +63,10 @@ BuildDirParameters::BuildDirParameters(CMakeBuildConfiguration *bc) if (Utils::HostOsInfo::isAnyUnixHost()) environment.set("ICECC", "no"); + CMakeSpecificSettings *settings = CMakeProjectPlugin::projectTypeSpecificSettings(); + if (!settings->ninjaPath().isEmpty()) + environment.appendOrSetPath(settings->ninjaPath().toString()); + cmakeToolId = CMakeKitAspect::cmakeToolId(k); auto tc = ToolChainKitAspect::toolChain(k, Constants::CXX_LANGUAGE_ID); diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp index 53f69dac90..4976154566 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp @@ -31,20 +31,24 @@ namespace Internal { namespace { static const char SETTINGS_KEY[] = "CMakeSpecificSettings"; static const char AFTER_ADD_FILE_ACTION_KEY[] = "ProjectPopupSetting"; +static const char NINJA_PATH[] = "NinjaPath"; } void CMakeSpecificSettings::fromSettings(QSettings *settings) { const QString rootKey = QString(SETTINGS_KEY) + '/'; - afterAddFileToProjectSetting = static_cast<AfterAddFileAction>( + m_afterAddFileToProjectSetting = static_cast<AfterAddFileAction>( settings->value(rootKey + AFTER_ADD_FILE_ACTION_KEY, static_cast<int>(AfterAddFileAction::ASK_USER)).toInt()); + + m_ninjaPath = Utils::FilePath::fromUserInput( + settings->value(rootKey + NINJA_PATH, QString()).toString()); } void CMakeSpecificSettings::toSettings(QSettings *settings) const { settings->beginGroup(QString(SETTINGS_KEY)); - settings->setValue(QString(AFTER_ADD_FILE_ACTION_KEY), static_cast<int>(afterAddFileToProjectSetting)); + settings->setValue(QString(AFTER_ADD_FILE_ACTION_KEY), static_cast<int>(m_afterAddFileToProjectSetting)); settings->endGroup(); } } diff --git a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h index fe4d222593..ca94bc2c73 100644 --- a/src/plugins/cmakeprojectmanager/cmakespecificsettings.h +++ b/src/plugins/cmakeprojectmanager/cmakespecificsettings.h @@ -24,6 +24,7 @@ ****************************************************************************/ #pragma once +#include <utils/fileutils.h> #include <QSettings> namespace CMakeProjectManager { @@ -42,11 +43,14 @@ public: void fromSettings(QSettings *settings); void toSettings(QSettings *settings) const; - void setAfterAddFileSetting(AfterAddFileAction settings) { afterAddFileToProjectSetting = settings; } - AfterAddFileAction afterAddFileSetting() const { return afterAddFileToProjectSetting; } + void setAfterAddFileSetting(AfterAddFileAction settings) { m_afterAddFileToProjectSetting = settings; } + AfterAddFileAction afterAddFileSetting() const { return m_afterAddFileToProjectSetting; } + + Utils::FilePath ninjaPath() const { return m_ninjaPath; } private: - AfterAddFileAction afterAddFileToProjectSetting; + AfterAddFileAction m_afterAddFileToProjectSetting; + Utils::FilePath m_ninjaPath; }; } |