VS: Fix vcxproj specification of empty output file extension

When a binary output file is to have no extension, the TargetExt
element in the vcxproj cannot be left empty because VS will choose
a default extension.  Instead use "." because the Windows filesystem
will treat that as an empty extension.
This commit is contained in:
Brad King 2014-06-04 15:51:08 -04:00
parent 39af06e7f7
commit 2b3e7b6f94
1 changed files with 6 additions and 0 deletions

View File

@ -1277,6 +1277,12 @@ void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
std::string ext = std::string ext =
cmSystemTools::GetFilenameLastExtension(targetNameFull); cmSystemTools::GetFilenameLastExtension(targetNameFull);
if(ext.empty())
{
// An empty TargetExt causes a default extension to be used.
// A single "." appears to be treated as an empty extension.
ext = ".";
}
this->WritePlatformConfigTag("TargetExt", config->c_str(), 3); this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
*this->BuildFileStream << cmVS10EscapeXML(ext) << "</TargetExt>\n"; *this->BuildFileStream << cmVS10EscapeXML(ext) << "</TargetExt>\n";