summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2020-03-03 12:23:04 +0100
committerTobias Hunger <tobias.hunger@qt.io>2020-03-05 08:31:46 +0000
commit8e47fc18a686525ac77bc565693b87b2e37e9735 (patch)
tree9d6dbde859e29fc4cf97c0c525d9c7795b410de8
parent4165d1605380e9ad15f3ddbf7c96151fd174ff34 (diff)
downloadqt-creator-8e47fc18a686525ac77bc565693b87b2e37e9735.tar.gz
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>
-rw-r--r--src/plugins/cmakeprojectmanager/cmakekitinformation.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
index 26e4bffdeb..fec65537ab 100644
--- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
@@ -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();
}