344 lines
13 KiB
C
344 lines
13 KiB
C
|
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}
|
||
|
};
|