cmVS10LinkFlagTable.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. static cmVS7FlagTable cmVS10LinkFlagTable[] =
  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:WINDOWSCE",
  55. "WindowsCE", "WindowsCE", 0},
  56. {"SubSystem", "SUBSYSTEM:POSIX",
  57. "POSIX", "POSIX", 0},
  58. {"Driver", "",
  59. "Not Set", "NotSet", 0},
  60. {"Driver", "Driver",
  61. "Driver", "Driver", 0},
  62. {"Driver", "DRIVER:UPONLY",
  63. "UP Only", "UpOnly", 0},
  64. {"Driver", "DRIVER:WDM",
  65. "WDM", "WDM", 0},
  66. {"LinkTimeCodeGeneration", "",
  67. "Default", "Default", 0},
  68. {"LinkTimeCodeGeneration", "LTCG",
  69. "Use Link Time Code Generation", "UseLinkTimeCodeGeneration", 0},
  70. {"LinkTimeCodeGeneration", "LTCG:PGInstrument",
  71. "Profile Guided Optimization - Instrument", "PGInstrument", 0},
  72. {"LinkTimeCodeGeneration", "LTCG:PGOptimize",
  73. "Profile Guided Optimization - Optimization", "PGOptimization", 0},
  74. {"LinkTimeCodeGeneration", "LTCG:PGUpdate",
  75. "Profile Guided Optimization - Update", "PGUpdate", 0},
  76. {"TargetMachine", "",
  77. "Not Set", "NotSet", 0},
  78. {"TargetMachine", "MACHINE:ARM",
  79. "MachineARM", "MachineARM", 0},
  80. {"TargetMachine", "MACHINE:EBC",
  81. "MachineEBC", "MachineEBC", 0},
  82. {"TargetMachine", "MACHINE:IA64",
  83. "MachineIA64", "MachineIA64", 0},
  84. {"TargetMachine", "MACHINE:MIPS",
  85. "MachineMIPS", "MachineMIPS", 0},
  86. {"TargetMachine", "MACHINE:MIPS16",
  87. "MachineMIPS16", "MachineMIPS16", 0},
  88. {"TargetMachine", "MACHINE:MIPSFPU",
  89. "MachineMIPSFPU", "MachineMIPSFPU", 0},
  90. {"TargetMachine", "MACHINE:MIPSFPU16",
  91. "MachineMIPSFPU16", "MachineMIPSFPU16", 0},
  92. {"TargetMachine", "MACHINE:SH4",
  93. "MachineSH4", "MachineSH4", 0},
  94. {"TargetMachine", "MACHINE:THUMB",
  95. "MachineTHUMB", "MachineTHUMB", 0},
  96. {"TargetMachine", "MACHINE:X64",
  97. "MachineX64", "MachineX64", 0},
  98. {"TargetMachine", "MACHINE:X86",
  99. "MachineX86", "MachineX86", 0},
  100. {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:MTA",
  101. "MTA threading attribute", "MTAThreadingAttribute", 0},
  102. {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:STA",
  103. "STA threading attribute", "STAThreadingAttribute", 0},
  104. {"CLRThreadAttribute", "CLRTHREADATTRIBUTE:NONE",
  105. "Default threading attribute", "DefaultThreadingAttribute", 0},
  106. {"CLRImageType", "CLRIMAGETYPE:IJW",
  107. "Force IJW image", "ForceIJWImage", 0},
  108. {"CLRImageType", "CLRIMAGETYPE:PURE",
  109. "Force Pure IL Image", "ForcePureILImage", 0},
  110. {"CLRImageType", "CLRIMAGETYPE:SAFE",
  111. "Force Safe IL Image", "ForceSafeILImage", 0},
  112. {"CLRImageType", "",
  113. "Default image type", "Default", 0},
  114. {"LinkErrorReporting", "ERRORREPORT:PROMPT",
  115. "PromptImmediately", "PromptImmediately", 0},
  116. {"LinkErrorReporting", "ERRORREPORT:QUEUE",
  117. "Queue For Next Login", "QueueForNextLogin", 0},
  118. {"LinkErrorReporting", "ERRORREPORT:SEND",
  119. "Send Error Report", "SendErrorReport", 0},
  120. {"LinkErrorReporting", "ERRORREPORT:NONE",
  121. "No Error Report", "NoErrorReport", 0},
  122. {"CLRSupportLastError", "CLRSupportLastError",
  123. "Enabled", "Enabled", 0},
  124. {"CLRSupportLastError", "CLRSupportLastError:NO",
  125. "Disabled", "Disabled", 0},
  126. {"CLRSupportLastError", "CLRSupportLastError:SYSTEMDLL",
  127. "System Dlls Only", "SystemDlls", 0},
  128. //Bool Properties
  129. {"LinkIncremental", "INCREMENTAL:NO", "", "false", 0},
  130. {"LinkIncremental", "INCREMENTAL", "", "true", 0},
  131. {"SuppressStartupBanner", "NOLOGO", "", "true", 0},
  132. {"LinkStatus", "LTCG:NOSTATUS", "", "false", 0},
  133. {"LinkStatus", "LTCG:STATUS", "", "true", 0},
  134. {"PreventDllBinding", "ALLOWBIND:NO", "", "false", 0},
  135. {"PreventDllBinding", "ALLOWBIND", "", "true", 0},
  136. {"TreatLinkerWarningAsErrors", "WX:NO", "", "false", 0},
  137. {"TreatLinkerWarningAsErrors", "WX", "", "true", 0},
  138. {"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "", "true", 0},
  139. {"GenerateManifest", "MANIFEST:NO", "", "false", 0},
  140. {"GenerateManifest", "MANIFEST", "", "true", 0},
  141. {"AllowIsolation", "ALLOWISOLATION:NO", "", "false", 0},
  142. {"UACUIAccess", "uiAccess='false'", "", "false", 0},
  143. {"UACUIAccess", "uiAccess='true'", "", "true", 0},
  144. {"GenerateDebugInformation", "DEBUG", "", "true", 0},
  145. {"MapExports", "MAPINFO:EXPORTS", "", "true", 0},
  146. {"AssemblyDebug", "ASSEMBLYDEBUG:DISABLE", "", "false", 0},
  147. {"AssemblyDebug", "ASSEMBLYDEBUG", "", "true", 0},
  148. {"LargeAddressAware", "LARGEADDRESSAWARE:NO", "", "false", 0},
  149. {"LargeAddressAware", "LARGEADDRESSAWARE", "", "true", 0},
  150. {"TerminalServerAware", "TSAWARE:NO", "", "false", 0},
  151. {"TerminalServerAware", "TSAWARE", "", "true", 0},
  152. {"SwapRunFromCD", "SWAPRUN:CD", "", "true", 0},
  153. {"SwapRunFromNET", "SWAPRUN:NET", "", "true", 0},
  154. {"OptimizeReferences", "OPT:NOREF", "", "false", 0},
  155. {"OptimizeReferences", "OPT:REF", "", "true", 0},
  156. {"EnableCOMDATFolding", "OPT:NOICF", "", "false", 0},
  157. {"EnableCOMDATFolding", "OPT:ICF", "", "true", 0},
  158. {"IgnoreEmbeddedIDL", "IGNOREIDL", "", "true", 0},
  159. {"NoEntryPoint", "NOENTRY", "", "true", 0},
  160. {"SetChecksum", "RELEASE", "", "true", 0},
  161. {"RandomizedBaseAddress", "DYNAMICBASE:NO", "", "false", 0},
  162. {"RandomizedBaseAddress", "DYNAMICBASE", "", "true", 0},
  163. {"FixedBaseAddress", "FIXED:NO", "", "false", 0},
  164. {"FixedBaseAddress", "FIXED", "", "true", 0},
  165. {"DataExecutionPrevention", "NXCOMPAT:NO", "", "false", 0},
  166. {"DataExecutionPrevention", "NXCOMPAT", "", "true", 0},
  167. {"TurnOffAssemblyGeneration", "NOASSEMBLY", "", "true", 0},
  168. {"SupportUnloadOfDelayLoadedDLL", "DELAY:UNLOAD", "", "true", 0},
  169. {"SupportNobindOfDelayLoadedDLL", "DELAY:NOBIND", "", "true", 0},
  170. {"Profile", "PROFILE", "", "true", 0},
  171. {"LinkDelaySign", "DELAYSIGN:NO", "", "false", 0},
  172. {"LinkDelaySign", "DELAYSIGN", "", "true", 0},
  173. {"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK:NO", "", "false", 0},
  174. {"CLRUnmanagedCodeCheck", "CLRUNMANAGEDCODECHECK", "", "true", 0},
  175. {"ImageHasSafeExceptionHandlers", "SAFESEH:NO", "", "false", 0},
  176. {"ImageHasSafeExceptionHandlers", "SAFESEH", "", "true", 0},
  177. {"LinkDLL", "DLL", "", "true", 0},
  178. //Bool Properties With Argument
  179. {"EnableUAC", "MANIFESTUAC:NO", "", "false",
  180. cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  181. {"EnableUAC", "MANIFESTUAC:NO", "Enable User Account Control (UAC)", "",
  182. cmVS7FlagTable::UserValueRequired},
  183. {"EnableUAC", "MANIFESTUAC:", "", "true",
  184. cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  185. {"UACUIAccess", "MANIFESTUAC:", "Enable User Account Control (UAC)", "",
  186. cmVS7FlagTable::UserValueRequired},
  187. {"GenerateMapFile", "MAP", "", "true",
  188. cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
  189. {"MapFileName", "MAP", "Generate Map File", "",
  190. cmVS7FlagTable::UserValueRequired},
  191. //String List Properties
  192. {"AdditionalLibraryDirectories", "LIBPATH:",
  193. "Additional Library Directories",
  194. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  195. // Skip [AdditionalDependencies] - no command line Switch.
  196. {"IgnoreSpecificDefaultLibraries", "NODEFAULTLIB:",
  197. "Ignore Specific Default Libraries",
  198. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  199. {"AddModuleNamesToAssembly", "ASSEMBLYMODULE:",
  200. "Add Module to Assembly",
  201. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  202. {"EmbedManagedResourceFile", "ASSEMBLYRESOURCE:",
  203. "Embed Managed Resource File",
  204. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  205. {"ForceSymbolReferences", "INCLUDE:",
  206. "Force Symbol References",
  207. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  208. {"DelayLoadDLLs", "DELAYLOAD:",
  209. "Delay Loaded Dlls",
  210. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  211. {"AssemblyLinkResource", "ASSEMBLYLINKRESOURCE:",
  212. "Assembly Link Resource",
  213. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  214. {"AdditionalManifestDependencies", "MANIFESTDEPENDENCY:",
  215. "Additional Manifest Dependencies",
  216. "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
  217. //String Properties
  218. {"OutputFile", "OUT:",
  219. "Output File",
  220. "", cmVS7FlagTable::UserValue},
  221. {"Version", "VERSION:",
  222. "Version",
  223. "", cmVS7FlagTable::UserValue},
  224. {"SpecifySectionAttributes", "SECTION:",
  225. "Specify Section Attributes",
  226. "", cmVS7FlagTable::UserValue},
  227. {"MSDOSStubFileName", "STUB:",
  228. "MS-DOS Stub File Name",
  229. "", cmVS7FlagTable::UserValue},
  230. // Skip [TrackerLogDirectory] - no command line Switch.
  231. {"ModuleDefinitionFile", "DEF:",
  232. "Module Definition File",
  233. "", cmVS7FlagTable::UserValue},
  234. {"ManifestFile", "ManifestFile:",
  235. "Manifest File",
  236. "", cmVS7FlagTable::UserValue},
  237. {"ProgramDatabaseFile", "PDB:",
  238. "Generate Program Database File",
  239. "", cmVS7FlagTable::UserValue},
  240. {"StripPrivateSymbols", "PDBSTRIPPED:",
  241. "Strip Private Symbols",
  242. "", cmVS7FlagTable::UserValue},
  243. // Skip [MapFileName] - no command line Switch.
  244. // Skip [MinimumRequiredVersion] - no command line Switch.
  245. {"HeapReserveSize", "HEAP:",
  246. "Heap Reserve Size",
  247. "", cmVS7FlagTable::UserValue},
  248. // Skip [HeapCommitSize] - no command line Switch.
  249. {"StackReserveSize", "STACK:",
  250. "Stack Reserve Size",
  251. "", cmVS7FlagTable::UserValue},
  252. // Skip [StackCommitSize] - no command line Switch.
  253. {"FunctionOrder", "ORDER:@",
  254. "Function Order",
  255. "", cmVS7FlagTable::UserValue},
  256. {"ProfileGuidedDatabase", "PGD:",
  257. "Profile Guided Database",
  258. "", cmVS7FlagTable::UserValue},
  259. {"MidlCommandFile", "MIDL:@",
  260. "MIDL Commands",
  261. "", cmVS7FlagTable::UserValue},
  262. {"MergedIDLBaseFileName", "IDLOUT:",
  263. "Merged IDL Base File Name",
  264. "", cmVS7FlagTable::UserValue},
  265. {"TypeLibraryFile", "TLBOUT:",
  266. "Type Library",
  267. "", cmVS7FlagTable::UserValue},
  268. {"EntryPointSymbol", "ENTRY:",
  269. "Entry Point",
  270. "", cmVS7FlagTable::UserValue},
  271. {"BaseAddress", "BASE:",
  272. "Base Address",
  273. "", cmVS7FlagTable::UserValue},
  274. {"ImportLibrary", "IMPLIB:",
  275. "Import Library",
  276. "", cmVS7FlagTable::UserValue},
  277. {"MergeSections", "MERGE:",
  278. "Merge Sections",
  279. "", cmVS7FlagTable::UserValue},
  280. {"LinkKeyFile", "KEYFILE:",
  281. "Key File",
  282. "", cmVS7FlagTable::UserValue},
  283. {"KeyContainer", "KEYCONTAINER:",
  284. "Key Container",
  285. "", cmVS7FlagTable::UserValue},
  286. // Skip [AdditionalOptions] - no command line Switch.
  287. {0,0,0,0,0}
  288. };