summaryrefslogtreecommitdiff
path: root/Source/cmAddLibraryCommand.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-06-11 08:37:11 -0400
committerBrad King <brad.king@kitware.com>2012-06-11 08:40:11 -0400
commit9a9b3e45e3da8347abb00c79c8f9e2e94a530820 (patch)
tree226c47fbb2394072c26b91d854914f1910b17601 /Source/cmAddLibraryCommand.cxx
parentd17c58c8534ba68e527a79f33fad60c502ebdde1 (diff)
downloadcmake-9a9b3e45e3da8347abb00c79c8f9e2e94a530820.tar.gz
add_library: Allow OBJECT library without dynamic linking (#13289)
When global property TARGET_SUPPORTS_SHARED_LIBS is FALSE we should still allow OBJECT libraries. This was an oversight in commit b87d7a60 (Add OBJECT_LIBRARY target type, 2012-03-12). While at it, fix the warning message to report context.
Diffstat (limited to 'Source/cmAddLibraryCommand.cxx')
-rw-r--r--Source/cmAddLibraryCommand.cxx15
1 files changed, 8 insertions, 7 deletions
diff --git a/Source/cmAddLibraryCommand.cxx b/Source/cmAddLibraryCommand.cxx
index c1d0e9d6d9..fd39eec029 100644
--- a/Source/cmAddLibraryCommand.cxx
+++ b/Source/cmAddLibraryCommand.cxx
@@ -102,16 +102,17 @@ bool cmAddLibraryCommand
STATIC. But at this point we know only the name of the target, but not
yet its linker language. */
if ((type != cmTarget::STATIC_LIBRARY) &&
+ (type != cmTarget::OBJECT_LIBRARY) &&
(this->Makefile->GetCMakeInstance()->GetPropertyAsBool(
"TARGET_SUPPORTS_SHARED_LIBS") == false))
{
- std::string msg = "ADD_LIBRARY for library ";
- msg += args[0];
- msg += " is used with the ";
- msg += type==cmTarget::SHARED_LIBRARY ? "SHARED" : "MODULE";
- msg += " option, but the target platform supports only STATIC libraries. "
- "Building it STATIC instead. This may lead to problems.";
- cmSystemTools::Message(msg.c_str() ,"Warning");
+ cmOStringStream w;
+ w <<
+ "ADD_LIBRARY called with " <<
+ (type==cmTarget::SHARED_LIBRARY ? "SHARED" : "MODULE") <<
+ " option but the target platform does not support dynamic linking. "
+ "Building a STATIC library instead. This may lead to problems.";
+ this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, w.str());
type = cmTarget::STATIC_LIBRARY;
}