ENH: Added <config>_OUTPUT_NAME target property to allow the output name to be set on a per-configuration basis.

This commit is contained in:
Brad King 2006-04-18 10:56:28 -04:00
parent 0ec43f7abd
commit 392137b6d7
2 changed files with 16 additions and 3 deletions

View File

@ -69,7 +69,9 @@ public:
"(for SHARED library targets). "
"OUTPUT_NAME sets the real name of a target when it is built and "
"can be used to help create two targets of the same name even though "
"CMake requires unique logical target names. "
"CMake requires unique logical target names. There is also a "
"<CONFIG>_OUTPUT_NAME that can set the output name on a "
"per-configuration basis. "
"<CONFIG>_POSTFIX sets a postfix for the real name of the target "
"when it is built under the configuration named by <CONFIG> "
"(in upper-case, such as \"DEBUG_POSTFIX\"). The value of "

View File

@ -1199,9 +1199,20 @@ void cmTarget::GetFullNameInternal(TargetType type,
outPrefix = targetPrefix?targetPrefix:"";
// Append the target name or property-specified name.
if(const char* outname = this->GetProperty("OUTPUT_NAME"))
const char* outName = 0;
if(config && *config)
{
outBase = outname;
std::string configProp = cmSystemTools::UpperCase(config);
configProp += "_OUTPUT_NAME";
outName = this->GetProperty(configProp.c_str());
}
if(!outName)
{
outName = this->GetProperty("OUTPUT_NAME");
}
if(outName)
{
outBase = outName;
}
else
{