summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-08-30 14:43:25 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-08-30 14:43:30 (GMT)
commit34601c3ea0b2839939b5bc8535082a15583f766e (patch)
treec891564bd409a69c14c807661037f9bf127e14f3 /Source
parent0ea6aee8905af1a8d3ee4d7af88c4b3a40aafe10 (diff)
parent053d314140e76a632e2b8a2b134afdb8697fba56 (diff)
downloadCMake-34601c3ea0b2839939b5bc8535082a15583f766e.zip
CMake-34601c3ea0b2839939b5bc8535082a15583f766e.tar.gz
CMake-34601c3ea0b2839939b5bc8535082a15583f766e.tar.bz2
Merge topic 'codeblocks-dedup'
053d3141 CodeBlocks: Avoid listing files multiple times Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1160
Diffstat (limited to 'Source')
-rw-r--r--Source/cmExtraCodeBlocksGenerator.cxx13
1 files changed, 7 insertions, 6 deletions
diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx
index 2054605..547fc99 100644
--- a/Source/cmExtraCodeBlocksGenerator.cxx
+++ b/Source/cmExtraCodeBlocksGenerator.cxx
@@ -4,6 +4,7 @@
#include <map>
#include <ostream>
+#include <set>
#include <string.h>
#include <utility>
@@ -95,7 +96,7 @@ struct Tree
{
std::string path; // only one component of the path
std::vector<Tree> folders;
- std::vector<std::string> files;
+ std::set<std::string> files;
void InsertPath(const std::vector<std::string>& splitted,
std::vector<std::string>::size_type start,
const std::string& fileName);
@@ -112,7 +113,7 @@ void Tree::InsertPath(const std::vector<std::string>& splitted,
const std::string& fileName)
{
if (start == splitted.size()) {
- files.push_back(fileName);
+ files.insert(fileName);
return;
}
for (std::vector<Tree>::iterator it = folders.begin(); it != folders.end();
@@ -123,7 +124,7 @@ void Tree::InsertPath(const std::vector<std::string>& splitted,
return;
}
// last part of splitted
- it->files.push_back(fileName);
+ it->files.insert(fileName);
return;
}
}
@@ -136,7 +137,7 @@ void Tree::InsertPath(const std::vector<std::string>& splitted,
return;
}
// last part of splitted
- newFolder.files.push_back(fileName);
+ newFolder.files.insert(fileName);
folders.push_back(newFolder);
}
@@ -164,7 +165,7 @@ void Tree::BuildVirtualFolderImpl(std::string& virtualFolders,
void Tree::BuildUnit(cmXMLWriter& xml, const std::string& fsPath) const
{
- for (std::vector<std::string>::const_iterator it = files.begin();
+ for (std::set<std::string>::const_iterator it = files.begin();
it != files.end(); ++it) {
xml.StartElement("Unit");
xml.Attribute("filename", fsPath + *it);
@@ -185,7 +186,7 @@ void Tree::BuildUnitImpl(cmXMLWriter& xml,
const std::string& virtualFolderPath,
const std::string& fsPath) const
{
- for (std::vector<std::string>::const_iterator it = files.begin();
+ for (std::set<std::string>::const_iterator it = files.begin();
it != files.end(); ++it) {
xml.StartElement("Unit");
xml.Attribute("filename", fsPath + path + "/" + *it);