VS: Add manifest tool settings to VS 8 and 9 project files

Always generate a VCManifestTool element in targets that compile.
This commit is contained in:
Brad King 2015-09-15 15:36:07 -04:00
parent 73a058f856
commit 6d620f5ad7
1 changed files with 14 additions and 10 deletions

View File

@ -972,25 +972,29 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
fout << "\t\t\t\tProxyFileName=\"$(InputName)_p.c\"/>\n";
// end of <Tool Name=VCMIDLTool
// Check if we need the FAT32 workaround.
// Add manifest tool settings.
if(targetBuilds && this->GetVersion() >= cmGlobalVisualStudioGenerator::VS8)
{
const char* manifestTool = "VCManifestTool";
if (this->FortranProject)
{
manifestTool = "VFManifestTool";
}
fout <<
"\t\t\t<Tool\n"
"\t\t\t\tName=\"" << manifestTool << "\"";
// Check if we need the FAT32 workaround.
// Check the filesystem type where the target will be written.
if(cmLVS6G_IsFAT(target.GetDirectory(configName).c_str()))
if (cmLVS6G_IsFAT(target.GetDirectory(configName).c_str()))
{
// Add a flag telling the manifest tool to use a workaround
// for FAT32 file systems, which can cause an empty manifest
// to be embedded into the resulting executable. See CMake
// bug #2617.
const char* manifestTool = "VCManifestTool";
if(this->FortranProject)
{
manifestTool = "VFManifestTool";
}
fout << "\t\t\t<Tool\n\t\t\t\tName=\"" << manifestTool << "\"\n"
<< "\t\t\t\tUseFAT32Workaround=\"true\"\n"
<< "\t\t\t/>\n";
fout << "\n\t\t\t\tUseFAT32Workaround=\"true\"";
}
fout << "/>\n";
}
this->OutputTargetRules(fout, configName, target, libName);