BUG: Use GetExecutableNames instead of GetLibraryNames to compute the installation file name for executable targets.

This commit is contained in:
Brad King 2007-03-16 16:28:30 -04:00
parent 861e3a7107
commit 7fb8ac8904
1 changed files with 61 additions and 35 deletions

View File

@ -204,6 +204,18 @@ cmInstallTargetGenerator
}
// Compute the name of the library.
if(target->GetType() == cmTarget::EXECUTABLE)
{
std::string targetName;
std::string targetNameReal;
std::string targetNamePDB;
target->GetExecutableNames(targetName, targetNameReal,
targetNamePDB, i->c_str());
// Use the canonical name.
fname += targetName;
}
else
{
std::string targetName;
std::string targetNameSO;
std::string targetNameReal;
@ -226,6 +238,7 @@ cmInstallTargetGenerator
// Use the canonical name.
fname += targetName;
}
}
// Set a variable with the target name for this configuration.
os << "SET(" << target->GetName() << "_" << place
@ -242,6 +255,18 @@ std::string cmInstallTargetGenerator::GetScriptReference(cmTarget* target,
if(this->ConfigurationTypes->empty())
{
// Reference the target by its one configuration name.
if(target->GetType() == cmTarget::EXECUTABLE)
{
std::string targetName;
std::string targetNameReal;
std::string targetNamePDB;
target->GetExecutableNames(targetName, targetNameReal,
targetNamePDB, this->ConfigurationName);
// Use the canonical name.
return targetName;
}
else
{
std::string targetName;
std::string targetNameSO;
std::string targetNameReal;
@ -266,6 +291,7 @@ std::string cmInstallTargetGenerator::GetScriptReference(cmTarget* target,
return targetName;
}
}
}
else
{
// Reference the target using the per-configuration variable.