From b34a8fcb8ef434183c1a5ab26b46165a854822a9 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 17 Nov 2023 22:44:45 -0500 Subject: cmGeneratorTarget: track object libraries using a `set` This avoids having to do manual "is already present" checks. The order the targets are processed does not need to be preserved because the resulting `languages` result is already a `set`. --- Source/cmGeneratorTarget.cxx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 930922c..372caab 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -8044,27 +8044,21 @@ void cmGeneratorTarget::GetLanguages(std::set& languages, } } - std::vector objectLibraries; - std::vector externalObjects; + std::set objectLibraries; if (!this->GlobalGenerator->GetConfigureDoneCMP0026()) { std::vector objectTargets; this->GetObjectLibrariesCMP0026(objectTargets); - objectLibraries.reserve(objectTargets.size()); for (cmGeneratorTarget* gt : objectTargets) { - objectLibraries.push_back(gt); + objectLibraries.insert(gt); } } else { + std::vector externalObjects; this->GetExternalObjects(externalObjects, config); for (cmSourceFile const* extObj : externalObjects) { std::string objLib = extObj->GetObjectLibrary(); if (cmGeneratorTarget* tgt = this->LocalGenerator->FindGeneratorTargetToUse(objLib)) { - auto const objLibIt = - std::find_if(objectLibraries.cbegin(), objectLibraries.cend(), - [tgt](cmGeneratorTarget* t) { return t == tgt; }); - if (objectLibraries.cend() == objLibIt) { - objectLibraries.push_back(tgt); - } + objectLibraries.insert(tgt); } } } -- cgit v0.12