summaryrefslogtreecommitdiffstats
path: root/Source/cmTargetIncludeDirectoriesCommand.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-01-20 13:04:13 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-07-02 14:40:03 (GMT)
commit1925cffa083bcbe3c54b8a0f2c63dc96f5168db0 (patch)
tree98415042edafb89d47f002719ed0fed0dad9c679 /Source/cmTargetIncludeDirectoriesCommand.cxx
parent286f22770907fad3453eadf34e641ad736237292 (diff)
downloadCMake-1925cffa083bcbe3c54b8a0f2c63dc96f5168db0.zip
CMake-1925cffa083bcbe3c54b8a0f2c63dc96f5168db0.tar.gz
CMake-1925cffa083bcbe3c54b8a0f2c63dc96f5168db0.tar.bz2
Add a SYSTEM parameter to target_include_directories (#14180)
This is similar to the include_directories(SYSTEM) signature in that it allows telling the compiler to ignore warnings from such headers.
Diffstat (limited to 'Source/cmTargetIncludeDirectoriesCommand.cxx')
-rw-r--r--Source/cmTargetIncludeDirectoriesCommand.cxx23
1 files changed, 21 insertions, 2 deletions
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index 12d0a51..ee91521 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -15,7 +15,8 @@
bool cmTargetIncludeDirectoriesCommand
::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
{
- return this->HandleArguments(args, "INCLUDE_DIRECTORIES", PROCESS_BEFORE);
+ return this->HandleArguments(args, "INCLUDE_DIRECTORIES",
+ ArgumentFlags(PROCESS_BEFORE | PROCESS_SYSTEM));
}
//----------------------------------------------------------------------------
@@ -65,10 +66,28 @@ std::string cmTargetIncludeDirectoriesCommand
//----------------------------------------------------------------------------
void cmTargetIncludeDirectoriesCommand
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
- bool prepend)
+ bool prepend, bool system)
{
cmListFileBacktrace lfbt;
this->Makefile->GetBacktrace(lfbt);
cmValueWithOrigin entry(this->Join(content), lfbt);
tgt->InsertInclude(entry, prepend);
+ if (system)
+ {
+ tgt->AddSystemIncludeDirectories(content);
+ }
+}
+
+//----------------------------------------------------------------------------
+void cmTargetIncludeDirectoriesCommand
+::HandleInterfaceContent(cmTarget *tgt,
+ const std::vector<std::string> &content,
+ bool prepend, bool system)
+{
+ if (system)
+ {
+ // Error.
+ }
+ cmTargetPropCommandBase::HandleInterfaceContent(tgt, content,
+ prepend, system);
}