forked from qt-creator/qt-creator
CMakeProjectManager: Add ability to specify path to ninja
Task-number: QTBUG-79885 Change-Id: If0c5efc534e2fc6f0041b9407e2ae24ed671ac8a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include "cmakebuildconfiguration.h"
|
#include "cmakebuildconfiguration.h"
|
||||||
#include "cmakekitinformation.h"
|
#include "cmakekitinformation.h"
|
||||||
|
#include "cmakeprojectplugin.h"
|
||||||
|
#include "cmakespecificsettings.h"
|
||||||
#include "cmaketoolmanager.h"
|
#include "cmaketoolmanager.h"
|
||||||
|
|
||||||
#include <projectexplorer/kit.h>
|
#include <projectexplorer/kit.h>
|
||||||
@@ -61,6 +63,10 @@ BuildDirParameters::BuildDirParameters(CMakeBuildConfiguration *bc)
|
|||||||
if (Utils::HostOsInfo::isAnyUnixHost())
|
if (Utils::HostOsInfo::isAnyUnixHost())
|
||||||
environment.set("ICECC", "no");
|
environment.set("ICECC", "no");
|
||||||
|
|
||||||
|
CMakeSpecificSettings *settings = CMakeProjectPlugin::projectTypeSpecificSettings();
|
||||||
|
if (!settings->ninjaPath().isEmpty())
|
||||||
|
environment.appendOrSetPath(settings->ninjaPath().toString());
|
||||||
|
|
||||||
cmakeToolId = CMakeKitAspect::cmakeToolId(k);
|
cmakeToolId = CMakeKitAspect::cmakeToolId(k);
|
||||||
|
|
||||||
auto tc = ToolChainKitAspect::toolChain(k, Constants::CXX_LANGUAGE_ID);
|
auto tc = ToolChainKitAspect::toolChain(k, Constants::CXX_LANGUAGE_ID);
|
||||||
|
@@ -31,20 +31,24 @@ namespace Internal {
|
|||||||
namespace {
|
namespace {
|
||||||
static const char SETTINGS_KEY[] = "CMakeSpecificSettings";
|
static const char SETTINGS_KEY[] = "CMakeSpecificSettings";
|
||||||
static const char AFTER_ADD_FILE_ACTION_KEY[] = "ProjectPopupSetting";
|
static const char AFTER_ADD_FILE_ACTION_KEY[] = "ProjectPopupSetting";
|
||||||
|
static const char NINJA_PATH[] = "NinjaPath";
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeSpecificSettings::fromSettings(QSettings *settings)
|
void CMakeSpecificSettings::fromSettings(QSettings *settings)
|
||||||
{
|
{
|
||||||
const QString rootKey = QString(SETTINGS_KEY) + '/';
|
const QString rootKey = QString(SETTINGS_KEY) + '/';
|
||||||
afterAddFileToProjectSetting = static_cast<AfterAddFileAction>(
|
m_afterAddFileToProjectSetting = static_cast<AfterAddFileAction>(
|
||||||
settings->value(rootKey + AFTER_ADD_FILE_ACTION_KEY,
|
settings->value(rootKey + AFTER_ADD_FILE_ACTION_KEY,
|
||||||
static_cast<int>(AfterAddFileAction::ASK_USER)).toInt());
|
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
|
void CMakeSpecificSettings::toSettings(QSettings *settings) const
|
||||||
{
|
{
|
||||||
settings->beginGroup(QString(SETTINGS_KEY));
|
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();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include <utils/fileutils.h>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
namespace CMakeProjectManager {
|
namespace CMakeProjectManager {
|
||||||
@@ -42,11 +43,14 @@ public:
|
|||||||
void fromSettings(QSettings *settings);
|
void fromSettings(QSettings *settings);
|
||||||
void toSettings(QSettings *settings) const;
|
void toSettings(QSettings *settings) const;
|
||||||
|
|
||||||
void setAfterAddFileSetting(AfterAddFileAction settings) { afterAddFileToProjectSetting = settings; }
|
void setAfterAddFileSetting(AfterAddFileAction settings) { m_afterAddFileToProjectSetting = settings; }
|
||||||
AfterAddFileAction afterAddFileSetting() const { return afterAddFileToProjectSetting; }
|
AfterAddFileAction afterAddFileSetting() const { return m_afterAddFileToProjectSetting; }
|
||||||
|
|
||||||
|
Utils::FilePath ninjaPath() const { return m_ninjaPath; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AfterAddFileAction afterAddFileToProjectSetting;
|
AfterAddFileAction m_afterAddFileToProjectSetting;
|
||||||
|
Utils::FilePath m_ninjaPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user