cmGeneratorTarget: Move GetOutputTargetType from cmTarget.
This commit is contained in:
parent
e73916992c
commit
110fd2fba1
|
@ -339,6 +339,62 @@ const char *cmGeneratorTarget::GetProperty(const std::string& prop) const
|
||||||
return this->Target->GetProperty(prop);
|
return this->Target->GetProperty(prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
const char* cmGeneratorTarget::GetOutputTargetType(bool implib) const
|
||||||
|
{
|
||||||
|
switch(this->GetType())
|
||||||
|
{
|
||||||
|
case cmTarget::SHARED_LIBRARY:
|
||||||
|
if(this->Target->IsDLLPlatform())
|
||||||
|
{
|
||||||
|
if(implib)
|
||||||
|
{
|
||||||
|
// A DLL import library is treated as an archive target.
|
||||||
|
return "ARCHIVE";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// A DLL shared library is treated as a runtime target.
|
||||||
|
return "RUNTIME";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// For non-DLL platforms shared libraries are treated as
|
||||||
|
// library targets.
|
||||||
|
return "LIBRARY";
|
||||||
|
}
|
||||||
|
case cmTarget::STATIC_LIBRARY:
|
||||||
|
// Static libraries are always treated as archive targets.
|
||||||
|
return "ARCHIVE";
|
||||||
|
case cmTarget::MODULE_LIBRARY:
|
||||||
|
if(implib)
|
||||||
|
{
|
||||||
|
// Module libraries are always treated as library targets.
|
||||||
|
return "ARCHIVE";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Module import libraries are treated as archive targets.
|
||||||
|
return "LIBRARY";
|
||||||
|
}
|
||||||
|
case cmTarget::EXECUTABLE:
|
||||||
|
if(implib)
|
||||||
|
{
|
||||||
|
// Executable import libraries are treated as archive targets.
|
||||||
|
return "ARCHIVE";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Executables are always treated as runtime targets.
|
||||||
|
return "RUNTIME";
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
std::string cmGeneratorTarget::GetOutputName(const std::string& config,
|
std::string cmGeneratorTarget::GetOutputName(const std::string& config,
|
||||||
bool implib) const
|
bool implib) const
|
||||||
|
@ -355,7 +411,7 @@ std::string cmGeneratorTarget::GetOutputName(const std::string& config,
|
||||||
|
|
||||||
// Compute output name.
|
// Compute output name.
|
||||||
std::vector<std::string> props;
|
std::vector<std::string> props;
|
||||||
std::string type = this->Target->GetOutputTargetType(implib);
|
std::string type = this->GetOutputTargetType(implib);
|
||||||
std::string configUpper = cmSystemTools::UpperCase(config);
|
std::string configUpper = cmSystemTools::UpperCase(config);
|
||||||
if(!type.empty() && !configUpper.empty())
|
if(!type.empty() && !configUpper.empty())
|
||||||
{
|
{
|
||||||
|
@ -4662,7 +4718,7 @@ bool cmGeneratorTarget::ComputeOutputDir(const std::string& config,
|
||||||
|
|
||||||
// Look for a target property defining the target output directory
|
// Look for a target property defining the target output directory
|
||||||
// based on the target type.
|
// based on the target type.
|
||||||
std::string targetTypeName = this->Target->GetOutputTargetType(implib);
|
std::string targetTypeName = this->GetOutputTargetType(implib);
|
||||||
const char* propertyName = 0;
|
const char* propertyName = 0;
|
||||||
std::string propertyNameStr = targetTypeName;
|
std::string propertyNameStr = targetTypeName;
|
||||||
if(!propertyNameStr.empty())
|
if(!propertyNameStr.empty())
|
||||||
|
|
|
@ -439,6 +439,9 @@ private:
|
||||||
typedef std::map<std::string, LinkClosure> LinkClosureMapType;
|
typedef std::map<std::string, LinkClosure> LinkClosureMapType;
|
||||||
mutable LinkClosureMapType LinkClosureMap;
|
mutable LinkClosureMapType LinkClosureMap;
|
||||||
|
|
||||||
|
// Returns ARCHIVE, LIBRARY, or RUNTIME based on platform and type.
|
||||||
|
const char* GetOutputTargetType(bool implib) const;
|
||||||
|
|
||||||
struct CompatibleInterfacesBase
|
struct CompatibleInterfacesBase
|
||||||
{
|
{
|
||||||
std::set<std::string> PropsBool;
|
std::set<std::string> PropsBool;
|
||||||
|
|
|
@ -2271,62 +2271,6 @@ void cmTarget::SetPropertyDefault(const std::string& property,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
const char* cmTarget::GetOutputTargetType(bool implib) const
|
|
||||||
{
|
|
||||||
switch(this->GetType())
|
|
||||||
{
|
|
||||||
case cmTarget::SHARED_LIBRARY:
|
|
||||||
if(this->DLLPlatform)
|
|
||||||
{
|
|
||||||
if(implib)
|
|
||||||
{
|
|
||||||
// A DLL import library is treated as an archive target.
|
|
||||||
return "ARCHIVE";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// A DLL shared library is treated as a runtime target.
|
|
||||||
return "RUNTIME";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// For non-DLL platforms shared libraries are treated as
|
|
||||||
// library targets.
|
|
||||||
return "LIBRARY";
|
|
||||||
}
|
|
||||||
case cmTarget::STATIC_LIBRARY:
|
|
||||||
// Static libraries are always treated as archive targets.
|
|
||||||
return "ARCHIVE";
|
|
||||||
case cmTarget::MODULE_LIBRARY:
|
|
||||||
if(implib)
|
|
||||||
{
|
|
||||||
// Module libraries are always treated as library targets.
|
|
||||||
return "ARCHIVE";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Module import libraries are treated as archive targets.
|
|
||||||
return "LIBRARY";
|
|
||||||
}
|
|
||||||
case cmTarget::EXECUTABLE:
|
|
||||||
if(implib)
|
|
||||||
{
|
|
||||||
// Executable import libraries are treated as archive targets.
|
|
||||||
return "ARCHIVE";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Executables are always treated as runtime targets.
|
|
||||||
return "RUNTIME";
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
std::string cmTarget::GetFrameworkVersion() const
|
std::string cmTarget::GetFrameworkVersion() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -415,9 +415,6 @@ private:
|
||||||
void SetPropertyDefault(const std::string& property,
|
void SetPropertyDefault(const std::string& property,
|
||||||
const char* default_value);
|
const char* default_value);
|
||||||
|
|
||||||
// Returns ARCHIVE, LIBRARY, or RUNTIME based on platform and type.
|
|
||||||
const char* GetOutputTargetType(bool implib) const;
|
|
||||||
|
|
||||||
std::string GetFullNameImported(const std::string& config,
|
std::string GetFullNameImported(const std::string& config,
|
||||||
bool implib) const;
|
bool implib) const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue