summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2019-11-18 15:24:52 +0100
committerCristian Adam <cristian.adam@qt.io>2019-11-20 11:37:00 +0000
commitda25ac632263d16b1ebb9cd3fee195f0dbb8d72d (patch)
tree3f6d627cebe4cc7e263138f5331676c46b851248
parente8fe082bf95005e3d5b79d433c36df88b32433f0 (diff)
downloadqt-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>
-rw-r--r--src/plugins/cmakeprojectmanager/builddirparameters.cpp6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakespecificsettings.cpp8
-rw-r--r--src/plugins/cmakeprojectmanager/cmakespecificsettings.h10
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;
};
}