cmTarget: Use helper function to append to lists

This commit is contained in:
Sebastian Holtermann
2019-03-21 16:57:27 +01:00
parent e09c606eb4
commit 03d17a35b5

View File

@@ -32,6 +32,13 @@
#include "cmTargetPropertyComputer.h"
#include "cmake.h"
///! Append all elements from the second container to the first container
template <class C, class R>
static inline void CApp(C& container, R const& range)
{
container.insert(container.end(), range.begin(), range.end());
}
template <>
const char* cmTargetPropertyComputer::ComputeLocationForBuild<cmTarget>(
cmTarget const* tgt)
@@ -355,59 +362,30 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
if (!this->IsImported()) {
// Initialize the INCLUDE_DIRECTORIES property based on the current value
// of the same directory property:
const cmStringRange parentIncludes =
this->Makefile->GetIncludeDirectoriesEntries();
const cmBacktraceRange parentIncludesBts =
this->Makefile->GetIncludeDirectoriesBacktraces();
CApp(this->Internal->IncludeDirectoriesEntries,
this->Makefile->GetIncludeDirectoriesEntries());
CApp(this->Internal->IncludeDirectoriesBacktraces,
this->Makefile->GetIncludeDirectoriesBacktraces());
this->Internal->IncludeDirectoriesEntries.insert(
this->Internal->IncludeDirectoriesEntries.end(), parentIncludes.begin(),
parentIncludes.end());
this->Internal->IncludeDirectoriesBacktraces.insert(
this->Internal->IncludeDirectoriesBacktraces.end(),
parentIncludesBts.begin(), parentIncludesBts.end());
{
auto const& sysInc = this->Makefile->GetSystemIncludeDirectories();
this->SystemIncludeDirectories.insert(sysInc.begin(), sysInc.end());
}
const std::set<std::string> parentSystemIncludes =
this->Makefile->GetSystemIncludeDirectories();
CApp(this->Internal->CompileOptionsEntries,
this->Makefile->GetCompileOptionsEntries());
CApp(this->Internal->CompileOptionsBacktraces,
this->Makefile->GetCompileOptionsBacktraces());
this->SystemIncludeDirectories.insert(parentSystemIncludes.begin(),
parentSystemIncludes.end());
CApp(this->Internal->LinkOptionsEntries,
this->Makefile->GetLinkOptionsEntries());
CApp(this->Internal->LinkOptionsBacktraces,
this->Makefile->GetLinkOptionsBacktraces());
const cmStringRange parentCompileOptions =
this->Makefile->GetCompileOptionsEntries();
const cmBacktraceRange parentCompileOptionsBts =
this->Makefile->GetCompileOptionsBacktraces();
this->Internal->CompileOptionsEntries.insert(
this->Internal->CompileOptionsEntries.end(),
parentCompileOptions.begin(), parentCompileOptions.end());
this->Internal->CompileOptionsBacktraces.insert(
this->Internal->CompileOptionsBacktraces.end(),
parentCompileOptionsBts.begin(), parentCompileOptionsBts.end());
const cmStringRange parentLinkOptions =
this->Makefile->GetLinkOptionsEntries();
const cmBacktraceRange parentLinkOptionsBts =
this->Makefile->GetLinkOptionsBacktraces();
this->Internal->LinkOptionsEntries.insert(
this->Internal->LinkOptionsEntries.end(), parentLinkOptions.begin(),
parentLinkOptions.end());
this->Internal->LinkOptionsBacktraces.insert(
this->Internal->LinkOptionsBacktraces.end(),
parentLinkOptionsBts.begin(), parentLinkOptionsBts.end());
const cmStringRange parentLinkDirectories =
this->Makefile->GetLinkDirectoriesEntries();
const cmBacktraceRange parentLinkDirectoriesBts =
this->Makefile->GetLinkDirectoriesBacktraces();
this->Internal->LinkDirectoriesEntries.insert(
this->Internal->LinkDirectoriesEntries.end(),
parentLinkDirectories.begin(), parentLinkDirectories.end());
this->Internal->LinkDirectoriesBacktraces.insert(
this->Internal->LinkDirectoriesBacktraces.end(),
parentLinkDirectoriesBts.begin(), parentLinkDirectoriesBts.end());
CApp(this->Internal->LinkDirectoriesEntries,
this->Makefile->GetLinkDirectoriesEntries());
CApp(this->Internal->LinkDirectoriesBacktraces,
this->Makefile->GetLinkDirectoriesBacktraces());
}
if (this->GetType() != cmStateEnums::INTERFACE_LIBRARY &&