forked from qt-creator/qt-creator
CMake: Pick Ninja generator when installer added ninja
Pick the Ninja CMake generator when the installer has installed the ninja binary. Task-number: QTCREATORBUG-23650 Change-Id: I966b369513e7d489161b210819832f1bbbb5a0fc Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -25,8 +25,10 @@
|
|||||||
|
|
||||||
#include "cmakekitinformation.h"
|
#include "cmakekitinformation.h"
|
||||||
#include "cmakeprojectconstants.h"
|
#include "cmakeprojectconstants.h"
|
||||||
#include "cmaketoolmanager.h"
|
#include "cmakeprojectplugin.h"
|
||||||
|
#include "cmakespecificsettings.h"
|
||||||
#include "cmaketool.h"
|
#include "cmaketool.h"
|
||||||
|
#include "cmaketoolmanager.h"
|
||||||
|
|
||||||
#include <app/app_version.h>
|
#include <app/app_version.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
@@ -613,10 +615,19 @@ QVariant CMakeGeneratorKitAspect::defaultValue(const Kit *k) const
|
|||||||
return g.matches("Ninja", extraGenerator);
|
return g.matches("Ninja", extraGenerator);
|
||||||
});
|
});
|
||||||
if (it != known.constEnd()) {
|
if (it != known.constEnd()) {
|
||||||
|
const bool hasNinja = [k]() {
|
||||||
|
Internal::CMakeSpecificSettings *settings
|
||||||
|
= Internal::CMakeProjectPlugin::projectTypeSpecificSettings();
|
||||||
|
|
||||||
|
if (settings->ninjaPath().isEmpty()) {
|
||||||
Utils::Environment env = Utils::Environment::systemEnvironment();
|
Utils::Environment env = Utils::Environment::systemEnvironment();
|
||||||
k->addToEnvironment(env);
|
k->addToEnvironment(env);
|
||||||
const Utils::FilePath ninjaExec = env.searchInPath(QLatin1String("ninja"));
|
return !env.searchInPath("ninja").isEmpty();
|
||||||
if (!ninjaExec.isEmpty())
|
}
|
||||||
|
return true;
|
||||||
|
}();
|
||||||
|
|
||||||
|
if (hasNinja)
|
||||||
return GeneratorInfo({QString("Ninja"), extraGenerator, QString(), QString()}).toVariant();
|
return GeneratorInfo({QString("Ninja"), extraGenerator, QString(), QString()}).toVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user