From 76b462eacba7fd66608a0956dbf89dab4457b8ba Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 14 Jun 2016 17:16:57 +0200 Subject: [PATCH] cmExtraCodeBlocksGenerator: Do not shuffle include directories Report include directories in a sensible order. Do not shuffle them when trying to make them unique. --- Source/cmExtraCodeBlocksGenerator.cxx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index 2070b1f7f..589bf53b0 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -578,19 +578,20 @@ void cmExtraCodeBlocksGenerator::AppendTarget( } // the include directories for this target - std::set uniqIncludeDirs; + std::vector allIncludeDirs; std::vector includes; lg->GetIncludeDirectories(includes, target, "C", buildType); - uniqIncludeDirs.insert(includes.begin(), includes.end()); + allIncludeDirs.insert(allIncludeDirs.end(), includes.begin(), + includes.end()); std::string systemIncludeDirs = makefile->GetSafeDefinition( "CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS"); if (!systemIncludeDirs.empty()) { std::vector dirs; cmSystemTools::ExpandListArgument(systemIncludeDirs, dirs); - uniqIncludeDirs.insert(dirs.begin(), dirs.end()); + allIncludeDirs.insert(allIncludeDirs.end(), dirs.begin(), dirs.end()); } systemIncludeDirs = makefile->GetSafeDefinition( @@ -598,13 +599,16 @@ void cmExtraCodeBlocksGenerator::AppendTarget( if (!systemIncludeDirs.empty()) { std::vector dirs; cmSystemTools::ExpandListArgument(systemIncludeDirs, dirs); - uniqIncludeDirs.insert(dirs.begin(), dirs.end()); + allIncludeDirs.insert(allIncludeDirs.end(), dirs.begin(), dirs.end()); } - for (std::set::const_iterator dirIt = uniqIncludeDirs.begin(); - dirIt != uniqIncludeDirs.end(); ++dirIt) { + std::vector::const_iterator end = + cmRemoveDuplicates(allIncludeDirs); + + for (std::vector::const_iterator i = allIncludeDirs.begin(); + i != end; ++i) { xml.StartElement("Add"); - xml.Attribute("directory", *dirIt); + xml.Attribute("directory", *i); xml.EndElement(); }