cmVS14LinkFlagTable.h 13 KB

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