summaryrefslogtreecommitdiffstats
path: root/Source/cmMakeDepend.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-10-15 08:27:42 (GMT)
committerBrad King <brad.king@kitware.com>2012-10-17 20:23:32 (GMT)
commit79edd00235091475d5b3f1305bcf991cad3e45f4 (patch)
treeb5fdf3e6f79f0ffe275b404a66c9780c6d2800a4 /Source/cmMakeDepend.cxx
parentf7ef32b00b8d4fe74bfdcee3e690309e9a89e251 (diff)
downloadCMake-79edd00235091475d5b3f1305bcf991cad3e45f4.zip
CMake-79edd00235091475d5b3f1305bcf991cad3e45f4.tar.gz
CMake-79edd00235091475d5b3f1305bcf991cad3e45f4.tar.bz2
GenEx: Fix reporting about not-found include directories and libraries.
This fixes a regression introduced in commit 290e92ad (Move GetIncludeDirectories to cmGeneratorTarget, 2012-09-16) which loops over cmGeneratorTargets before they get created, so the container is empty.
Diffstat (limited to 'Source/cmMakeDepend.cxx')
-rw-r--r--Source/cmMakeDepend.cxx19
1 files changed, 15 insertions, 4 deletions
diff --git a/Source/cmMakeDepend.cxx b/Source/cmMakeDepend.cxx
index 75a76a4..2ae35ef 100644
--- a/Source/cmMakeDepend.cxx
+++ b/Source/cmMakeDepend.cxx
@@ -11,6 +11,7 @@
============================================================================*/
#include "cmMakeDepend.h"
#include "cmSystemTools.h"
+#include "cmGeneratorExpression.h"
#include <cmsys/RegularExpression.hxx>
@@ -58,12 +59,22 @@ void cmMakeDepend::SetMakefile(cmMakefile* makefile)
// Now extract any include paths from the targets
std::set<std::string> uniqueIncludes;
std::vector<std::string> orderedAndUniqueIncludes;
- cmGeneratorTargetsType targets = this->Makefile->GetGeneratorTargets();
- for (cmGeneratorTargetsType::iterator l = targets.begin();
+ cmTargets &targets = this->Makefile->GetTargets();
+ for (cmTargets::iterator l = targets.begin();
l != targets.end(); ++l)
{
- const std::vector<std::string>& includes =
- l->second->GetIncludeDirectories();
+ const char *incDirProp = l->second.GetProperty("INCLUDE_DIRECTORIES");
+ if (!incDirProp)
+ {
+ continue;
+ }
+
+ std::string incDirs = cmGeneratorExpression::Preprocess(incDirProp,
+ cmGeneratorExpression::StripAllGeneratorExpressions);
+
+ std::vector<std::string> includes;
+ cmSystemTools::ExpandListArgument(incDirs.c_str(), includes);
+
for(std::vector<std::string>::const_iterator j = includes.begin();
j != includes.end(); ++j)
{