From e3a0fe71e4ac34f805a03ccd81e09b4e3fb35a78 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 17 Apr 2020 09:06:28 +0200 Subject: [PATCH] CMake: fixup env if jom is missing Add the applitcation dir path to the path environment variable if jom cannot be found there. This should fix the cannot find jom error for binary releases since we ship jom with qc. Fixes: QTCREATORBUG-22645 Change-Id: Ia3b55f794d3ac4b5fd6d2e85cf19f00bd8cddd2c Reviewed-by: Tobias Hunger --- .../cmakeprojectmanager/cmakekitinformation.cpp | 10 ++++++++++ src/plugins/cmakeprojectmanager/cmakekitinformation.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index 4a998fb468a..0e0d47cb5f0 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -787,6 +787,16 @@ KitAspectWidget *CMakeGeneratorKitAspect::createConfigWidget(Kit *k) const return new CMakeGeneratorKitAspectWidget(k, this); } +void CMakeGeneratorKitAspect::addToEnvironment(const Kit *k, Utils::Environment &env) const +{ + GeneratorInfo info = generatorInfo(k); + if (info.generator == "NMake Makefiles JOM") { + if (env.searchInPath("jom.exe").exists()) + return; + env.appendOrSetPath(QCoreApplication::applicationDirPath()); + } +} + // -------------------------------------------------------------------- // CMakeConfigurationKitAspect: // -------------------------------------------------------------------- diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.h b/src/plugins/cmakeprojectmanager/cmakekitinformation.h index f4901721d6c..f2579f3282c 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.h +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.h @@ -83,6 +83,7 @@ public: void upgrade(ProjectExplorer::Kit *k) final; ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; ProjectExplorer::KitAspectWidget *createConfigWidget(ProjectExplorer::Kit *k) const final; + void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const final; private: QVariant defaultValue(const ProjectExplorer::Kit *k) const;