summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkDepends.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-06 20:24:45 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-06 20:24:45 (GMT)
commit26df00f83a73821e39e20624d3ca7f66fdd4db97 (patch)
treeb5d2787918079731daa55e3793aa12ed057d3765 /Source/cmComputeLinkDepends.cxx
parent82a8c6b0c725496315e45e11ce8bcfb970c82bcf (diff)
downloadCMake-26df00f83a73821e39e20624d3ca7f66fdd4db97.zip
CMake-26df00f83a73821e39e20624d3ca7f66fdd4db97.tar.gz
CMake-26df00f83a73821e39e20624d3ca7f66fdd4db97.tar.bz2
ENH: Move CMP0004 check into cmTarget
This moves code implementing policy CMP0004 into cmTarget::CheckCMP0004. The implementation is slightly simpler and can be re-used outside of cmComputeLinkDepends.
Diffstat (limited to 'Source/cmComputeLinkDepends.cxx')
-rw-r--r--Source/cmComputeLinkDepends.cxx62
1 files changed, 1 insertions, 61 deletions
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx
index 1278d8c..406761f 100644
--- a/Source/cmComputeLinkDepends.cxx
+++ b/Source/cmComputeLinkDepends.cxx
@@ -553,7 +553,7 @@ cmComputeLinkDepends::AddLinkEntries(int depender_index,
{
// Skip entries that will resolve to the target getting linked or
// are empty.
- std::string item = this->CleanItemName(*li);
+ std::string item = this->Target->CheckCMP0004(*li);
if(item == this->Target->GetName() || item.empty())
{
continue;
@@ -606,66 +606,6 @@ cmComputeLinkDepends::AddLinkEntries(int depender_index,
}
//----------------------------------------------------------------------------
-std::string cmComputeLinkDepends::CleanItemName(std::string const& item)
-{
- // Strip whitespace off the library names because we used to do this
- // in case variables were expanded at generate time. We no longer
- // do the expansion but users link to libraries like " ${VAR} ".
- std::string lib = item;
- std::string::size_type pos = lib.find_first_not_of(" \t\r\n");
- if(pos != lib.npos)
- {
- lib = lib.substr(pos, lib.npos);
- }
- pos = lib.find_last_not_of(" \t\r\n");
- if(pos != lib.npos)
- {
- lib = lib.substr(0, pos+1);
- }
- if(lib != item)
- {
- switch(this->Target->GetPolicyStatusCMP0004())
- {
- case cmPolicies::WARN:
- {
- cmOStringStream w;
- w << (this->Makefile->GetPolicies()
- ->GetPolicyWarning(cmPolicies::CMP0004)) << "\n"
- << "Target \"" << this->Target->GetName() << "\" links to item \""
- << item << "\" which has leading or trailing whitespace.";
- this->CMakeInstance->IssueMessage(cmake::AUTHOR_WARNING, w.str(),
- this->Target->GetBacktrace());
- }
- case cmPolicies::OLD:
- break;
- case cmPolicies::NEW:
- {
- cmOStringStream e;
- e << "Target \"" << this->Target->GetName() << "\" links to item \""
- << item << "\" which has leading or trailing whitespace. "
- << "This is now an error according to policy CMP0004.";
- this->CMakeInstance->IssueMessage(cmake::FATAL_ERROR, e.str(),
- this->Target->GetBacktrace());
- }
- break;
- case cmPolicies::REQUIRED_IF_USED:
- case cmPolicies::REQUIRED_ALWAYS:
- {
- cmOStringStream e;
- e << (this->Makefile->GetPolicies()
- ->GetRequiredPolicyError(cmPolicies::CMP0004)) << "\n"
- << "Target \"" << this->Target->GetName() << "\" links to item \""
- << item << "\" which has leading or trailing whitespace.";
- this->CMakeInstance->IssueMessage(cmake::FATAL_ERROR, e.str(),
- this->Target->GetBacktrace());
- }
- break;
- }
- }
- return lib;
-}
-
-//----------------------------------------------------------------------------
cmTarget* cmComputeLinkDepends::FindTargetToLink(int depender_index,
const char* name)
{