diff options
author | Brad King <brad.king@kitware.com> | 2012-06-11 08:37:11 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-06-11 08:40:11 -0400 |
commit | 9a9b3e45e3da8347abb00c79c8f9e2e94a530820 (patch) | |
tree | 226c47fbb2394072c26b91d854914f1910b17601 /Source/cmAddLibraryCommand.cxx | |
parent | d17c58c8534ba68e527a79f33fad60c502ebdde1 (diff) | |
download | cmake-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.cxx | 15 |
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; } |