| 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 }, |
| |
| // correct flags for uac should be /MANIFESTUAC, but some projects already |
| // use this bug to access uac field, so keep these for compatibility |
| { "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 }, |
| |
| // correct flags for uac should be /MANIFESTUAC, but some projects already |
| // use this bug to access uac field, so keep these for compatibility |
| { "UACUIAccess", "uiAccess='false'", "", "false", 0 }, |
| { "UACUIAccess", "uiAccess='true'", "", "true", 0 }, |
| |
| { "ManifestEmbed", "manifest:embed", "", "true", 0 }, |
| { "GenerateDebugInformation", "DEBUG", "", "true", |
| cmVS7FlagTable::CaseInsensitive }, |
| { "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:", "", "", |
| cmVS7FlagTable::UserValueRequired | cmVS7FlagTable::SpaceAppendable }, |
| { "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 } |
| }; |