From 2b3e7b6f943d525cd02c13daacd596f17d100fd4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 4 Jun 2014 15:51:08 -0400 Subject: [PATCH] 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. --- Source/cmVisualStudio10TargetGenerator.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 12f60eba0..453e98391 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1277,6 +1277,12 @@ void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions() std::string ext = 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->BuildFileStream << cmVS10EscapeXML(ext) << "\n";