VS10: Honor /DELAYSIGN and /KEYFILE flags (#13601)
Fix the VS 10 link flag map to name the project file entries correctly. The VS 11 link flag map already has the correct names. Generate the entries in the <PropertyGroup> along with incremental linking options. Drop them from the <Link> element because VS does not use them.
This commit is contained in:
parent
c65a2ea6a8
commit
035e7bd04e
|
@ -182,8 +182,8 @@ static cmVS7FlagTable cmVS10LinkFlagTable[] =
|
|||
{"SupportUnloadOfDelayLoadedDLL", "DELAY:UNLOAD", "", "true", 0},
|
||||
{"SupportNobindOfDelayLoadedDLL", "DELAY:NOBIND", "", "true", 0},
|
||||
{"Profile", "PROFILE", "", "true", 0},
|
||||
{"DelaySign", "DELAYSIGN:NO", "", "false", 0},
|
||||
{"DelaySign", "DELAYSIGN", "", "true", 0},
|
||||
{"LinkDelaySign", "DELAYSIGN:NO", "", "false", 0},
|
||||
{"LinkDelaySign", "DELAYSIGN", "", "true", 0},
|
||||
{"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK:NO", "", "false", 0},
|
||||
{"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK", "", "true", 0},
|
||||
{"ImageHasSafeExceptionHandlers", "SAFESEH:NO", "", "false", 0},
|
||||
|
@ -294,7 +294,7 @@ static cmVS7FlagTable cmVS10LinkFlagTable[] =
|
|||
{"MergeSections", "MERGE:",
|
||||
"Merge Sections",
|
||||
"", cmVS7FlagTable::UserValue},
|
||||
{"KeyFile", "KEYFILE:",
|
||||
{"LinkKeyFile", "KEYFILE:",
|
||||
"Key File",
|
||||
"", cmVS7FlagTable::UserValue},
|
||||
{"KeyContainer", "KEYCONTAINER:",
|
||||
|
|
|
@ -1106,6 +1106,23 @@ OutputLinkIncremental(std::string const& configName)
|
|||
*this->BuildFileStream << (manifest?manifest:"true")
|
||||
<< "</GenerateManifest>\n";
|
||||
linkOptions.RemoveFlag("GenerateManifest");
|
||||
|
||||
// Some link options belong here. Use them now and remove them so that
|
||||
// WriteLinkOptions does not use them.
|
||||
const char* flags[] = {
|
||||
"LinkDelaySign",
|
||||
"LinkKeyFile",
|
||||
0};
|
||||
for(const char** f = flags; *f; ++f)
|
||||
{
|
||||
const char* flag = *f;
|
||||
if(const char* value = linkOptions.GetFlag(flag))
|
||||
{
|
||||
this->WritePlatformConfigTag(flag, configName.c_str(), 3);
|
||||
*this->BuildFileStream << value << "</" << flag << ">\n";
|
||||
linkOptions.RemoveFlag(flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue