diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-07-01 20:55:25 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-07-02 14:40:02 (GMT) |
commit | 83498d413530570f7ab9affee5b8301c888bf91e (patch) | |
tree | 08f4c2ce8a7ec31b8061369a4113af29fe504f33 /Source/cmGeneratorTarget.cxx | |
parent | f1fcbe3fdedb0d04fe89423331c0f2789bfe911e (diff) | |
download | CMake-83498d413530570f7ab9affee5b8301c888bf91e.zip CMake-83498d413530570f7ab9affee5b8301c888bf91e.tar.gz CMake-83498d413530570f7ab9affee5b8301c888bf91e.tar.bz2 |
Store system include directories in the cmTarget.
Entries from the cmMakefile are processed and maintained similarly
to other include directories. The include_directories(SYSTEM)
signature affects all following targets, and all prior targets
in the same makefile.
Diffstat (limited to 'Source/cmGeneratorTarget.cxx')
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 61ff8d5..9167b25 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -51,7 +51,23 @@ const char *cmGeneratorTarget::GetProperty(const char *prop) bool cmGeneratorTarget::IsSystemIncludeDirectory(const char *dir, const char *config) { - return this->Makefile->IsSystemIncludeDirectory(dir, config); + for (std::set<cmStdString>::const_iterator + it = this->Target->GetSystemIncludeDirectories().begin(); + it != this->Target->GetSystemIncludeDirectories().end(); ++it) + { + cmListFileBacktrace lfbt; + cmGeneratorExpression ge(lfbt); + + std::vector<std::string> incs; + cmSystemTools::ExpandListArgument(ge.Parse(*it) + ->Evaluate(this->Makefile, + config, false), incs); + if (std::find(incs.begin(), incs.end(), dir) != incs.end()) + { + return true; + } + } + return false; } //---------------------------------------------------------------------------- |