// Document template variables for templates templates\vc10.mpd.
// Please try to keep this alphabetically sorted.
//
add_references = If enabled, MPC will add Reference XML elements describing project-to-project references (set with the MPC after keyword) for .NET projects.
additionalmanifestdependencies = Specifies attributes that will be placed in the dependency section of the manifest file.
additionalusingdirectories = Specifies one or more directories (separate directory names with a semicolon) to be searched to resolve names passed to a #using directive.
addmodulenamestoassembly = Add a module reference to an assembly. Type information in the module will not be available to the assembly program that added the module reference. However, type information in the module will be available to any program that references the assembly.
allowisolation = Linker manifest option to specify behavior for manifest lookup.
assemblerlistinglocation = Specifies relative path and/or name for ASM listing file; can be file or directory name.
assembleroutput = Specifies the contents of assembly language output file.
assemblydebug = Linker option to emit the DebuggableAttribute attribute with debug information tracking and disables JIT optimizations.
assemblylinkresource = Linker option for creating a link to a .NET Framework resource in the output file; the resource file is not placed in the output file.
assemblyreferences = List of .NET assemblies to reference in the project.
baseaddress = Sets a base address for the program.
basicruntimechecks = Perform basic runtime error checks, incompatible with any optimization type other than debug.
browseinformation = Enable Browse Information : Specifies level of browse information in .bsc file.
browseinformationfile = Specifies optional name for browser information file.
buffersecuritycheck = Check for buffer overruns; useful for closing hackable loopholes on internet servers.  The default is enabled.
callingconvention = Select the default calling convention (Cdecl, FastCall, StdCall).
clrimagetype = Sets the type of a CLR image (ForceIJWImage, ForcePureILImage, ForceSafeILImage).
clrsupportlasterror = Preserve Last Error Code for PInvoke Calls (Enabled = default, Disabled, SystemDlls).
clrthreadattribute = Explicitly specify the threading attribute for the entry point of your CLR program (MTAThreadingAttribute, STAThreadingAttribute).
clrunmanagedcodecheck = Specifies whether the linker will apply SuppressUnmanagedCodeSecurityAttribute to linker-generated PInvoke calls from managed code into native DLLs.
codeanalysisruleset = Specifies the code analysis ruleset file for the project.
common_defines = Specifies macros that are common to all target types.
compileas = Override default C or C++ selection (CompileAsC, CompileAsCpp).
compileasmanaged = Use this only if you need to explicitly set the MSBuild XML CompileAsManaged tag.  Otherwise use MPC's built-in keyword for "managed".
comreferences = Creates references to COM libraries. Each entry in the list takes the form libraryname:guid=the_guid and can optionally list more attribute name/value pairs separated by commas.  The libraryname includes .dll (or other extension). The valid attributes besides guid (with their defaults) are majorver (1), minorver (0), lcid (0), wrapper (tlbimp), isolated (false), copylocal (omitted), refout (for ReferenceOutputAssembly, omitted) and clsa (for CopyLocalSatelliteAssemblies, omitted).
cpu_defines = Macros that are specific to a particular CPU platform.
createhotpatchableimage = Prepares an image for hotpatching (Enabled, X86Image, X64Image, ItaniumImage).
culture = Resource compiler option for the culture as a decimal language id (default 1033 = en-US).
dataexecutionprevention = Marks an executable as having been tested to be compatible with Windows Data Execution Prevention feature.
debug_cmd_args = Commandline arguments that have to be set before debugging
debug_format = Specifies the type of debugging information generated by the compiler.
debug_prj = This is an internally used template variable to determine if the configuration originated as "Debug". In the event that the 'optimize' template variable is overridden, debug_prj allows the correct run-time library to be chosen.
debug_work_dir = Default working directory during debugging
defines = Macros that are specific to a particular configuration.
delayloaddlls = List of DLLs (semicolon-separated) to delay load.
disablelanguageextensions = Compiler option for disabling language extensions.
disablespecificwarnings = A space separated list of warning numbers to be disabled.
driver = Linker option to build a Windows NT kernel mode driver (Driver, UpOnly, WDM).
embedmanagedresourcefile = Embeds a resource file in the output file.
embedmanifest = MSBuild property for EmbedManifest.
enablecomdatfolding = Linker option to perform identical COMDAT folding (defaults to on if optimize is on).
enableenhancedinstructionset = Enable use of instructions found on processors that support enhanced instruction sets, e.g., the SSE and SSE2 enhancements to the IA-32. Currently only available when building for the x86 architecture (StreamingSIMDExtensions, StreamingSIMDExtensions2).
enablefibersafeoptimizations = Enables memory space optimization when using fibers and thread local storage access.
enableintrinsicfunctions = Compiler switch for enabling intrinsic functions (defaults to true in Release configurations).
encoding = XML encoding for the vcxproj file (default utf-8)
entrypointsymbol = Specifies an entry point function as the starting address for an .exe file or DLL.
errorreporting = Specifies how internal tool (compiler) errors should be reported back to Microsoft (None, Prompt, Queue, Send).
exceptionhandling = Specifies the model of exception handling to be used by the compiler (Async, Sync, SyncCThrow, false).
expandattributedsource = Create listing file with expanded attributes injected into source file.
exportnamedfunctions = Librarian option to export one or more specified functions.
favorsizeorspeed = Whether to favor code size or code speed, optimization must be turned on (Size, Speed, Neither).
fixedbaseaddress = Creates a program that can be loaded only at its preferred base address.
floatingpointexceptions = Reliable floating-point exception model. Exceptions will be raised immediately after they are triggered.
floatingpointmodel = Sets the floating point model (Precise, Strict, Fast).
forceconformanceinforloopscope = Used to implement standard C++ behavior for the for statement loops (defaults to on).
forcedincludefiles = A semicolon-separated list of files that are forced includes.
forcedusingfiles = A semicolon-separated list of files that are forced #usings.
forcefileoutput = Linker option to create an .exe file or DLL even if a symbol is referenced but not defined or is multiply defined. It may create invalid exe file. (Enabled, MultiplyDefinedSymbolOnly, UndefinedSymbolOnly).
forcesymbolreferences = A semicolon-separated list of symbols for the linker to add to the symbol table.
functionlevellinking = Allows the compiler to package individual functions in the form of packaged functions (COMDATs). Required for edit and continue to work.
functionorder = Linker option to optimize your program by placing certain COMDATs into the image in a predetermined order. LINK places the functions in the specified order within each section in the image.
generatedebuginformation = Linker option for enabling debug information (defaults to true).
generatemanifest = Specifies that the linker should create a side-by-side manifest file.
generatemapfile = Specifies that the linker should create a mapfile.
generatexmldocumentationfiles = Specifies that the compiler should generate XML documentation comment files (.XDC).
guid = The value for this variable is generated during project generation.
heapcommitsize = Specifies total heap allocation size in physical memory.
heapreservesize = Specifies total heap allocation size in virtual memory.
ignore_default_library_names = List of default libraries to ignore.
ignorealldefaultlibraries = Ignore all default libraries.
ignoreembeddedidl = Any IDL attributes in source code should not be processed into an .idl file.
ignorestandardincludepath = Prevents the compiler from searching for include files in directories specified in the INCLUDE environment variable.
imagehassafeexceptionhandlers = If specified, the linker will only produce an image if it can also produce a table of the image's safe exception handlers. This table specifies for the operating system which exception handlers are valid for the image.
importlibrary = Overrides the default import library name.
inlinefunctionexpansion = Select the level of inline function expansion (Disabled, OnlyExplicitInline, AnySuitable).
intdir = Specify this to override the default intermediate directory.
keycontainer = Specify a key container to sign an assembly.
keyfile = Specify key or key pair to sign an assembly.  If set, embedmanifest defaults to false.
largeaddressaware = Tells the linker that the application can handle addresses larger than 2 gigabytes.
languagestandard = Which version of ISO C++ standard to compile against (stdcpp14, stdcpp17, stdcpplatest) - Visual Studio 2017+ only
lib_options = Additional command-line options for the librarian.
link_options = Additional command-line options for the linker.
linkerrorreporting = Allows you to provide linker internal compiler error (ICE) information directly to the Visual C++ team (PromptImmediately, QueueForNextLogin, SendErrorReport, NoErrorReport).
linkstatus = Specifies whether the linker should display a progress indicator showing what percentage of the link is complete.
linktimecodegeneration = Enables link time code generation of objects compiled with Whole Program Optimization.
linkwarnaserror = Causes no output file to be generated if the linker generates a warning.
makebuild = Command line to use for invoking nmake (makefile project only).
makeclean = Command line to use for invoking nmake clean (makefile project only).
makeoutput = Output file resulting from building with nmake. Having this set creates a makefile project.
makerebuild = Command line to use for invoking nmake rebuild (makefile project only).
manifestfile = Change the default name of the manifest file. The default name of the manifest file is the output file name with .manifest appended.
mapexports = Include exported function in the mapfile (see generatemapfile).
mapfilename = Override the default name for the generated mapfile (see generatemapfile).
mergedidlbasefilename = Specifies the name and extension of the .idl file generated from embedded IDL.
mergesections = A string of the form from=to. Combines the first section (from) with the second section (to), naming the resulting section to.
midl_defines = Preprocessor definitions for the Microsoft IDL compiler.
midl_flags = Additional options for the Microsoft IDL compiler.
midl_includes = Include directories for the Microsoft IDL compiler.
midl_notlb = If enabled, do not generate stubless proxies (Microsoft IDL compiler).
midlcommandfile = Linker option for embedded Microsoft IDL, specifies a file containing a MIDL command line.
minimalrebuild = Enables minimal rebuild, which determines whether C++ source files that include changed C++ class definitions (stored in header (.h) files) need to be recompiled. Defaults to true if optimization is disabled.
minimumrequiredversion = Specify the minimum required version of the subsystem.
moduledefinitionfile = Passes a module-definition file (.def) to the linker. Only one .def file can be specified.
multiprocessorcompilation = Enables multi-processor compilation.
nmakeassemblysearchpath = .NET assembly search path (makefile project only).
nmakeforcedusingassemblies = Forced #using assemblies (makefile project only).
noentrypoint = Use this option to prevent the linker from linking a reference to _main into the DLL.
objectfilename = Specifies a name to override the default object file name; can be file or directory name.
omitdefaultlibname = Do not include default library names in .obj files.
omitframepointers = Suppresses creation of frame pointers on the call stack.
openmp = A backwards compatibility variable that is equivalent to openmpsupport.
openmpsupport = If set to true, enables OpenMP 2.0 language extensions.
optimizereferences = Linker optimization that eliminates functions and/or data that are never referenced.
output_subdir = This is used in determining the sub-directory under which intermediate files will be placed.
pch_header_output = Specifies the path and/or name of the generated precompiled header file.
pdbc = If this boolean template variable is set, the C/C++ Output Files property "Program Database File Name" will be set according to the project target.
pdbl =  If this boolean template variable is set, the Linker Debugging property "Generate Program Database File" will be set according to the project target.
peruserredirection = When Register Output is enabled, Per-user redirection forces registry writes to HKEY_CLASSES_ROOT to be redirected to HKEY_CURRENT_USER.
platform = Specifies the target platform.
platform_defines = Macros that are specific to a particular platform.
platformtoolset = Use an alternate toolset, for example from vc9 or a different Windows SDK release (PlatformToolset in the vcxproj file).
preprocesskeepcomments = Suppresses comment strip from source code; requires that one of the 'Preprocessing' options be set.
preprocesssuppresslinenumbers = Preprocess without #line directives.
preprocesstofile = Preprocesses C and C++ source files and writes the preprocessed output to a file. This option suppresses compilation, thus it does not produce an .obj file.
preventdllbinding = Sets a bit in a DLL's header that indicates to Bind.exe that the image is not allowed to be bound. You may not want a DLL to be bound if it has been digitally signed (binding invalidates the signature).
profile = Produces an output file that can be used with the Performance Tools profiler. Requires GenerateDebugInformation (/DEBUG) to be set.
profileguideddatabase = Specify .pgd file for profile guided optimizations.
programdatabasefilename = Specifies a name for a compiler-generated PDB file; also specifies base name for the required compiler-generated IDB file; can be file or directory name.
prversion = Project file version
randomizedbaseaddress = Randomized Base Address
referencepath = Semicolon-separated path for the MSBuild XML ReferencePath element.
registeroutput = Specifies whether to register the primary output of this build.
release_link_options = Allows passing arbitrary options to the linker when making a release build.
removeobjects = Librarian option to omit the specified object from the output library. LIB creates an output library by combining all objects (whether in object files or libraries), and then deleting any objects specified in this option.
runtime_library = This corresponds to the C/C++ Code Generation property "Runtime Library". If the template variable is set to one of (MultiThreaded, MultiThreadedDebug, MultiThreadedDLL, MuliThreadedDebugDLL), it overrides MPC's normal setting. Otherwise, the normal setting is determined based on the target (static/shared) and debug/release configuration.
runtimetypeinfo = Adds code for checking C++ object types at run time (runtime type information). Default is true.
sectionalignment = Specifies the alignment of each section within the linear address space of the program. The number argument is in bytes and must be a power of two.
setchecksum = Sets the Checksum in the header of an .exe file.
showincludes = Generates a list of include files with compiler output.
showprogress = Prints linker progress messages.
smallertypecheck = Enable checking for conversion to smaller types, incompatible with any optimization type other than debug.
specifysectionattributes = Changes the attributes of a section, overriding the attributes set when the .obj file for the section was compiled.
stringpooling = Enables the compiler to create a single read-only copy of identical strings in the program image and in memory during execution, resulting in smaller programs, an optimization called string pooling.
stripprivatesymbols = Creates a second program database (PDB) file without private symbols when you build your program image with any of the compiler or linker options that generate a PDB file.
structmemberalignment = Specifies boundaries for struct member alignment (1Byte, 2Bytes, 4Bytes, 8Bytes, 16Bytes).
subsystem = Linker option to set a header telling the operating system how to run the .exe file. The choice of subsystem (Console, Windows, Native, EFI Application, EFI ROM, EFI Runtime, WindowsCE, POSIX) affects the entry point symbol (or entry point function) that the linker will choose.
supportnobindofdelayloadeddll = The NOBIND qualifier tells the linker not to include a bindable IAT in the final image.
supportunloadofdelayloadeddll = The UNLOAD qualifier tells the delay-load helper function to support explicit unloading of the DLL.
suppressstartupbanner = Compiler and linker option that prevents display of the copyright message and version number.
swaprunfromcd = Tells the operating system to first copy the linker output to a swap file, and then run the image from there. This is a Windows NT 4.0 (and later) feature. When CD is specified, the operating system will copy the image on a removable disk to a page file and then load it.
swaprunfromnet = Tells the operating system to first copy the linker output to a swap file, and then run the image from there. This is a Windows NT 4.0 (and later) feature. If it is specified, the operating system will first copy the binary image from the network to a swap file and load it from there. This option is useful for running applications over the network.
targetframeworkversion = The TargetFrameworkVersion attribute.
targetmachine = Specifies the subsystem for the linker.  See vc10platforms.mpt for some of the settings.
terminalserveraware = Sets a flag in the IMAGE_OPTIONAL_HEADER DllCharacteristics field in the program image's optional header. When this flag is set, Terminal Server will not make certain changes to the application.
toolsversion = Override the value of the ToolsVersion attribute of the Project XML element in the vcxproj file.
treatlibwarningaserrors = Causes no output file to be generated if the librarian generates a warning.
treatspecificwarningsaserrors = Treats the specific compiler warnings as errors, given a semicolon-separated list of compiler warning numbers.
treatwchar_tasbuiltintype = When specified, the type wchar_t becomes a native type that maps to __wchar_t in the same way that short maps to __int16. Enabled by default.
turnoffassemblygeneration = Tells the linker to create an image for the current output file without a .NET Framework assembly.
typelibraryfile = Specifies the name and extension of the .tlb file generated from embedded IDL.
typelibraryresourceid = Specifies the resource ID of the linker-generated type library.
uacexecutionlevel = Specifies the requested execution level for the application when running with User Account Control (AsInvoker, HighestAvailable, RequireAdministrator).
uacuiaccess = UAC Bypass UI Protection: Specifies whether or not to bypass user interface protection levels for other windows on the desktop.  Set this property to 'Yes' only for accessibility applications.
undefineallpreprocessordefinitions = Undefine all previously defined preprocessor values.
undefinepreprocessordefinitions = Specifies one or more preprocessor undefines (semicolon-separated).
unicode = If enabled: sets the CharacterSet to Unicode, enables Unicode-specific preprocessor macro definitions, and changes the entrypoint (if using unicode_mfc_entry).
unicode_mfc_entry = Sets the entrypoint symbol for Unicode MFC configurations.
usefullpaths = Use full paths in diagnostic messages.
useofatl = Specifies how ATL is used by the configuration (Static, Dynamic).
useofmfc = Specifies how MFC is used by the configuration (Static, Dynamic).
useunicodeforassemblerlisting = Causes the assembler listing output file to be created in UTF-8 format.
useunicoderesponsefiles = Instructs the project system to generate Unicode response files when spawning the librarian.
use_pdb_modifier = A boolean value to determine whether the 'pdb_modifier' setting will be appended
vcprojectversion = Visual C++ version to be used
verbose = Verbose librarian option.
warnaserror = Treats all compiler warnings as errors.
warning_level = Numeric value for warning level (1-4, default is 3), or the strings "all" or "none" (0 is an alias for none).
wholeprogramoptimization = Enables cross-module optimizations by delaying code generation until link time but requires linktimecodegeneration to take effect (wholeprogramoptimization
 defaults to true in Release configurations).
windowstargetplatformversion = Windows SDK to be used
xml_version = XML version for the vcxproj (default 1.0)
xmldocumentationfilename = Specifies the name of the compiler-generated XML documentation files; can be file or directory name.
