diff options
author | Stephen Kelly <steveire@gmail.com> | 2012-09-18 11:57:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-09-28 12:50:10 (GMT) |
commit | 08cb4fa4c0378468fc2757666701617f6fe8270e (patch) | |
tree | ac312dd92d2e60419b9d02836b03ac2ffcfd73c4 /Source/cmGeneratorTarget.cxx | |
parent | 0ef091d98677253c340d4045413057c50566a528 (diff) | |
download | CMake-08cb4fa4c0378468fc2757666701617f6fe8270e.zip CMake-08cb4fa4c0378468fc2757666701617f6fe8270e.tar.gz CMake-08cb4fa4c0378468fc2757666701617f6fe8270e.tar.bz2 |
Process generator expressions in the INCLUDE_DIRECTORIES property.
This use of generator expressions, like all others to come which operate
on target properties, must initalize the dag checker.
Diffstat (limited to 'Source/cmGeneratorTarget.cxx')
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 3f58433..9093613 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -17,6 +17,8 @@ #include "cmComputeLinkInformation.h" #include "cmGlobalGenerator.h" #include "cmSourceFile.h" +#include "cmGeneratorExpression.h" +#include "cmGeneratorExpressionDAGChecker.h" #include <assert.h> @@ -289,11 +291,27 @@ std::vector<std::string> cmGeneratorTarget::GetIncludeDirectories() { std::vector<std::string> includes; const char *prop = this->Target->GetProperty("INCLUDE_DIRECTORIES"); - if(prop) + if(!prop) { - cmSystemTools::ExpandListArgument(prop, includes); + return includes; } + const char *config = this->Makefile->GetDefinition("CMAKE_BUILD_TYPE"); + cmListFileBacktrace lfbt; + cmGeneratorExpression ge(lfbt); + + cmGeneratorExpressionDAGChecker dagChecker(lfbt, + this->GetName(), + "INCLUDE_DIRECTORIES", 0, 0); + + cmSystemTools::ExpandListArgument(ge.Parse(prop) + .Evaluate(this->Makefile, + config, + false, + this, + &dagChecker), + includes); + std::set<std::string> uniqueIncludes; std::vector<std::string> orderedAndUniqueIncludes; for(std::vector<std::string>::const_iterator |