From e08ba229ee3107bcb814ca45bc9c72a48abf1ba2 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Fri, 14 Apr 2023 16:48:16 +0200 Subject: CMake code rely on cmList class for CMake lists management (part. 1) --- Source/cmGeneratorTarget.cxx | 61 ++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 30 deletions(-) (limited to 'Source/cmGeneratorTarget.cxx') diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 90cddb56b2..db3d7e6e21 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -36,6 +36,7 @@ #include "cmGeneratorExpressionDAGChecker.h" #include "cmGeneratorExpressionNode.h" #include "cmGlobalGenerator.h" +#include "cmList.h" #include "cmLocalGenerator.h" #include "cmMakefile.h" #include "cmMessageType.h" @@ -1634,20 +1635,20 @@ void AddFileSetEntries(cmGeneratorTarget const* headTarget, EvaluatedTargetPropertyEntries& entries) { for (auto const& entry : headTarget->Target->GetHeaderSetsEntries()) { - for (auto const& name : cmExpandedList(entry.Value)) { + for (auto const& name : cmList{ entry.Value }) { auto const* headerSet = headTarget->Target->GetFileSet(name); addFileSetEntry(headTarget, config, dagChecker, headerSet, entries); } } for (auto const& entry : headTarget->Target->GetCxxModuleSetsEntries()) { - for (auto const& name : cmExpandedList(entry.Value)) { + for (auto const& name : cmList{ entry.Value }) { auto const* cxxModuleSet = headTarget->Target->GetFileSet(name); addFileSetEntry(headTarget, config, dagChecker, cxxModuleSet, entries); } } for (auto const& entry : headTarget->Target->GetCxxModuleHeaderSetsEntries()) { - for (auto const& name : cmExpandedList(entry.Value)) { + for (auto const& name : cmList{ entry.Value }) { auto const* cxxModuleHeaderSet = headTarget->Target->GetFileSet(name); addFileSetEntry(headTarget, config, dagChecker, cxxModuleHeaderSet, entries); @@ -1740,8 +1741,8 @@ std::vector> cmGeneratorTarget::GetSourceFilePaths( cmBTStringRange sourceEntries = this->Target->GetSourceEntries(); for (auto const& entry : sourceEntries) { - std::vector items = cmExpandedList(entry.Value); - for (std::string const& item : items) { + cmList items{ entry.Value }; + for (auto const& item : items) { if (cmHasLiteralPrefix(item, "$') { continue; @@ -3105,8 +3106,8 @@ void cmTargetTraceDependencies::Trace() // Queue dependencies added explicitly by the user. if (cmValue additionalDeps = sf->GetProperty("OBJECT_DEPENDS")) { - std::vector objDeps = cmExpandedList(*additionalDeps); - for (std::string& objDep : objDeps) { + cmList objDeps{ *additionalDeps }; + for (auto& objDep : objDeps) { if (cmSystemTools::FileIsFullPath(objDep)) { objDep = cmSystemTools::CollapseFullPath(objDep); } @@ -4606,7 +4607,7 @@ std::vector> cmGeneratorTarget::GetLinkOptions( // wrap host link options const std::string wrapper(this->Makefile->GetSafeDefinition( "CMAKE_" + language + "_DEVICE_COMPILER_WRAPPER_FLAG")); - std::vector wrapperFlag = cmExpandedList(wrapper); + cmList wrapperFlag{ wrapper }; const std::string wrapperSep(this->Makefile->GetSafeDefinition( "CMAKE_" + language + "_DEVICE_COMPILER_WRAPPER_FLAG_SEP")); bool concatFlagAndArgs = true; @@ -4665,7 +4666,7 @@ std::vector>& cmGeneratorTarget::ResolveLinkerWrapper( "CMAKE_" + language + (this->IsDeviceLink() ? "_DEVICE_LINKER_WRAPPER_FLAG" : "_LINKER_WRAPPER_FLAG"))); - std::vector wrapperFlag = cmExpandedList(wrapper); + cmList wrapperFlag{ wrapper }; const std::string wrapperSep(this->Makefile->GetSafeDefinition( "CMAKE_" + language + (this->IsDeviceLink() ? "_DEVICE_LINKER_WRAPPER_FLAG_SEP" @@ -4911,7 +4912,7 @@ std::vector> cmGeneratorTarget::GetLinkDepends( EvaluatedTargetPropertyEntries entries; if (cmValue linkDepends = this->GetProperty("LINK_DEPENDS")) { - std::vector depends = cmExpandedList(*linkDepends); + cmList depends{ *linkDepends }; for (const auto& depend : depends) { std::unique_ptr entry = CreateTargetPropertyEntry( *this->LocalGenerator->GetCMakeInstance(), depend); @@ -5590,8 +5591,8 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const // Process public headers to mark the source files. if (cmValue files = this->GetProperty("PUBLIC_HEADER")) { - std::vector relFiles = cmExpandedList(*files); - for (std::string const& relFile : relFiles) { + cmList relFiles{ *files }; + for (auto const& relFile : relFiles) { if (cmSourceFile* sf = this->Makefile->GetSource(relFile)) { SourceFileFlags& flags = this->SourceFlagsMap[sf]; flags.MacFolder = "Headers"; @@ -5603,8 +5604,8 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const // Process private headers after public headers so that they take // precedence if a file is listed in both. if (cmValue files = this->GetProperty("PRIVATE_HEADER")) { - std::vector relFiles = cmExpandedList(*files); - for (std::string const& relFile : relFiles) { + cmList relFiles{ *files }; + for (auto const& relFile : relFiles) { if (cmSourceFile* sf = this->Makefile->GetSource(relFile)) { SourceFileFlags& flags = this->SourceFlagsMap[sf]; flags.MacFolder = "PrivateHeaders"; @@ -5615,8 +5616,8 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const // Mark sources listed as resources. if (cmValue files = this->GetProperty("RESOURCE")) { - std::vector relFiles = cmExpandedList(*files); - for (std::string const& relFile : relFiles) { + cmList relFiles{ *files }; + for (auto const& relFile : relFiles) { if (cmSourceFile* sf = this->Makefile->GetSource(relFile)) { SourceFileFlags& flags = this->SourceFlagsMap[sf]; flags.MacFolder = ""; @@ -5757,7 +5758,7 @@ void checkPropertyConsistency(cmGeneratorTarget const* depender, return; } - std::vector props = cmExpandedList(*prop); + cmList props{ *prop }; std::string pdir = cmStrCat(cmSystemTools::GetCMakeRoot(), "/Help/prop_tgt/"); @@ -6799,10 +6800,10 @@ void cmGeneratorTarget::ExpandLinkItems( entry.Backtrace); std::unique_ptr cge = ge.Parse(entry.Value); cge->SetEvaluateForBuildsystem(true); - std::vector libs = cmExpandedList( - cge->Evaluate(this->LocalGenerator, config, headTarget, &dagChecker, - this, headTarget->LinkerLanguage)); - for (std::string const& lib : libs) { + cmList libs{ cge->Evaluate(this->LocalGenerator, config, headTarget, + &dagChecker, this, + headTarget->LinkerLanguage) }; + for (auto const& lib : libs) { if (cm::optional maybeItem = this->LookupLinkItem( lib, cge->GetBacktrace(), &scope, field == LinkInterfaceField::Libraries ? LookupSelf::No @@ -7466,10 +7467,10 @@ std::vector computeImplicitLanguageTargets( currentTarget->GetRuntimeLinkLibrary(lang, config); if (cmValue runtimeLinkOptions = currentTarget->Makefile->GetDefinition( "CMAKE_" + lang + "_RUNTIME_LIBRARIES_" + runtimeLibrary)) { - std::vector libsVec = cmExpandedList(*runtimeLinkOptions); - result.reserve(libsVec.size()); + cmList libsList{ *runtimeLinkOptions }; + result.reserve(libsList.size()); - for (std::string const& i : libsVec) { + for (auto const& i : libsList) { cmGeneratorTarget::TargetOrString resolved = currentTarget->ResolveTargetReference(i, lg); if (resolved.Target) { @@ -7550,9 +7551,9 @@ const cmLinkInterface* cmGeneratorTarget::GetImportLinkInterface( this->ExpandLinkItems(info->LibrariesProp, cmMakeRange(info->Libraries), config, headTarget, interfaceFor, LinkInterfaceField::Libraries, iface); - std::vector deps = cmExpandedList(info->SharedDeps); + cmList deps{ info->SharedDeps }; LookupLinkItemScope scope{ this->LocalGenerator }; - for (std::string const& dep : deps) { + for (auto const& dep : deps) { if (cm::optional maybeItem = this->LookupLinkItem( dep, cmListFileBacktrace(), &scope, LookupSelf::No)) { iface.SharedDeps.emplace_back(std::move(*maybeItem)); @@ -7873,8 +7874,8 @@ void cmGeneratorTarget::GetObjectLibrariesCMP0026( // behavior of CMP0024 and CMP0026 only. cmBTStringRange rng = this->Target->GetSourceEntries(); for (auto const& entry : rng) { - std::vector files = cmExpandedList(entry.Value); - for (std::string const& li : files) { + cmList files{ entry.Value }; + for (auto const& li : files) { if (cmHasLiteralPrefix(li, "$') { std::string objLibName = li.substr(17, li.size() - 18); @@ -8636,7 +8637,7 @@ bool cmGeneratorTarget::AddHeaderSetVerification() const bool all = verifyValue.IsEmpty(); std::set verifySet; if (!all) { - auto verifyList = cmExpandedList(verifyValue); + cmList verifyList{ verifyValue }; verifySet.insert(verifyList.begin(), verifyList.end()); } @@ -8649,7 +8650,7 @@ bool cmGeneratorTarget::AddHeaderSetVerification() std::set fileSets; for (auto const& entry : interfaceFileSetEntries) { - for (auto const& name : cmExpandedList(entry.Value)) { + for (auto const& name : cmList{ entry.Value }) { if (all || verifySet.count(name)) { fileSets.insert(this->Target->GetFileSet(name)); verifySet.erase(name); -- cgit v1.2.1