static cmVS7FlagTable cmVS12LinkFlagTable[] =
{

  //Enum Properties
  {"ShowProgress", "",
   "Not Set", "NotSet", 0},
  {"ShowProgress", "VERBOSE",
   "Display all progress messages", "LinkVerbose", 0},
  {"ShowProgress", "VERBOSE:Lib",
   "For Libraries Searched", "LinkVerboseLib", 0},
  {"ShowProgress", "VERBOSE:ICF",
   "About COMDAT folding during optimized linking", "LinkVerboseICF", 0},
  {"ShowProgress", "VERBOSE:REF",
   "About data removed during optimized linking", "LinkVerboseREF", 0},
  {"ShowProgress", "VERBOSE:SAFESEH",
   "About Modules incompatible with SEH", "LinkVerboseSAFESEH", 0},
  {"ShowProgress", "VERBOSE:CLR",
   "About linker activity related to managed code", "LinkVerboseCLR", 0},

  {"ForceFileOutput", "FORCE",
   "Enabled", "Enabled", 0},
  {"ForceFileOutput", "FORCE:MULTIPLE",
   "Multiply Defined Symbol Only", "MultiplyDefinedSymbolOnly", 0},
  {"ForceFileOutput", "FORCE:UNRESOLVED",
   "Undefined Symbol Only", "UndefinedSymbolOnly", 0},

  {"CreateHotPatchableImage", "FUNCTIONPADMIN",
   "Enabled", "Enabled", 0},
  {"CreateHotPatchableImage", "FUNCTIONPADMIN:5",
   "X86 Image Only", "X86Image", 0},
  {"CreateHotPatchableImage", "FUNCTIONPADMIN:6",
   "X64 Image Only", "X64Image", 0},
  {"CreateHotPatchableImage", "FUNCTIONPADMIN:16",
   "Itanium Image Only", "ItaniumImage", 0},

  {"UACExecutionLevel", "level='asInvoker'",
   "asInvoker", "AsInvoker", 0},
  {"UACExecutionLevel", "level='highestAvailable'",
   "highestAvailable", "HighestAvailable", 0},
  {"UACExecutionLevel", "level='requireAdministrator'",
   "requireAdministrator", "RequireAdministrator", 0},

  {"SubSystem", "",
   "Not Set", "NotSet", 0},
  {"SubSystem", "SUBSYSTEM:CONSOLE",
   "Console", "Console", 0},
  {"SubSystem", "SUBSYSTEM:WINDOWS",
   "Windows", "Windows", 0},
  {"SubSystem", "SUBSYSTEM:NATIVE",
   "Native", "Native", 0},
  {"SubSystem", "SUBSYSTEM:EFI_APPLICATION",
   "EFI Application", "EFI Application", 0},
  {"SubSystem", "SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER",
   "EFI Boot Service Driver", "EFI Boot Service Driver", 0},
  {"SubSystem", "SUBSYSTEM:EFI_ROM",
   "EFI ROM", "EFI ROM", 0},
  {"SubSystem", "SUBSYSTEM:EFI_RUNTIME_DRIVER",
   "EFI Runtime", "EFI Runtime", 0},
  {"SubSystem", "SUBSYSTEM:POSIX",
   "POSIX", "POSIX", 0},

  {"Driver", "",
   "Not Set", "NotSet", 0},
  {"Driver", "Driver",
   "Driver", "Driver", 0},
  {"Driver", "DRIVER:UPONLY",
   "UP Only", "UpOnly", 0},
  {"Driver", "DRIVER:WDM",
   "WDM", "WDM", 0},

  {"LinkTimeCodeGeneration", "",
   "Default", "Default", 0},
  {"LinkTimeCodeGeneration", "LTCG",
   "Use Link Time Code Generation", "UseLinkTimeCodeGeneration", 0},
  {"LinkTimeCodeGeneration", "LTCG:PGInstrument",
   "Profile Guided Optimization - Instrument", "PGInstrument", 0},
  {"LinkTimeCodeGeneration", "LTCG:PGOptimize",
   "Profile Guided Optimization - Optimization", "PGOptimization", 0},
  {"LinkTimeCodeGeneration", "LTCG:PGUpdate",
   "Profile Guided Optimization - Update", "PGUpdate", 0},

  {"GenerateWindowsMetadata", "WINMD",
   "Yes", "true", 0},
  {"GenerateWindowsMetadata", "WINMD:NO",
   "No", "false", 0},

  {"WindowsMetadataSignHash", "WINMDSIGNHASH:SHA1",
   "SHA1", "SHA1", 0},
  {"WindowsMetadataSignHash", "WINMDSIGNHASH:SHA256",
   "SHA256", "SHA256", 0},
  {"WindowsMetadataSignHash", "WINMDSIGNHASH:SHA384",
   "SHA384", "SHA384", 0},
  {"WindowsMetadataSignHash", "WINMDSIGNHASH:SHA512",
   "SHA512", "SHA512", 0},

  {"TargetMachine", "",
   "Not Set", "NotSet", 0},
  {"TargetMachine", "MACHINE:ARM",
   "MachineARM", "MachineARM", 0},
  {"TargetMachine", "MACHINE:EBC",
   "MachineEBC", "MachineEBC", 0},
  {"TargetMachine", "MACHINE:IA64",
   "MachineIA64", "MachineIA64", 0},
  {"TargetMachine", "MACHINE:MIPS",
   "MachineMIPS", "MachineMIPS", 0},
  {"TargetMachine", "MACHINE:MIPS16",
   "MachineMIPS16", "MachineMIPS16", 0},
  {"TargetMachine", "MACHINE:MIPSFPU",
   "MachineMIPSFPU", "MachineMIPSFPU", 0},
  {"TargetMachine", "MACHINE:MIPSFPU16",
   "MachineMIPSFPU16", "MachineMIPSFPU16", 0},
  {"TargetMachine", "MACHINE:SH4",
   "MachineSH4", "MachineSH4", 0},
  {"TargetMachine", "MACHINE:THUMB",
   "MachineTHUMB", "MachineTHUMB", 0},
  {"TargetMachine", "MACHINE:X64",
   "MachineX64", "MachineX64", 0},
  {"TargetMachine", "MACHINE:X86",
   "MachineX86", "MachineX86", 0},

  {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:MTA",
   "MTA threading attribute", "MTAThreadingAttribute", 0},
  {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:STA",
   "STA threading attribute", "STAThreadingAttribute", 0},
  {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:NONE",
   "Default threading attribute", "DefaultThreadingAttribute", 0},

  {"CLRImageType", "CLRIMAGETYPE:IJW",
   "Force IJW image", "ForceIJWImage", 0},
  {"CLRImageType", "CLRIMAGETYPE:PURE",
   "Force Pure IL Image", "ForcePureILImage", 0},
  {"CLRImageType", "CLRIMAGETYPE:SAFE",
   "Force Safe IL Image", "ForceSafeILImage", 0},
  {"CLRImageType", "",
   "Default image type", "Default", 0},

  {"SignHash", "CLRSIGNHASH:SHA1",
   "SHA1", "SHA1", 0},
  {"SignHash", "CLRSIGNHASH:SHA256",
   "SHA256", "SHA256", 0},
  {"SignHash", "CLRSIGNHASH:SHA384",
   "SHA384", "SHA384", 0},
  {"SignHash", "CLRSIGNHASH:SHA512",
   "SHA512", "SHA512", 0},

  {"LinkErrorReporting", "ERRORREPORT:PROMPT",
   "PromptImmediately", "PromptImmediately", 0},
  {"LinkErrorReporting", "ERRORREPORT:QUEUE",
   "Queue For Next Login", "QueueForNextLogin", 0},
  {"LinkErrorReporting", "ERRORREPORT:SEND",
   "Send Error Report", "SendErrorReport", 0},
  {"LinkErrorReporting", "ERRORREPORT:NONE",
   "No Error Report", "NoErrorReport", 0},

  {"CLRSupportLastError", "CLRSupportLastError",
   "Enabled", "Enabled", 0},
  {"CLRSupportLastError", "CLRSupportLastError:NO",
   "Disabled", "Disabled", 0},
  {"CLRSupportLastError", "CLRSupportLastError:SYSTEMDLL",
   "System Dlls Only", "SystemDlls", 0},


  //Bool Properties
  {"LinkIncremental", "INCREMENTAL:NO", "", "false", 0},
  {"LinkIncremental", "INCREMENTAL", "", "true", 0},
  {"SuppressStartupBanner", "NOLOGO", "", "true", 0},
  {"LinkStatus", "LTCG:NOSTATUS", "", "false", 0},
  {"LinkStatus", "LTCG:STATUS", "", "true", 0},
  {"PreventDllBinding", "ALLOWBIND:NO", "", "false", 0},
  {"PreventDllBinding", "ALLOWBIND", "", "true", 0},
  {"TreatLinkerWarningAsErrors", "WX:NO", "", "false", 0},
  {"TreatLinkerWarningAsErrors", "WX", "", "true", 0},
  {"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "", "true", 0},
  {"GenerateManifest", "MANIFEST:NO", "", "false", 0},
  {"GenerateManifest", "MANIFEST", "", "true", 0},
  {"AllowIsolation", "ALLOWISOLATION:NO", "", "false", 0},
  {"UACUIAccess", "uiAccess='false'", "", "false", 0},
  {"UACUIAccess", "uiAccess='true'", "", "true", 0},
  {"ManifestEmbed", "manifest:embed", "", "true", 0},
  {"GenerateDebugInformation", "DEBUG", "", "true", 0},
  {"MapExports", "MAPINFO:EXPORTS", "", "true", 0},
  {"AssemblyDebug", "ASSEMBLYDEBUG:DISABLE", "", "false", 0},
  {"AssemblyDebug", "ASSEMBLYDEBUG", "", "true", 0},
  {"LargeAddressAware", "LARGEADDRESSAWARE:NO", "", "false", 0},
  {"LargeAddressAware", "LARGEADDRESSAWARE", "", "true", 0},
  {"TerminalServerAware", "TSAWARE:NO", "", "false", 0},
  {"TerminalServerAware", "TSAWARE", "", "true", 0},
  {"SwapRunFromCD", "SWAPRUN:CD", "", "true", 0},
  {"SwapRunFromNET", "SWAPRUN:NET", "", "true", 0},
  {"OptimizeReferences", "OPT:NOREF", "", "false", 0},
  {"OptimizeReferences", "OPT:REF", "", "true", 0},
  {"EnableCOMDATFolding", "OPT:NOICF", "", "false", 0},
  {"EnableCOMDATFolding", "OPT:ICF", "", "true", 0},
  {"IgnoreEmbeddedIDL", "IGNOREIDL", "", "true", 0},
  {"AppContainer", "APPCONTAINER", "", "true", 0},
  {"WindowsMetadataLinkDelaySign", "WINMDDELAYSIGN:NO", "", "false", 0},
  {"WindowsMetadataLinkDelaySign", "WINMDDELAYSIGN", "", "true", 0},
  {"NoEntryPoint", "NOENTRY", "", "true", 0},
  {"SetChecksum", "RELEASE", "", "true", 0},
  {"RandomizedBaseAddress", "DYNAMICBASE:NO", "", "false", 0},
  {"RandomizedBaseAddress", "DYNAMICBASE", "", "true", 0},
  {"FixedBaseAddress", "FIXED:NO", "", "false", 0},
  {"FixedBaseAddress", "FIXED", "", "true", 0},
  {"DataExecutionPrevention", "NXCOMPAT:NO", "", "false", 0},
  {"DataExecutionPrevention", "NXCOMPAT", "", "true", 0},
  {"TurnOffAssemblyGeneration", "NOASSEMBLY", "", "true", 0},
  {"SupportUnloadOfDelayLoadedDLL", "DELAY:UNLOAD", "", "true", 0},
  {"SupportNobindOfDelayLoadedDLL", "DELAY:NOBIND", "", "true", 0},
  {"Profile", "PROFILE", "", "true", 0},
  {"LinkDelaySign", "DELAYSIGN:NO", "", "false", 0},
  {"LinkDelaySign", "DELAYSIGN", "", "true", 0},
  {"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK:NO", "", "false", 0},
  {"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK", "", "true", 0},
  {"DetectOneDefinitionRule", "ODR", "", "true", 0},
  {"ImageHasSafeExceptionHandlers", "SAFESEH:NO", "", "false", 0},
  {"ImageHasSafeExceptionHandlers", "SAFESEH", "", "true", 0},
  {"LinkDLL", "DLL", "", "true", 0},

  //Bool Properties With Argument
  {"EnableUAC", "MANIFESTUAC:NO", "", "false",
   cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  {"EnableUAC", "MANIFESTUAC:NO", "Enable User Account Control (UAC)", "",
   cmVS7FlagTable::UserValueRequired},
  {"EnableUAC", "MANIFESTUAC:", "", "true",
   cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  {"UACUIAccess", "MANIFESTUAC:", "Enable User Account Control (UAC)", "",
   cmVS7FlagTable::UserValueRequired},
  {"GenerateMapFile", "MAP", "", "true",
   cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  {"MapFileName", "MAP:", "Generate Map File", "",
   cmVS7FlagTable::UserValueRequired},

  //String List Properties
  {"AdditionalLibraryDirectories", "LIBPATH:",
   "Additional Library Directories",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  // Skip [AdditionalDependencies] - no command line Switch.
  {"IgnoreSpecificDefaultLibraries", "NODEFAULTLIB:",
   "Ignore Specific Default Libraries",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"AddModuleNamesToAssembly", "ASSEMBLYMODULE:",
   "Add Module to Assembly",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"EmbedManagedResourceFile", "ASSEMBLYRESOURCE:",
   "Embed Managed Resource File",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"ForceSymbolReferences", "INCLUDE:",
   "Force Symbol References",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"DelayLoadDLLs", "DELAYLOAD:",
   "Delay Loaded Dlls",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"AssemblyLinkResource", "ASSEMBLYLINKRESOURCE:",
   "Assembly Link Resource",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"AdditionalManifestDependencies", "MANIFESTDEPENDENCY:",
   "Additional Manifest Dependencies",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  {"ManifestInput", "manifestinput:",
   "Manifest Input",
   "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},

  //String Properties
  {"OutputFile", "OUT:",
   "Output File",
   "", cmVS7FlagTable::UserValue},
  {"Version", "VERSION:",
   "Version",
   "", cmVS7FlagTable::UserValue},
  {"SpecifySectionAttributes", "SECTION:",
   "Specify Section Attributes",
   "", cmVS7FlagTable::UserValue},
  {"MSDOSStubFileName", "STUB:",
   "MS-DOS Stub File Name",
   "", cmVS7FlagTable::UserValue},
  // Skip [TrackerLogDirectory] - no command line Switch.
  {"ModuleDefinitionFile", "DEF:",
   "Module Definition File",
   "", cmVS7FlagTable::UserValue},
  {"ManifestFile", "ManifestFile:",
   "Manifest File",
   "", cmVS7FlagTable::UserValue},
  {"ProgramDatabaseFile", "PDB:",
   "Generate Program Database File",
   "", cmVS7FlagTable::UserValue},
  {"StripPrivateSymbols", "PDBSTRIPPED:",
   "Strip Private Symbols",
   "", cmVS7FlagTable::UserValue},
  // Skip [MapFileName] - no command line Switch.
  // Skip [MinimumRequiredVersion] - no command line Switch.
  {"HeapReserveSize", "HEAP:",
   "Heap Reserve Size",
   "", cmVS7FlagTable::UserValue},
  // Skip [HeapCommitSize] - no command line Switch.
  {"StackReserveSize", "STACK:",
   "Stack Reserve Size",
   "", cmVS7FlagTable::UserValue},
  // Skip [StackCommitSize] - no command line Switch.
  {"FunctionOrder", "ORDER:@",
   "Function Order",
   "", cmVS7FlagTable::UserValue},
  {"ProfileGuidedDatabase", "PGD:",
   "Profile Guided Database",
   "", cmVS7FlagTable::UserValue},
  {"MidlCommandFile", "MIDL:@",
   "MIDL Commands",
   "", cmVS7FlagTable::UserValue},
  {"MergedIDLBaseFileName", "IDLOUT:",
   "Merged IDL Base File Name",
   "", cmVS7FlagTable::UserValue},
  {"TypeLibraryFile", "TLBOUT:",
   "Type Library",
   "", cmVS7FlagTable::UserValue},
  {"WindowsMetadataFile", "WINMDFILE:",
   "Windows Metadata File",
   "", cmVS7FlagTable::UserValue},
  {"WindowsMetadataLinkKeyFile", "WINMDKEYFILE:",
   "Windows Metadata Key File",
   "", cmVS7FlagTable::UserValue},
  {"WindowsMetadataKeyContainer", "WINMDKEYCONTAINER:",
   "Windows Metadata Key Container",
   "", cmVS7FlagTable::UserValue},
  {"EntryPointSymbol", "ENTRY:",
   "Entry Point",
   "", cmVS7FlagTable::UserValue},
  {"BaseAddress", "BASE:",
   "Base Address",
   "", cmVS7FlagTable::UserValue},
  {"ImportLibrary", "IMPLIB:",
   "Import Library",
   "", cmVS7FlagTable::UserValue},
  {"MergeSections", "MERGE:",
   "Merge Sections",
   "", cmVS7FlagTable::UserValue},
  {"LinkKeyFile", "KEYFILE:",
   "Key File",
   "", cmVS7FlagTable::UserValue},
  {"KeyContainer", "KEYCONTAINER:",
   "Key Container",
   "", cmVS7FlagTable::UserValue},
  // Skip [AdditionalOptions] - no command line Switch.
  {0,0,0,0,0}
};
