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 "cmakeprojectconstants.h"
|
||||
#include "cmaketoolmanager.h"
|
||||
#include "cmakeprojectplugin.h"
|
||||
#include "cmakespecificsettings.h"
|
||||
#include "cmaketool.h"
|
||||
#include "cmaketoolmanager.h"
|
||||
|
||||
#include <app/app_version.h>
|
||||
#include <coreplugin/icore.h>
|
||||
@@ -613,10 +615,19 @@ QVariant CMakeGeneratorKitAspect::defaultValue(const Kit *k) const
|
||||
return g.matches("Ninja", extraGenerator);
|
||||
});
|
||||
if (it != known.constEnd()) {
|
||||
Utils::Environment env = Utils::Environment::systemEnvironment();
|
||||
k->addToEnvironment(env);
|
||||
const Utils::FilePath ninjaExec = env.searchInPath(QLatin1String("ninja"));
|
||||
if (!ninjaExec.isEmpty())
|
||||
const bool hasNinja = [k]() {
|
||||
Internal::CMakeSpecificSettings *settings
|
||||
= Internal::CMakeProjectPlugin::projectTypeSpecificSettings();
|
||||
|
||||
if (settings->ninjaPath().isEmpty()) {
|
||||
Utils::Environment env = Utils::Environment::systemEnvironment();
|
||||
k->addToEnvironment(env);
|
||||
return !env.searchInPath("ninja").isEmpty();
|
||||
}
|
||||
return true;
|
||||
}();
|
||||
|
||||
if (hasNinja)
|
||||
return GeneratorInfo({QString("Ninja"), extraGenerator, QString(), QString()}).toVariant();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user