diff options
author | Alexander Neundorf <neundorf@kde.org> | 2007-06-21 16:23:54 -0400 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2007-06-21 16:23:54 -0400 |
commit | 1383368628411f3834e2e29e81be306db74c610f (patch) | |
tree | 5dc8ec712f63accdd7c2321695e4e5134bfa2215 /Source/cmAddLibraryCommand.cxx | |
parent | 7f1fbe4e4c3ab8debde333e80e697208407c0a64 (diff) | |
download | cmake-1383368628411f3834e2e29e81be306db74c610f.tar.gz |
ENH: print a warning if ADD_LIBRARY( SHARED/MODULE ) is used and the target
platform doesn't support shared libraries
Alex
Diffstat (limited to 'Source/cmAddLibraryCommand.cxx')
-rw-r--r-- | Source/cmAddLibraryCommand.cxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/cmAddLibraryCommand.cxx b/Source/cmAddLibraryCommand.cxx index 09e37747d9..bdf59ad014 100644 --- a/Source/cmAddLibraryCommand.cxx +++ b/Source/cmAddLibraryCommand.cxx @@ -77,6 +77,22 @@ bool cmAddLibraryCommand::InitialPass(std::vector<std::string> const& args) cmSystemTools::Message(msg.c_str() ,"Warning"); } + /* ideally we should check whether for the linker language of the target + CMAKE_${LANG}_CREATE_SHARED_LIBRARY is defined and if not default to + STATIC. But at this point we know only the name of the target, but not + yet its linker language. */ + if ((shared != 0) && + (this->Makefile->IsOn("CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS"))) + { + std::string msg = "ADD_LIBRARY for library "; + msg += args[0]; + msg += " is used with the SHARED or MODULE option, but the target " + "platform supports only STATIC libraries. Building it STATIC instead. " + "This may lead to problems."; + cmSystemTools::Message(msg.c_str() ,"Warning"); + shared = 0; + } + std::vector<std::string> srclists; while (s != args.end()) { |