summaryrefslogtreecommitdiff
path: root/Source/cmTargetIncludeDirectoriesCommand.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-07-02 14:30:10 +0200
committerBrad King <brad.king@kitware.com>2013-07-16 13:44:57 -0400
commit9cf3547e1cd56d42bc96c3dc3adf9f745faea5ee (patch)
treeea220c1949611ac1977841ea77ff22bcac061497 /Source/cmTargetIncludeDirectoriesCommand.cxx
parent1925cffa083bcbe3c54b8a0f2c63dc96f5168db0 (diff)
downloadcmake-9cf3547e1cd56d42bc96c3dc3adf9f745faea5ee.tar.gz
Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.
Unlike other target properties, this does not have a corresponding non-INTERFACE variant. This allows propagation of system attribute on include directories from link dependents.
Diffstat (limited to 'Source/cmTargetIncludeDirectoriesCommand.cxx')
-rw-r--r--Source/cmTargetIncludeDirectoriesCommand.cxx17
1 files changed, 14 insertions, 3 deletions
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index ee915212c2..e7b906c9e8 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -84,10 +84,21 @@ void cmTargetIncludeDirectoriesCommand
const std::vector<std::string> &content,
bool prepend, bool system)
{
+ cmTargetPropCommandBase::HandleInterfaceContent(tgt, content,
+ prepend, system);
+
if (system)
{
- // Error.
+ std::string joined;
+ std::string sep;
+ for(std::vector<std::string>::const_iterator it = content.begin();
+ it != content.end(); ++it)
+ {
+ joined += sep;
+ sep = ";";
+ joined += *it;
+ }
+ tgt->AppendProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES",
+ joined.c_str());
}
- cmTargetPropCommandBase::HandleInterfaceContent(tgt, content,
- prepend, system);
}