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