CMake: add Ninja support

The cmake wizard proposes also ninja if ninja support is available

Ninja must be in PATH, but it is only called once, so it doesn't hurt.

Task-number: QTCREATORBUG-7720
Reviewed-by: Daniel Teske <daniel.teske@digia.com>

Change-Id: If3c9c7ae55e6990fa16b031fc2998a8d8d9ed17a
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Yuchen Deng <loaden@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Peter Kümmel
2012-10-02 17:46:12 +02:00
committed by Daniel Teske
parent bec84f09aa
commit 264313ec90
9 changed files with 212 additions and 38 deletions

View File

@@ -55,7 +55,7 @@ const char BUILD_DIRECTORY_KEY[] = "CMakeProjectManager.CMakeBuildConfiguration.
} // namespace
CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent) :
BuildConfiguration(parent, Core::Id(CMAKE_BC_ID))
BuildConfiguration(parent, Core::Id(CMAKE_BC_ID)), m_useNinja(false)
{
m_buildDirectory = static_cast<CMakeProject *>(parent->project())->defaultBuildDirectory();
}
@@ -64,7 +64,8 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent
CMakeBuildConfiguration *source) :
BuildConfiguration(parent, source),
m_buildDirectory(source->m_buildDirectory),
m_msvcVersion(source->m_msvcVersion)
m_msvcVersion(source->m_msvcVersion),
m_useNinja(false)
{
Q_ASSERT(parent);
cloneSteps(source);
@@ -87,6 +88,19 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
return true;
}
bool CMakeBuildConfiguration::useNinja() const
{
return m_useNinja;
}
void CMakeBuildConfiguration::setUseNinja(bool useNninja)
{
if (m_useNinja != useNninja) {
m_useNinja = useNninja;
emit useNinjaChanged(m_useNinja);
}
}
CMakeBuildConfiguration::~CMakeBuildConfiguration()
{ }
@@ -202,7 +216,7 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer:
CMakeOpenProjectWizard copw(project->projectManager(),
project->projectDirectory(),
bc->buildDirectory(),
bc->environment());
bc);
if (copw.exec() != QDialog::Accepted) {
delete bc;
return 0;
@@ -284,3 +298,4 @@ ProjectExplorer::BuildConfiguration::BuildType CMakeBuildConfiguration::buildTyp
return Unknown;
}