summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-10-23 12:20:14 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2013-10-23 12:20:14 (GMT)
commitd67286ff9b4db3ef9a8bf3e91b0dacc8aac90c05 (patch)
treedd20b3c73578481527c8a0da4b0ff4a247396c43
parent7938e589e33fc7c9de1fa29e3ec128f1b38c2831 (diff)
parent0b3b3368fb8ee712aa06fcb2b9c6e288905ca6ae (diff)
downloadCMake-d67286ff9b4db3ef9a8bf3e91b0dacc8aac90c05.zip
CMake-d67286ff9b4db3ef9a8bf3e91b0dacc8aac90c05.tar.gz
CMake-d67286ff9b4db3ef9a8bf3e91b0dacc8aac90c05.tar.bz2
Merge topic 'output-CMP0022-entries'
0b3b336 CMP0022: Output link interface mismatch for static library warning
-rw-r--r--Source/cmTarget.cxx27
-rw-r--r--Tests/RunCMake/CMP0022/CMP0022-WARN-static-stderr.txt9
2 files changed, 35 insertions, 1 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 126cdbd..ad4ae0c 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -5311,6 +5311,25 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
{
case cmPolicies::WARN:
{
+ std::string oldLibraries;
+ std::string newLibraries;
+ const char *sep = "";
+ for(std::vector<std::string>::const_iterator it
+ = impl->Libraries.begin(); it != impl->Libraries.end(); ++it)
+ {
+ oldLibraries += sep;
+ oldLibraries += *it;
+ sep = ";";
+ }
+ sep = "";
+ for(std::vector<std::string>::const_iterator it
+ = ifaceLibs.begin(); it != ifaceLibs.end(); ++it)
+ {
+ newLibraries += sep;
+ newLibraries += *it;
+ sep = ";";
+ }
+
cmOStringStream w;
w << (this->Makefile->GetPolicies()
->GetPolicyWarning(cmPolicies::CMP0022)) << "\n"
@@ -5318,7 +5337,13 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
"INTERFACE_LINK_LIBRARIES property. This should be preferred "
"as the source of the link interface for this library. "
"Ignoring the property and using the link implementation "
- "as the link interface instead.";
+ "as the link interface instead."
+ "\n"
+ "INTERFACE_LINK_LIBRARIES:\n "
+ << newLibraries
+ << "\n"
+ << "Link implementation:\n "
+ << oldLibraries << "\n";
this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, w.str());
}
// Fall through
diff --git a/Tests/RunCMake/CMP0022/CMP0022-WARN-static-stderr.txt b/Tests/RunCMake/CMP0022/CMP0022-WARN-static-stderr.txt
index 41d132c..e41133a 100644
--- a/Tests/RunCMake/CMP0022/CMP0022-WARN-static-stderr.txt
+++ b/Tests/RunCMake/CMP0022/CMP0022-WARN-static-stderr.txt
@@ -7,4 +7,13 @@ CMake Warning \(dev\) in CMakeLists.txt:
should be preferred as the source of the link interface for this library.
Ignoring the property and using the link implementation as the link
interface instead.
+
+ INTERFACE_LINK_LIBRARIES:
+
+ foo
+
+ Link implementation:
+
+ bat
+
This warning is for project developers. Use -Wno-dev to suppress it.$