diff --git a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp index 71f8c58054e..2f2d40b91d0 100644 --- a/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketoolsettingsaccessor.cpp @@ -125,14 +125,12 @@ mergeTools(std::vector> &sdkTools, std::vector> &userTools, std::vector> &autoDetectedTools) { - std::vector> result; + std::vector> result = std::move(sdkTools); while (userTools.size() > 0) { std::unique_ptr userTool = std::move(userTools[0]); userTools.erase(std::begin(userTools)); - if (auto sdkTool = Utils::take(sdkTools, Utils::equal(&CMakeTool::id, userTool->id()))) { - result.emplace_back(std::move(sdkTool.value())); - } else { + if (!Utils::contains(result, Utils::equal(&CMakeTool::id, userTool->id()))) { if (userTool->isAutoDetected() && !Utils::contains(autoDetectedTools, Utils::equal(&CMakeTool::cmakeExecutable, userTool->cmakeExecutable()))) {