Create cmTarget DLL query methods

We creates methods IsDLLPlatform() and HasImportLibrary().  The former
returns true on Windows.  The latter returns whether the target has a
DLL import library.  It is true on Windows for shared libraries and
executables with exports.
This commit is contained in:
Brad King 2009-08-11 09:07:42 -04:00
parent 0bc050677f
commit 463b3f03bd
2 changed files with 15 additions and 3 deletions

View File

@ -1022,6 +1022,14 @@ bool cmTarget::IsLinkable()
this->IsExecutableWithExports());
}
//----------------------------------------------------------------------------
bool cmTarget::HasImportLibrary()
{
return (this->DLLPlatform &&
(this->GetType() == cmTarget::SHARED_LIBRARY ||
this->IsExecutableWithExports()));
}
//----------------------------------------------------------------------------
bool cmTarget::IsFrameworkOnApple()
{
@ -3635,9 +3643,7 @@ void cmTarget::ComputeImportInfo(std::string const& desired_config,
// On a DLL platform there may be only IMPORTED_IMPLIB for a shared
// library or an executable with exports.
bool allowImp =
this->DLLPlatform && (this->GetType() == cmTarget::SHARED_LIBRARY ||
this->IsExecutableWithExports());
bool allowImp = this->HasImportLibrary();
// Look for a mapping from the current project's configuration to
// the imported project's configuration.

View File

@ -413,6 +413,12 @@ public:
/** Return whether this target may be used to link another target. */
bool IsLinkable();
/** Return whether or not the target is for a DLL platform. */
bool IsDLLPlatform() { return this->DLLPlatform; }
/** Return whether or not the target has a DLL import library. */
bool HasImportLibrary();
/** Return whether this target is a shared library Framework on
Apple. */
bool IsFrameworkOnApple();