Commit e99d7b1c authored by Brad King's avatar Brad King
Browse files

VS12: Generate flag tables from MSBuild v120 tool files

Run cmparseMSBuildXML.py on cl.xml, lib.xml, and link.xml to generate
our flag tables:

 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/v120/1033/cl.xml" > cmVS12CLFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/v120/1033/lib.xml" > cmVS12LibFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/v120/1033/link.xml" > cmVS12LinkFlagTable.h

Fix up the declaration names at the top of each file.  Finally, teach
cmVisualStudio10TargetGenerator to select the version of the table
matching the version of VS.
parent 77ac9b8b
static cmVS7FlagTable cmVS12CLFlagTable[] =
{
//Enum Properties
{"DebugInformationFormat", "",
"None", "None", 0},
{"DebugInformationFormat", "Z7",
"C7 compatible", "OldStyle", 0},
{"DebugInformationFormat", "Zi",
"Program Database", "ProgramDatabase", 0},
{"DebugInformationFormat", "ZI",
"Program Database for Edit And Continue", "EditAndContinue", 0},
{"WarningLevel", "W0",
"Turn Off All Warnings", "TurnOffAllWarnings", 0},
{"WarningLevel", "W1",
"Level1", "Level1", 0},
{"WarningLevel", "W2",
"Level2", "Level2", 0},
{"WarningLevel", "W3",
"Level3", "Level3", 0},
{"WarningLevel", "W4",
"Level4", "Level4", 0},
{"WarningLevel", "Wall",
"EnableAllWarnings", "EnableAllWarnings", 0},
{"Optimization", "",
"Custom", "Custom", 0},
{"Optimization", "Od",
"Disabled", "Disabled", 0},
{"Optimization", "O1",
"Minimize Size", "MinSpace", 0},
{"Optimization", "O2",
"Maximize Speed", "MaxSpeed", 0},
{"Optimization", "Ox",
"Full Optimization", "Full", 0},
{"InlineFunctionExpansion", "",
"Default", "Default", 0},
{"InlineFunctionExpansion", "Ob0",
"Disabled", "Disabled", 0},
{"InlineFunctionExpansion", "Ob1",
"Only __inline", "OnlyExplicitInline", 0},
{"InlineFunctionExpansion", "Ob2",
"Any Suitable", "AnySuitable", 0},
{"FavorSizeOrSpeed", "Os",
"Favor small code", "Size", 0},
{"FavorSizeOrSpeed", "Ot",
"Favor fast code", "Speed", 0},
{"FavorSizeOrSpeed", "",
"Neither", "Neither", 0},
{"ExceptionHandling", "EHa",
"Yes with SEH Exceptions", "Async", 0},
{"ExceptionHandling", "EHsc",
"Yes", "Sync", 0},
{"ExceptionHandling", "EHs",
"Yes with Extern C functions", "SyncCThrow", 0},
{"ExceptionHandling", "",
"No", "false", 0},
{"BasicRuntimeChecks", "RTCs",
"Stack Frames", "StackFrameRuntimeCheck", 0},
{"BasicRuntimeChecks", "RTCu",
"Uninitialized variables", "UninitializedLocalUsageCheck", 0},
{"BasicRuntimeChecks", "RTC1",
"Both (/RTC1, equiv. to /RTCsu)", "EnableFastChecks", 0},
{"BasicRuntimeChecks", "",
"Default", "Default", 0},
{"RuntimeLibrary", "MT",
"Multi-threaded", "MultiThreaded", 0},
{"RuntimeLibrary", "MTd",
"Multi-threaded Debug", "MultiThreadedDebug", 0},
{"RuntimeLibrary", "MD",
"Multi-threaded DLL", "MultiThreadedDLL", 0},
{"RuntimeLibrary", "MDd",
"Multi-threaded Debug DLL", "MultiThreadedDebugDLL", 0},
{"StructMemberAlignment", "Zp1",
"1 Byte", "1Byte", 0},
{"StructMemberAlignment", "Zp2",
"2 Bytes", "2Bytes", 0},
{"StructMemberAlignment", "Zp4",
"4 Byte", "4Bytes", 0},
{"StructMemberAlignment", "Zp8",
"8 Bytes", "8Bytes", 0},
{"StructMemberAlignment", "Zp16",
"16 Bytes", "16Bytes", 0},
{"StructMemberAlignment", "",
"Default", "Default", 0},
{"BufferSecurityCheck", "GS-",
"Disable Security Check", "false", 0},
{"BufferSecurityCheck", "GS",
"Enable Security Check", "true", 0},
{"EnableEnhancedInstructionSet", "arch:SSE",
"Streaming SIMD Extensions", "StreamingSIMDExtensions", 0},
{"EnableEnhancedInstructionSet", "arch:SSE2",
"Streaming SIMD Extensions 2", "StreamingSIMDExtensions2", 0},
{"EnableEnhancedInstructionSet", "arch:AVX",
"Advanced Vector Extensions", "AdvancedVectorExtensions", 0},
{"EnableEnhancedInstructionSet", "arch:IA32",
"No Enhanced Instructions", "NoExtensions", 0},
{"EnableEnhancedInstructionSet", "",
"Not Set", "NotSet", 0},
{"FloatingPointModel", "fp:precise",
"Precise", "Precise", 0},
{"FloatingPointModel", "fp:strict",
"Strict", "Strict", 0},
{"FloatingPointModel", "fp:fast",
"Fast", "Fast", 0},
{"PrecompiledHeader", "Yc",
"Create", "Create",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"PrecompiledHeader", "Yu",
"Use", "Use",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"PrecompiledHeader", "",
"Not Using Precompiled Headers", "NotUsing", 0},
{"AssemblerOutput", "",
"No Listing", "NoListing", 0},
{"AssemblerOutput", "FA",
"Assembly-Only Listing", "AssemblyCode", 0},
{"AssemblerOutput", "FAc",
"Assembly With Machine Code", "AssemblyAndMachineCode", 0},
{"AssemblerOutput", "FAs",
"Assembly With Source Code", "AssemblyAndSourceCode", 0},
{"AssemblerOutput", "FAcs",
"Assembly, Machine Code and Source", "All", 0},
{"CallingConvention", "Gd",
"__cdecl", "Cdecl", 0},
{"CallingConvention", "Gr",
"__fastcall", "FastCall", 0},
{"CallingConvention", "Gz",
"__stdcall", "StdCall", 0},
{"CallingConvention", "Gv",
"__vectorcall", "VectorCall", 0},
{"CompileAs", "",
"Default", "Default", 0},
{"CompileAs", "TC",
"Compile as C Code", "CompileAsC", 0},
{"CompileAs", "TP",
"Compile as C++ Code", "CompileAsCpp", 0},
{"ErrorReporting", "errorReport:none",
"Do Not Send Report", "None", 0},
{"ErrorReporting", "errorReport:prompt",
"Prompt Immediately", "Prompt", 0},
{"ErrorReporting", "errorReport:queue",
"Queue For Next Login", "Queue", 0},
{"ErrorReporting", "errorReport:send",
"Send Automatically", "Send", 0},
{"CompileAsManaged", "",
"No Common Language RunTime Support", "false", 0},
{"CompileAsManaged", "clr",
"Common Language RunTime Support", "true", 0},
{"CompileAsManaged", "clr:pure",
"Pure MSIL Common Language RunTime Support", "Pure", 0},
{"CompileAsManaged", "clr:safe",
"Safe MSIL Common Language RunTime Support", "Safe", 0},
{"CompileAsManaged", "clr:oldSyntax",
"Common Language RunTime Support, Old Syntax", "OldSyntax", 0},
//Bool Properties
{"CompileAsWinRT", "ZW", "", "true", 0},
{"WinRTNoStdLib", "ZW:nostdlib", "", "true", 0},
{"SuppressStartupBanner", "nologo", "", "true", 0},
{"TreatWarningAsError", "WX-", "", "false", 0},
{"TreatWarningAsError", "WX", "", "true", 0},
{"SDLCheck", "sdl-", "", "false", 0},
{"SDLCheck", "sdl", "", "true", 0},
{"IntrinsicFunctions", "Oi", "", "true", 0},
{"OmitFramePointers", "Oy-", "", "false", 0},
{"OmitFramePointers", "Oy", "", "true", 0},
{"EnableFiberSafeOptimizations", "GT", "", "true", 0},
{"WholeProgramOptimization", "GL", "", "true", 0},
{"UndefineAllPreprocessorDefinitions", "u", "", "true", 0},
{"IgnoreStandardIncludePath", "X", "", "true", 0},
{"PreprocessToFile", "P", "", "true", 0},
{"PreprocessSuppressLineNumbers", "EP", "", "true", 0},
{"PreprocessKeepComments", "C", "", "true", 0},
{"StringPooling", "GF-", "", "false", 0},
{"StringPooling", "GF", "", "true", 0},
{"MinimalRebuild", "Gm-", "", "false", 0},
{"MinimalRebuild", "Gm", "", "true", 0},
{"SmallerTypeCheck", "RTCc", "", "true", 0},
{"FunctionLevelLinking", "Gy-", "", "false", 0},
{"FunctionLevelLinking", "Gy", "", "true", 0},
{"EnableParallelCodeGeneration", "Qpar-", "", "false", 0},
{"EnableParallelCodeGeneration", "Qpar", "", "true", 0},
{"FloatingPointExceptions", "fp:except-", "", "false", 0},
{"FloatingPointExceptions", "fp:except", "", "true", 0},
{"CreateHotpatchableImage", "hotpatch", "", "true", 0},
{"DisableLanguageExtensions", "Za", "", "true", 0},
{"TreatWChar_tAsBuiltInType", "Zc:wchar_t-", "", "false", 0},
{"TreatWChar_tAsBuiltInType", "Zc:wchar_t", "", "true", 0},
{"ForceConformanceInForLoopScope", "Zc:forScope-", "", "false", 0},
{"ForceConformanceInForLoopScope", "Zc:forScope", "", "true", 0},
{"RuntimeTypeInfo", "GR-", "", "false", 0},
{"RuntimeTypeInfo", "GR", "", "true", 0},
{"OpenMPSupport", "openmp-", "", "false", 0},
{"OpenMPSupport", "openmp", "", "true", 0},
{"ExpandAttributedSource", "Fx", "", "true", 0},
{"UseUnicodeForAssemblerListing", "FAu", "", "true", 0},
{"ShowIncludes", "showIncludes", "", "true", 0},
{"EnablePREfast", "analyze-", "", "false", 0},
{"EnablePREfast", "analyze", "", "true", 0},
{"UseFullPaths", "FC", "", "true", 0},
{"OmitDefaultLibName", "Zl", "", "true", 0},
//Bool Properties With Argument
{"MultiProcessorCompilation", "MP", "", "true",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"ProcessorNumber", "MP", "Multi-processor Compilation", "",
cmVS7FlagTable::UserValueRequired},
{"GenerateXMLDocumentationFiles", "doc", "", "true",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"XMLDocumentationFileName", "doc", "Generate XML Documentation Files", "",
cmVS7FlagTable::UserValueRequired},
{"BrowseInformation", "FR", "", "true",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"BrowseInformationFile", "FR", "Enable Browse Information", "",
cmVS7FlagTable::UserValueRequired},
//String List Properties
{"AdditionalIncludeDirectories", "I",
"Additional Include Directories",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"AdditionalUsingDirectories", "AI",
"Additional #using Directories",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"PreprocessorDefinitions", "D ",
"Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"UndefinePreprocessorDefinitions", "U",
"Undefine Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"DisableSpecificWarnings", "wd",
"Disable Specific Warnings",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"ForcedIncludeFiles", "FI",
"Forced Include File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"ForcedUsingFiles", "FU",
"Forced #using File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"PREfastAdditionalOptions", "analyze:",
"Additional Code Analysis Native options",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"PREfastAdditionalPlugins", "analyze:plugin",
"Additional Code Analysis Native plugins",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"TreatSpecificWarningsAsErrors", "we",
"Treat Specific Warnings As Errors",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
//String Properties
// Skip [TrackerLogDirectory] - no command line Switch.
{"PreprocessOutputPath", "Fi",
"Preprocess Output Path",
"", cmVS7FlagTable::UserValue},
{"PrecompiledHeaderFile", "Yc",
"Precompiled Header Name",
"", cmVS7FlagTable::UserValueRequired},
{"PrecompiledHeaderFile", "Yu",
"Precompiled Header Name",
"", cmVS7FlagTable::UserValueRequired},
{"PrecompiledHeaderOutputFile", "Fp",
"Precompiled Header Output File",
"", cmVS7FlagTable::UserValue},
{"AssemblerListingLocation", "Fa",
"ASM List Location",
"", cmVS7FlagTable::UserValue},
{"ObjectFileName", "Fo",
"Object File Name",
"", cmVS7FlagTable::UserValue},
{"ProgramDataBaseFileName", "Fd",
"Program Database File Name",
"", cmVS7FlagTable::UserValue},
// Skip [XMLDocumentationFileName] - no command line Switch.
// Skip [BrowseInformationFile] - no command line Switch.
{"PREfastLog", "analyze:log ",
"Code Analysis Log",
"", cmVS7FlagTable::UserValue},
// Skip [AdditionalOptions] - no command line Switch.
{0,0,0,0,0}
};
static cmVS7FlagTable cmVS12LibFlagTable[] =
{
//Enum Properties
{"ErrorReporting", "ERRORREPORT:PROMPT",
"PromptImmediately", "PromptImmediately", 0},
{"ErrorReporting", "ERRORREPORT:QUEUE",
"Queue For Next Login", "QueueForNextLogin", 0},
{"ErrorReporting", "ERRORREPORT:SEND",
"Send Error Report", "SendErrorReport", 0},
{"ErrorReporting", "ERRORREPORT:NONE",
"No Error Report", "NoErrorReport", 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},
{"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:WINDOWSCE",
"WindowsCE", "WindowsCE", 0},
{"SubSystem", "SUBSYSTEM:POSIX",
"POSIX", "POSIX", 0},
//Bool Properties
{"SuppressStartupBanner", "NOLOGO", "", "true", 0},
{"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "", "true", 0},
{"TreatLibWarningAsErrors", "WX:NO", "", "false", 0},
{"TreatLibWarningAsErrors", "WX", "", "true", 0},
{"Verbose", "VERBOSE", "", "true", 0},
{"LinkTimeCodeGeneration", "LTCG", "", "true", 0},
//Bool Properties With Argument
//String List Properties
// Skip [AdditionalDependencies] - no command line Switch.
{"AdditionalLibraryDirectories", "LIBPATH:",
"Additional Library Directories",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IgnoreSpecificDefaultLibraries", "NODEFAULTLIB:",
"Ignore Specific Default Libraries",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"ExportNamedFunctions", "EXPORT:",
"Export Named Functions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"RemoveObjects", "REMOVE:",
"Remove Objects",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
//String Properties
{"OutputFile", "OUT:",
"Output File",
"", cmVS7FlagTable::UserValue},
{"ModuleDefinitionFile", "DEF:",
"Module Definition File Name",
"", cmVS7FlagTable::UserValue},
{"ForceSymbolReferences", "INCLUDE:",
"Force Symbol References",
"", cmVS7FlagTable::UserValue},
{"DisplayLibrary", "LIST:",
"Display Library to standard output",
"", cmVS7FlagTable::UserValue},
// Skip [MinimumRequiredVersion] - no command line Switch.
{"Name", "NAME:",
"Name",
"", cmVS7FlagTable::UserValue},
// Skip [AdditionalOptions] - no command line Switch.
// Skip [TrackerLogDirectory] - no command line Switch.
{0,0,0,0,0}
};
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},