cmVS14LinkFlagTable.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. static cmVS7FlagTable cmVS14LinkFlagTable[] = {
  2. // Enum Properties
  3. { "ShowProgress", "", "Not Set", "NotSet", 0 },
  4. { "ShowProgress", "VERBOSE", "Display all progress messages", "LinkVerbose",
  5. 0 },
  6. { "ShowProgress", "VERBOSE:Lib", "For Libraries Searched", "LinkVerboseLib",
  7. 0 },
  8. { "ShowProgress", "VERBOSE:ICF",
  9. "About COMDAT folding during optimized linking", "LinkVerboseICF", 0 },
  10. { "ShowProgress", "VERBOSE:REF",
  11. "About data removed during optimized linking", "LinkVerboseREF", 0 },
  12. { "ShowProgress", "VERBOSE:SAFESEH", "About Modules incompatible with SEH",
  13. "LinkVerboseSAFESEH", 0 },
  14. { "ShowProgress", "VERBOSE:CLR",
  15. "About linker activity related to managed code", "LinkVerboseCLR", 0 },
  16. { "ForceFileOutput", "FORCE", "Enabled", "Enabled", 0 },
  17. { "ForceFileOutput", "FORCE:MULTIPLE", "Multiply Defined Symbol Only",
  18. "MultiplyDefinedSymbolOnly", 0 },
  19. { "ForceFileOutput", "FORCE:UNRESOLVED", "Undefined Symbol Only",
  20. "UndefinedSymbolOnly", 0 },
  21. { "CreateHotPatchableImage", "FUNCTIONPADMIN", "Enabled", "Enabled", 0 },
  22. { "CreateHotPatchableImage", "FUNCTIONPADMIN:5", "X86 Image Only",
  23. "X86Image", 0 },
  24. { "CreateHotPatchableImage", "FUNCTIONPADMIN:6", "X64 Image Only",
  25. "X64Image", 0 },
  26. { "CreateHotPatchableImage", "FUNCTIONPADMIN:16", "Itanium Image Only",
  27. "ItaniumImage", 0 },
  28. { "UACExecutionLevel", "level='asInvoker'", "asInvoker", "AsInvoker", 0 },
  29. { "UACExecutionLevel", "level='highestAvailable'", "highestAvailable",
  30. "HighestAvailable", 0 },
  31. { "UACExecutionLevel", "level='requireAdministrator'",
  32. "requireAdministrator", "RequireAdministrator", 0 },
  33. { "GenerateDebugInformation", "DEBUG:FASTLINK",
  34. "Optimize for faster linking", "DebugFastLink",
  35. cmVS7FlagTable::CaseInsensitive },
  36. { "GenerateDebugInformation", "DEBUG", "Optimize for debugging", "Debug",
  37. cmVS7FlagTable::CaseInsensitive },
  38. { "SubSystem", "", "Not Set", "NotSet", 0 },
  39. { "SubSystem", "SUBSYSTEM:CONSOLE", "Console", "Console", 0 },
  40. { "SubSystem", "SUBSYSTEM:WINDOWS", "Windows", "Windows", 0 },
  41. { "SubSystem", "SUBSYSTEM:NATIVE", "Native", "Native", 0 },
  42. { "SubSystem", "SUBSYSTEM:EFI_APPLICATION", "EFI Application",
  43. "EFI Application", 0 },
  44. { "SubSystem", "SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER",
  45. "EFI Boot Service Driver", "EFI Boot Service Driver", 0 },
  46. { "SubSystem", "SUBSYSTEM:EFI_ROM", "EFI ROM", "EFI ROM", 0 },
  47. { "SubSystem", "SUBSYSTEM:EFI_RUNTIME_DRIVER", "EFI Runtime", "EFI Runtime",
  48. 0 },
  49. { "SubSystem", "SUBSYSTEM:POSIX", "POSIX", "POSIX", 0 },
  50. { "Driver", "", "Not Set", "NotSet", 0 },
  51. { "Driver", "Driver", "Driver", "Driver", 0 },
  52. { "Driver", "DRIVER:UPONLY", "UP Only", "UpOnly", 0 },
  53. { "Driver", "DRIVER:WDM", "WDM", "WDM", 0 },
  54. { "LinkTimeCodeGeneration", "", "Default", "Default", 0 },
  55. { "LinkTimeCodeGeneration", "LTCG:incremental",
  56. "Use Fast Link Time Code Generation", "UseFastLinkTimeCodeGeneration", 0 },
  57. { "LinkTimeCodeGeneration", "LTCG", "Use Link Time Code Generation",
  58. "UseLinkTimeCodeGeneration", 0 },
  59. { "LinkTimeCodeGeneration", "LTCG:PGInstrument",
  60. "Profile Guided Optimization - Instrument", "PGInstrument", 0 },
  61. { "LinkTimeCodeGeneration", "LTCG:PGOptimize",
  62. "Profile Guided Optimization - Optimization", "PGOptimization", 0 },
  63. { "LinkTimeCodeGeneration", "LTCG:PGUpdate",
  64. "Profile Guided Optimization - Update", "PGUpdate", 0 },
  65. { "GenerateWindowsMetadata", "WINMD", "Yes", "true", 0 },
  66. { "GenerateWindowsMetadata", "WINMD:NO", "No", "false", 0 },
  67. { "WindowsMetadataSignHash", "WINMDSIGNHASH:SHA1", "SHA1", "SHA1", 0 },
  68. { "WindowsMetadataSignHash", "WINMDSIGNHASH:SHA256", "SHA256", "SHA256", 0 },
  69. { "WindowsMetadataSignHash", "WINMDSIGNHASH:SHA384", "SHA384", "SHA384", 0 },
  70. { "WindowsMetadataSignHash", "WINMDSIGNHASH:SHA512", "SHA512", "SHA512", 0 },
  71. { "TargetMachine", "", "Not Set", "NotSet", 0 },
  72. { "TargetMachine", "MACHINE:ARM", "MachineARM", "MachineARM", 0 },
  73. { "TargetMachine", "MACHINE:EBC", "MachineEBC", "MachineEBC", 0 },
  74. { "TargetMachine", "MACHINE:IA64", "MachineIA64", "MachineIA64", 0 },
  75. { "TargetMachine", "MACHINE:MIPS", "MachineMIPS", "MachineMIPS", 0 },
  76. { "TargetMachine", "MACHINE:MIPS16", "MachineMIPS16", "MachineMIPS16", 0 },
  77. { "TargetMachine", "MACHINE:MIPSFPU", "MachineMIPSFPU", "MachineMIPSFPU",
  78. 0 },
  79. { "TargetMachine", "MACHINE:MIPSFPU16", "MachineMIPSFPU16",
  80. "MachineMIPSFPU16", 0 },
  81. { "TargetMachine", "MACHINE:SH4", "MachineSH4", "MachineSH4", 0 },
  82. { "TargetMachine", "MACHINE:THUMB", "MachineTHUMB", "MachineTHUMB", 0 },
  83. { "TargetMachine", "MACHINE:X64", "MachineX64", "MachineX64", 0 },
  84. { "TargetMachine", "MACHINE:X86", "MachineX86", "MachineX86", 0 },
  85. { "CLRThreadAttribute", "CLRTHREADATTRIBUTE:MTA", "MTA threading attribute",
  86. "MTAThreadingAttribute", 0 },
  87. { "CLRThreadAttribute", "CLRTHREADATTRIBUTE:STA", "STA threading attribute",
  88. "STAThreadingAttribute", 0 },
  89. { "CLRThreadAttribute", "CLRTHREADATTRIBUTE:NONE",
  90. "Default threading attribute", "DefaultThreadingAttribute", 0 },
  91. { "CLRImageType", "CLRIMAGETYPE:IJW", "Force IJW image", "ForceIJWImage",
  92. 0 },
  93. { "CLRImageType", "CLRIMAGETYPE:PURE", "Force Pure IL Image",
  94. "ForcePureILImage", 0 },
  95. { "CLRImageType", "CLRIMAGETYPE:SAFE", "Force Safe IL Image",
  96. "ForceSafeILImage", 0 },
  97. { "CLRImageType", "", "Default image type", "Default", 0 },
  98. { "SignHash", "CLRSIGNHASH:SHA1", "SHA1", "SHA1", 0 },
  99. { "SignHash", "CLRSIGNHASH:SHA256", "SHA256", "SHA256", 0 },
  100. { "SignHash", "CLRSIGNHASH:SHA384", "SHA384", "SHA384", 0 },
  101. { "SignHash", "CLRSIGNHASH:SHA512", "SHA512", "SHA512", 0 },
  102. { "LinkErrorReporting", "ERRORREPORT:PROMPT", "PromptImmediately",
  103. "PromptImmediately", 0 },
  104. { "LinkErrorReporting", "ERRORREPORT:QUEUE", "Queue For Next Login",
  105. "QueueForNextLogin", 0 },
  106. { "LinkErrorReporting", "ERRORREPORT:SEND", "Send Error Report",
  107. "SendErrorReport", 0 },
  108. { "LinkErrorReporting", "ERRORREPORT:NONE", "No Error Report",
  109. "NoErrorReport", 0 },
  110. { "CLRSupportLastError", "CLRSupportLastError", "Enabled", "Enabled", 0 },
  111. { "CLRSupportLastError", "CLRSupportLastError:NO", "Disabled", "Disabled",
  112. 0 },
  113. { "CLRSupportLastError", "CLRSupportLastError:SYSTEMDLL", "System Dlls Only",
  114. "SystemDlls", 0 },
  115. { "LinkControlFlowGuard", "guard:cf", "Enable Security Check with Guard",
  116. "Guard", 0 },
  117. // Bool Properties
  118. { "LinkIncremental", "INCREMENTAL:NO", "", "false", 0 },
  119. { "LinkIncremental", "INCREMENTAL", "", "true", 0 },
  120. { "SuppressStartupBanner", "NOLOGO", "", "true", 0 },
  121. { "LinkStatus", "LTCG:NOSTATUS", "", "false", 0 },
  122. { "LinkStatus", "LTCG:STATUS", "", "true", 0 },
  123. { "PreventDllBinding", "ALLOWBIND:NO", "", "false", 0 },
  124. { "PreventDllBinding", "ALLOWBIND", "", "true", 0 },
  125. { "TreatLinkerWarningAsErrors", "WX:NO", "", "false", 0 },
  126. { "TreatLinkerWarningAsErrors", "WX", "", "true", 0 },
  127. { "IgnoreAllDefaultLibraries", "NODEFAULTLIB", "", "true", 0 },
  128. { "GenerateManifest", "MANIFEST:NO", "", "false", 0 },
  129. { "GenerateManifest", "MANIFEST", "", "true", 0 },
  130. { "AllowIsolation", "ALLOWISOLATION:NO", "", "false", 0 },
  131. { "UACUIAccess", "uiAccess='false'", "", "false", 0 },
  132. { "UACUIAccess", "uiAccess='true'", "", "true", 0 },
  133. { "ManifestEmbed", "manifest:embed", "", "true", 0 },
  134. { "MapExports", "MAPINFO:EXPORTS", "", "true", 0 },
  135. { "AssemblyDebug", "ASSEMBLYDEBUG:DISABLE", "", "false", 0 },
  136. { "AssemblyDebug", "ASSEMBLYDEBUG", "", "true", 0 },
  137. { "LargeAddressAware", "LARGEADDRESSAWARE:NO", "", "false", 0 },
  138. { "LargeAddressAware", "LARGEADDRESSAWARE", "", "true", 0 },
  139. { "TerminalServerAware", "TSAWARE:NO", "", "false", 0 },
  140. { "TerminalServerAware", "TSAWARE", "", "true", 0 },
  141. { "SwapRunFromCD", "SWAPRUN:CD", "", "true", 0 },
  142. { "SwapRunFromNET", "SWAPRUN:NET", "", "true", 0 },
  143. { "OptimizeReferences", "OPT:NOREF", "", "false", 0 },
  144. { "OptimizeReferences", "OPT:REF", "", "true", 0 },
  145. { "EnableCOMDATFolding", "OPT:NOICF", "", "false", 0 },
  146. { "EnableCOMDATFolding", "OPT:ICF", "", "true", 0 },
  147. { "IgnoreEmbeddedIDL", "IGNOREIDL", "", "true", 0 },
  148. { "AppContainer", "APPCONTAINER", "", "true", 0 },
  149. { "WindowsMetadataLinkDelaySign", "WINMDDELAYSIGN:NO", "", "false", 0 },
  150. { "WindowsMetadataLinkDelaySign", "WINMDDELAYSIGN", "", "true", 0 },
  151. { "NoEntryPoint", "NOENTRY", "", "true", 0 },
  152. { "SetChecksum", "RELEASE", "", "true", 0 },
  153. { "RandomizedBaseAddress", "DYNAMICBASE:NO", "", "false", 0 },
  154. { "RandomizedBaseAddress", "DYNAMICBASE", "", "true", 0 },
  155. { "FixedBaseAddress", "FIXED:NO", "", "false", 0 },
  156. { "FixedBaseAddress", "FIXED", "", "true", 0 },
  157. { "DataExecutionPrevention", "NXCOMPAT:NO", "", "false", 0 },
  158. { "DataExecutionPrevention", "NXCOMPAT", "", "true", 0 },
  159. { "TurnOffAssemblyGeneration", "NOASSEMBLY", "", "true", 0 },
  160. { "SupportUnloadOfDelayLoadedDLL", "DELAY:UNLOAD", "", "true", 0 },
  161. { "SupportNobindOfDelayLoadedDLL", "DELAY:NOBIND", "", "true", 0 },
  162. { "Profile", "PROFILE", "", "true", 0 },
  163. { "LinkDelaySign", "DELAYSIGN:NO", "", "false", 0 },
  164. { "LinkDelaySign", "DELAYSIGN", "", "true", 0 },
  165. { "CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK:NO", "", "false", 0 },
  166. { "CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK", "", "true", 0 },
  167. { "DetectOneDefinitionRule", "ODR", "", "true", 0 },
  168. { "ImageHasSafeExceptionHandlers", "SAFESEH:NO", "", "false", 0 },
  169. { "ImageHasSafeExceptionHandlers", "SAFESEH", "", "true", 0 },
  170. { "LinkDLL", "DLL", "", "true", 0 },
  171. // Bool Properties With Argument
  172. { "EnableUAC", "MANIFESTUAC:NO", "", "false", 0 },
  173. { "EnableUAC", "MANIFESTUAC:", "", "true",
  174. cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
  175. { "UACUIAccess", "MANIFESTUAC:", "Enable User Account Control (UAC)", "",
  176. cmVS7FlagTable::UserValueRequired },
  177. { "GenerateMapFile", "MAP", "", "true",
  178. cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
  179. { "MapFileName", "MAP:", "Generate Map File", "",
  180. cmVS7FlagTable::UserValueRequired },
  181. // String List Properties
  182. { "AdditionalLibraryDirectories", "LIBPATH:",
  183. "Additional Library Directories", "",
  184. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  185. { "Natvis", "NATVIS:", "Natvis files", "",
  186. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  187. // Skip [AdditionalDependencies] - no command line Switch.
  188. { "IgnoreSpecificDefaultLibraries", "NODEFAULTLIB:",
  189. "Ignore Specific Default Libraries", "",
  190. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  191. { "AddModuleNamesToAssembly", "ASSEMBLYMODULE:", "Add Module to Assembly",
  192. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  193. { "EmbedManagedResourceFile", "ASSEMBLYRESOURCE:",
  194. "Embed Managed Resource File", "",
  195. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  196. { "ForceSymbolReferences", "INCLUDE:", "Force Symbol References", "",
  197. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  198. { "DelayLoadDLLs", "DELAYLOAD:", "Delay Loaded Dlls", "",
  199. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  200. { "AssemblyLinkResource", "ASSEMBLYLINKRESOURCE:", "Assembly Link Resource",
  201. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  202. { "AdditionalManifestDependencies", "MANIFESTDEPENDENCY:",
  203. "Additional Manifest Dependencies", "",
  204. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  205. { "ManifestInput", "manifestinput:", "Manifest Input", "",
  206. cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
  207. // String Properties
  208. { "OutputFile", "OUT:", "Output File", "", cmVS7FlagTable::UserValue },
  209. { "Version", "VERSION:", "Version", "", cmVS7FlagTable::UserValue },
  210. { "SpecifySectionAttributes", "SECTION:", "Specify Section Attributes", "",
  211. cmVS7FlagTable::UserValue },
  212. { "MSDOSStubFileName", "STUB:", "MS-DOS Stub File Name", "",
  213. cmVS7FlagTable::UserValue },
  214. // Skip [TrackerLogDirectory] - no command line Switch.
  215. { "ModuleDefinitionFile", "DEF:", "Module Definition File", "",
  216. cmVS7FlagTable::UserValue },
  217. { "ManifestFile", "ManifestFile:", "Manifest File", "",
  218. cmVS7FlagTable::UserValue },
  219. { "ProgramDatabaseFile", "PDB:", "Generate Program Database File", "",
  220. cmVS7FlagTable::UserValue },
  221. { "StripPrivateSymbols", "PDBSTRIPPED:", "Strip Private Symbols", "",
  222. cmVS7FlagTable::UserValue },
  223. // Skip [MapFileName] - no command line Switch.
  224. // Skip [MinimumRequiredVersion] - no command line Switch.
  225. { "HeapReserveSize", "HEAP:", "Heap Reserve Size", "",
  226. cmVS7FlagTable::UserValue },
  227. // Skip [HeapCommitSize] - no command line Switch.
  228. { "StackReserveSize", "STACK:", "Stack Reserve Size", "",
  229. cmVS7FlagTable::UserValue },
  230. // Skip [StackCommitSize] - no command line Switch.
  231. { "FunctionOrder", "ORDER:@", "Function Order", "",
  232. cmVS7FlagTable::UserValue },
  233. { "ProfileGuidedDatabase", "PGD:", "Profile Guided Database", "",
  234. cmVS7FlagTable::UserValue },
  235. { "MidlCommandFile", "MIDL:@", "MIDL Commands", "",
  236. cmVS7FlagTable::UserValue },
  237. { "MergedIDLBaseFileName", "IDLOUT:", "Merged IDL Base File Name", "",
  238. cmVS7FlagTable::UserValue },
  239. { "TypeLibraryFile", "TLBOUT:", "Type Library", "",
  240. cmVS7FlagTable::UserValue },
  241. { "WindowsMetadataFile", "WINMDFILE:", "Windows Metadata File", "",
  242. cmVS7FlagTable::UserValue },
  243. { "WindowsMetadataLinkKeyFile", "WINMDKEYFILE:", "Windows Metadata Key File",
  244. "", cmVS7FlagTable::UserValue },
  245. { "WindowsMetadataKeyContainer", "WINMDKEYCONTAINER:",
  246. "Windows Metadata Key Container", "", cmVS7FlagTable::UserValue },
  247. { "EntryPointSymbol", "ENTRY:", "Entry Point", "",
  248. cmVS7FlagTable::UserValue },
  249. { "BaseAddress", "BASE:", "Base Address", "", cmVS7FlagTable::UserValue },
  250. { "ImportLibrary", "IMPLIB:", "Import Library", "",
  251. cmVS7FlagTable::UserValue },
  252. { "MergeSections", "MERGE:", "Merge Sections", "",
  253. cmVS7FlagTable::UserValue },
  254. { "LinkKeyFile", "KEYFILE:", "Key File", "", cmVS7FlagTable::UserValue },
  255. { "KeyContainer", "KEYCONTAINER:", "Key Container", "",
  256. cmVS7FlagTable::UserValue },
  257. // Skip [AdditionalOptions] - no command line Switch.
  258. { 0, 0, 0, 0, 0 }
  259. };