// 
// Win32 2010 Project Generator Definition
//

"Win32_2010"
{
	"Version"		"2010"

	//
	// Configuration
	//

	"$General"
	{
		"$DisableFastUpToDateCheck"
		{
			"type"	"bool"
			"globalproperty"	"1"
		}

		"$AdditionalProjectDependencies"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
		
		"$SchemaPreIncludeFiles"
		{
			"type"	"string"
			"IgnoreForOutput"	"1"
		}
		
		"$AdditionalOutputFiles"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
	
		"$GameOutputFile"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
	
		"$InheritedProjectPropertySheets"
		{
			"type"	"ignore"
		}
	
		"$MinimizeCRTUseInATL"
		{
			"type"	"ignore"
		}
	
		"$ExcludedFromBuild"
		{
			"type"	"bool"
		}
		
		"$OutputDirectory"
		{
			"type"				"string"
			"output"			"OutDir"
			"globalproperty"	"1"
			"AppendSlash"		"1"
		}
		
		"$IntermediateDirectory"
		{
			"type"				"string"
			"output"			"IntDir"
			"globalproperty"	"1"
			"AppendSlash"		"1"
		}
		
		"$TargetName"
		{
			"type" "string"
		}

		"$TargetExtension"
		{
			"type"				"string"
			"output"			"TargetExt"
			"globalproperty"	"1"
		}
		
		"$ExtensionsToDeleteOnClean"
		{
			"type"	"string"
		}
		
		"$BuildLogFile"
		{
			"type"	"string"
		}

		"$PlatformToolset"
		{
			"type"	"string"
		}

		"$PreferredToolArchitecture"
		{
			"type"	"string"
		}
		
		"$ExecutableDirectories"
		{
			"type"				"string"
			"output"			"ExecutablePath"
			"globalproperty"	"1"
		}
				
		"$ConfigurationType"
		{
			"ordinals"
			{
				"Utility"					"Utility"
				"Application (.exe)"		"Application"
				"Title (.xex)"				"Title"
				"Dynamic Library (.dll)"	"DynamicLibrary"
				"Dynamic Library (.xex)"	"DynamicLibrary"
				"Static Library (.lib)"		"StaticLibrary"
				"Makefile"					"Makefile"
			}
		}
		
		"$UseOfMFC"
		{
			"ordinals"
			{
				"Use Standard Windows Libraries"	"false"
				"Use MFC in a Static Library"		"Static"
				"Use MFC in a Shared DLL"			"Dynamic"
			}
		}
		
		"$UseOfATL"
		{
			"ordinals"
			{
				"Not Using ATL"				"false"
				"Static Link to ATL"		"Static"
				"Dynamic Link to ATL"		"Dynamic"
			}
		}
				
		"$CharacterSet"
		{
			"ordinals"
			{
				"Not Set"						"NotSet"
				"Use Unicode Character Set"		"Unicode"
				"Use Multi-Byte Character Set"	"MultiByte"
			}	
		}
		
		"$CommonLanguageRuntimeSupport"
		{
			"type"	"ignore"
		}
		
		"$WholeProgramOptimization"
		{
			"ordinals"
			{
				"No Whole Program Optimization"				"false"
				"Use Link Time Code Generation"				"true"
				"Profile Guided Optimization - Instrument"	"PGInstrument"
				"Profile Guided Optimization - Optimize"	"PGOptimize"
				"Profile Guided Optimization - Update"		"PGUpdate"
			}
		}

		"$NMakeBuildCommandLine"
		{
			"type"	"string"
		}
		"$NMakeReBuildCommandLine"
		{
			"type"	"string"
		}
		"$NMakeCleanCommandLine"
		{
			"type"	"string"
		}
		"$NMakeOutput"
		{
			"type"	"string"
		}
	}

	"$Intellisense"
	{
		//we glean most of these from other tools
		"$NMakePreprocessorDefinitions"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}

		"$NMakeIncludeSearchPath"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}

		"$NMakeForcedIncludes"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}

		"$NMakeAssemblySearchPath"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}

		"$NMakeForcedUsingAssemblies"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}

		"$AdditionalOptions"
		{
			"type"	"string"
			"globalproperty"	"1"
			"GeneratedOnOutput" "1"
		}
	}
	
	"$Debugging"
	{
		"$Command"
		{
			"type"	"string"
		}
		
		"$CommandArguments"
		{
			"type"	"string"
		}

		"$WorkingDirectory"
		{
			"type"	"string"
		}

		"$Attach"
		{
			"type"	"bool"
		}

		"$DebuggerType"
		{
			"type"	"ignore"
		}
		
		"$Environment"
		{
			"type"	"string"
		}

		"$MergeEnvironment"
		{
			"type"	"bool"
		}

		"$SQLDebugging"
		{
			"type"	"bool"
		}

		"$MapDVDDrive"
		{
			"type"	"ignore"
		}
	}
	
	"$Compiler"
	{
		"$SymbolVisibility"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
	
		"$GCC_ExtraCompilerFlags"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$GCC_ExtraCxxCompilerFlags"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$Detect64bitPortabilityIssues"
		{
			"type"	"ignore"
		}

		"$UseUNICODEResponseFiles"
		{
			"type"	"ignore"
		}
			
		"$IgnoreStandardIncludePath"
		{
			"type"	"ignore"
		}
		
		"$GeneratePreprocessedFile"
		{
			"type"	"ignore"
		}
		
		"$OptimizerLevel"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
		
		// General
		"$AdditionalIncludeDirectories"
		{
			"type"						"string"
			"PreferSemicolonNoComma"	"1"
		}
		
		"$Resolve#UsingReferences"
		{
			"type"	"string"
			"alias"	"ResolveUsingReferences"
		}
		
		"$DebugInformationFormat"
		{
			"ordinals"
			{
				"C7 Compatible (/Z7)"							"OldStyle"
				"Program Database (/Zi)"						"ProgramDatabase"
				"Program Database for Edit & Continue (/ZI)"	"EditAndContinue"
			}
		}
	
		"$CommonLanguageRunTimeSupport"
		{
			"output"	"CompileAsManaged"
			"ordinals"
			{
				"No Common Language RunTime Support"							"false"
				"Common Language RunTime Support (/clr)"						"true"
				"Pure MSIL Common Language RunTime Support (/clr:pure)"			"Pure"
				"Safe MSIL Common Language RunTime Support (/clr:safe)"			"Safe"
				"Common Language RunTime Support, Old Syntax (/clr:oldSyntax)"	"OldSyntax"
			}
		}
	
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
				
		"$WarningLevel"
		{
			"ordinals"
			{
				"Off: Turn Off All Warnings (/W0)"	"TurnOffAllWarnings"
				"Level 1 (/W1)"						"Level1"
				"Level 2 (/W2)"						"Level2"
				"Level 3 (/W3)"						"Level3"
				"Level 4 (/W4)"						"Level4"
				"EnableAllWarnings (/Wall)"			"EnableAllWarnings"
			}
		}
		
		"$TreatWarningsAsErrors"
		{
			"type"		"bool"
			"output"	"TreatWarningAsError"
		}

		"$MultiProcessorCompilation"
		{
			"type"		"bool"
		}

		"$UseUnicodeForAssemblerListing"	
		{
			"type"	"bool"
		}

		// Optimization
		"$Optimization"
		{
			"ordinals"
			{
				"Disabled (/Od)"			"Disabled"
				"Minimize Size (/O1)"		"MinSpace"
				"Maximize Speed (/O2)"		"MaxSpeed"
				"Full Optimization (/Ox)"	"Full"
			}
		}

		"$InlineFunctionExpansion"
		{
			"ordinals"
			{
				"Default"					"Default"		
				"Disabled (/Ob0)"			"Disabled"		
				"Only __inline (/Ob1)"		"OnlyExplicitInline"
				"Any Suitable (/Ob2)"		"AnySuitable"
			}
		}
		
		"$EnableIntrinsicFunctions"
		{
			"type"		"bool"
			"output"	"IntrinsicFunctions"
		}
		
		"$FavorSizeOrSpeed"
		{
			"ordinals"
			{
				"Neither"					"Neither"
				"Favor Fast Code (/Ot)"		"Speed"
				"Favor Small Code (/Os)"	"Size"
			}
		}
		
		"$OmitFramePointers"
		{
			"type"	"bool"
		}
		
		"$EnableFiberSafeOptimizations"
		{
			"type"	"bool"
		}
		
		"$WholeProgramOptimization"
		{
			"type"	"bool"
		}

		// Preprocessor
		"$PreprocessorDefinitions"
		{
			"type"	"string"
		}
		
		"$UndefinePreprocessorDefinitions"
		{
			"type"	"string"
		}

		"$UndefineAllPreprocessorDefinitions"
		{
			"type"	"bool"
		}

		"$IgnoreStandardIncludePaths"
		{
			"type"	"bool"
		}

		"$PreprocessToAFile"
		{
			"type"	"bool"
		}

		"$PreprocessSuppressLineNumbers"
		{
			"type"	"bool"
		}
		
		"$KeepComments"
		{
			"type"	"bool"
		}

		// Code Generation
		"$EnableStringPooling"
		{
			"type"		"bool"
			"output"	"StringPooling"
		}

		"$EnableMinimalRebuild"
		{
			"type"		"bool"
			"output"	"MinimalRebuild"
		}

		"$EnableC++Exceptions"
		{
			"alias"		"EnableCPPExceptions"
			"output"	"ExceptionHandling"
			"ordinals"
			{
				"Yes With SEH Exceptions (/EHa)"		"Async"
				"Yes (/EHsc)"							"Sync"
				"Yes with Extern C functions (/EHs)"	"SyncCThrow"
				"No"									"false"
			}
		}
		
		"$SmallerTypeCheck"
		{
			"type"	"bool"
		}

		"$BasicRuntimeChecks"
		{
			"ordinals"
			{
				"Stack Frames (/RTCs)"						"StackFrameRuntimeCheck"
				"Uninitialized Variables (/RTCu)"			"UninitializedLocalUsageCheck"
				"Both (/RTC1, equiv. to /RTCsu)"			"EnableFastChecks"
				"Both (/RTC1, equiv. to /RTCsu) (/RTC1)"	"EnableFastChecks"
				"Default"									"Default"
			}
		}
		
		"$RuntimeLibrary"
		{
			"ordinals"
			{
				"Multi-threaded (/MT)"				"MultiThreaded"
				"Multi-threaded Debug (/MTd)"		"MultiThreadedDebug"
				"Multi-threaded DLL (/MD)"			"MultiThreadedDLL"
				"Multi-threaded Debug DLL (/MDd)"	"MultiThreadedDebugDLL"
			}
		}
		
		"$StructMemberAlignment"
		{
			"ordinals"
			{
				"1 Byte (/Zp1)"		"1Byte"
				"2 Bytes (/Zp2)"	"2Bytes"
				"4 Bytes (/Zp4)"	"4Bytes"
				"8 Bytes (/Zp8)"	"8Bytes"
				"16 Bytes (/Zp16)"	"16Bytes"
				"Default"			"Default"
			}
		}
		
		"$BufferSecurityCheck"
		{
			"type"	"bool"
		}

		"$EnableFunctionLevelLinking"
		{
			"type"		"bool"
			"output"	"FunctionLevelLinking"
		}

		"$EnableEnhancedInstructionSet"
		{
			"ordinals"
			{
				"Streaming SIMD Extensions (/arch:SSE)"					"StreamingSIMDExtensions"
				"Streaming SIMD Extensions (/arch:SSE) (/arch:SSE)"		"StreamingSIMDExtensions"
				"Streaming SIMD Extensions 2 (/arch:SSE2)"				"StreamingSIMDExtensions2"
				"Streaming SIMD Extensions 2 (/arch:SSE2) (/arch:SSE2)"	"StreamingSIMDExtensions2"
				"Not Set"												"NotSet"
			}
		}

		"$FloatingPointModel"
		{
			"ordinals"
			{
				"Precise (/fp:precise)"	"Precise"
				"Strict (/fp:strict)"	"Strict"
				"Fast (/fp:fast)"		"Fast"
			}
		}
		
		"$EnableFloatingPointExceptions"
		{
			"type"		"bool"
			"output"	"FloatingPointExceptions"
		}

		"$CreateHotpatchableImage"
		{
			"type"		"bool"
		}

		// Language
		"$DisableLanguageExtensions"
		{
			"type"	"bool"
		}

		"$DefaultCharUnsigned"
		{
			"type"		"ignore"
		}

		"$TreatWChar_tAsBuiltInType"
		{
			"type"		"bool"
		}

		"$ForceConformanceInForLoopScope"
		{
			"type"	"bool"
		}

		"$EnableRunTimeTypeInfo"
		{
			"type"		"bool"
			"output"	"RuntimeTypeInfo"
		}

		"$OpenMPSupport"
		{
			"type"		"bool"
		}

		// Precompiled Headers
		"$Create/UsePrecompiledHeader"
		{
			"alias"		"PrecompiledHeader"
			"output"	"PrecompiledHeader"
			"ordinals"
			{
				"Not Using Precompiled Headers"		"NotUsing"
				"Create Precompiled Header (/Yc)"	"Create"
				"Create (/Yc)"						"Create"
				"Use Precompiled Header (/Yu)"		"Use"
				"Use (/Yu)"							"Use"
			}
		}
		
		"$Create/UsePCHThroughFile"		
		{
			"alias"			"PrecompiledHeaderFile"
			"output"		"PrecompiledHeaderFile"
			"type"			"string"
			"fixslashes"	"1"
		}

		"$PrecompiledHeaderOutputFile"
		{
			"type"		"string"
			"legacy"	"$PrecompiledHeaderFile"
		}

		// Output Files
		"$ExpandAttributedSource"
		{
			"type"	"bool"
		}

		"$AssemblerOutput"
		{
			"ordinals"
			{
				"No Listing"								"NoListing"
				"Assembly-Only Listing (/FA)"				"AssemblyCode"
				"Assembly With Machine Code (/FAc)"			"AssemblyAndMachineCode"
				"Assembly With Source Code (/FAs)"			"AssemblyAndSourceCode"
				"Assembly, Machine Code and Source (/FAcs)"	"All"
			}
		}
		
		"$ASMListLocation"
		{
			"type"		"string"
			"output"	"AssemblerListingLocation"
		}

		"$ObjectFileName"
		{
			"type"		"string"
		}

		"$ProgramDatabaseFileName"
		{
			"type"		"string"
			"output"	"ProgramDataBaseFileName"
		}

		"$GenerateXMLDocumentationFiles"
		{
			"type"	"bool"
		}
	
		"$XMLDocumentationFileName"
		{
			"type"	"string"
		}

		// Browse Information
		"$EnableBrowseInformation"
		{
			"output"	"BrowseInformation"
			"type"		"bool"
		}
		
		"$BrowseInformationFile"
		{
			"legacy"	"$BrowseFile"
			"type"		"string"
		}

		// Advanced
		"$CallingConvention"
		{
			"ordinals"
			{
				"__cdecl (/Gd)"		"Cdecl"
				"__fastcall (/Gr)"	"FastCall"
				"__stdcall (/Gz)"	"StdCall"
			}
		}

		"$CompileAs"
		{
			"ordinals"
			{
				"Default"					"Default"
				"Compile as C Code (/TC)"	"CompileAsC"
				"Compile as C++ Code (/TP)"	"CompileAsCpp"
			}
		}
		
		"$DisableSpecificWarnings"
		{
			"type"	"string"
			"PreferSemicolonNoComma"	"1"
			"PreferSemicolonNoSpace"	"1"
		}
		
		"$ForcedIncludeFile"
		{
			"type"		"string"
			"legacy"	"$ForceIncludes"
			"output"	"ForcedIncludeFiles"
		}
		
		"$Forced#UsingFile"
		{
			"type"		"string"
			"legacy"	"$Force#Using"
			"alias"		"ForcedUsingFile"
		}
		
		"$ShowIncludes"
		{
			"type"	"bool"
		}

		"$UseFullPaths"
		{
			"type"	"bool"
		}
						
		"$OmitDefaultLibraryName"
		{
			"type"		"bool"
			"legacy"	"$OmitDefaultLibraryNames"
		}
		
		"$InternalCompilerErrorReporting"
		{
			"legacy"	"$ErrorReporting"
			"output"	"ErrorReporting"
			"ordinals"
			{
				"Do Not Send Report (/errorReport:none)"		"None"
				"Prompt Immediately (/errorReport:prompt)"		"Prompt"
				"Queue For Next Login (/errorReport:queue)"		"Queue"
				"Send Automatically (/errorReport:send)"		"Send"
			}
		}
		
		"$TreatSpecificWarningsAsErrors"
		{
			"type"	"string"
		}
						
		// Command Line
		"$AdditionalOptions"
		{
			"type"	"string"
		}
	}

	"$Librarian"
	{
		"$OutputFile"
		{
			"type"	"string"
		}
		
		"$AdditionalDependencies"
		{
			"type"						"string"
			"PreferSemicolonNoComma"	"1"
			"PreferSemicolonNoSpace"	"1"
		}
		
		"$AdditionalLibraryDirectories"
		{
			"type"	"string"
		}
		
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
		
		"$ModuleDefinitionFileName"
		{
			"type"	"string"
		}
		
		"$IgnoreAllDefaultLibraries"
		{
			"type"	"bool"
		}
		
		"$IgnoreSpecificLibrary"
		{
			"type"		"string"
			"output"	"IgnoreDefaultLibraryNames"
			"PreferSemicolonNoComma"	"1"
			"PreferSemicolonNoSpace"	"1"
		}
		
		"$ExportNamedFunctions"
		{
			"type"	"string"
		}
		
		"$ForceSymbolReferences"
		{
			"type"	"string"
		}
		
		"$UseUnicodeResponseFiles"
		{
			"type"	"bool"
		}
		
		"$LinkLibraryDependencies"
		{
			"type"				"bool"
		}
		
		"$TargetMachine"
		{
			"ordinals"
			{
				"Not Set"								"NotSet"
				"MachineARM (/MACHINE:ARM)"				"MachineARM"
				"MachineEBC (/MACHINE:EBC)"				"MachineEBC"
				"MachineIA64 (/MACHINE:IA64)"			"MachineIA64"
				"MachineMIPS (/MACHINE:MIPS)"			"MachineIA64"
				"MachineMIPS16 (/MACHINE:MIPS16)"		"MachineMIPS16"
				"MachineMIPSFPU (/MACHINE:MIPSFPU)"		"MachineMIPSFPU"
				"MachineMIPSFPU16 (/MACHINE:MIPSFPU16)"	"MachineMIPSFPU16"
				"MachineSH4 (/MACHINE:SH4)"				"MachineSH4"
				"MachineTHUMB (/MACHINE:THUMB)"			"MachineTHUMB"
				"MachineX64 (/MACHINE:X64)"				"MachineX64"
				"MachineX86 (/MACHINE:X86)"				"MachineX86"
			}
		}

		"$AdditionalOptions"					
		{
			"type"	"string"
		}
	}
	
	"$Linker"
	{
		"$SystemLibraries"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
		
		"$SystemFrameworks"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
		
		"$LocalFrameworks"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$GCC_ExtraLinkerFlags"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$POSIX_RPaths"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$DisableLinkerDeadCodeElimination"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		"$UseUNICODEResponseFiles"
		{
			"type"	"ignore"
		}

		"$OptimizeForWindows98"
		{
			"type"	"ignore"
		}

		// General
		"$OutputFile"
		{
			"type"			"string"
			"fixslashes"	"1"
		}
		
		"$ShowProgress"
		{
			"ordinals"
			{
				"Not Set"														"NotSet"
				"Display All Progress Messages (/VERBOSE)"						"LinkVerbose"
				"For Libraries Searched (/VERBOSE:Lib)"							"LinkVerboseLib"
				"About COMDAT folding during optimized linking (/VERBOSE:ICF)"	"LinkVerboseICF"
				"About data removed during optimized linking (/VERBOSE:REF)"	"LinkVerboseREF"
				"About Modules incompatible with SEH (/VERBOSE:SAFESEH)"		"LinkVerboseSAFESEH"
				"About linker activity related to managed code (/VERBOSE:CLR)"	"LinkVerboseCLR"
			}
		}
		
		"$Version"
		{
			"type"	"string"
		}
				
		"$EnableIncrementalLinking"
		{
			"output"			"LinkIncremental"
			"type"				"bool"
			"globalproperty"	"1"
		}
		
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
		
		"$IgnoreImportLibrary"
		{
			"type"				"bool"
			"globalproperty"	"1"
		}
		
		"$RegisterOutput"
		{
			"type"	"bool"
		}
		
		"$PerUserRedirection"
		{
			"type"	"bool"
		}
		
		"$AdditionalLibraryDirectories"
		{
			"type"	"string"
		}
		
		"$LinkLibraryDependencies"
		{
			"type"				"bool"
		}
		
		"$UseLibraryDependencyInputs"
		{
			"type"	"bool"
		}
		
		"$LinkStatus"
		{
			"type"	"bool"
		}
		
		"$PreventDllBinding"
		{
			"type"	"bool"
		}

		"$TreatLinkerWarningsAsErrors"
		{
			"type"	"bool"
		}

		"$ForceFileOutput"
		{
			"ordinals"
			{
				"Enabled (/FORCE)"									"Enabled"
				"Multiply Defined Symbol Only (/FORCE:MULTIPLE)"	"MultiplyDefinedSymbolOnly"
				"Undefined Symbol Only (/FORCE:UNRESOLVED)"			"UndefinedSymbolOnly"
			}
		}

		"$CreateHotPatchableImage"
		{
			"ordinals"
			{
				"Enabled (/FUNCTIONPADMIN)"					"Enabled"
				"X86 Image Only (/FUNCTIONPADMIN:5)"		"X86Image"
				"X64 Image Only (/FUNCTIONPADMIN:6)"		"X64Image"
				"Itanium Image Only (/FUNCTIONPADMIN:16)"	"ItaniumImage"
			}
		}

		"$SpecifySectionAttributes"
		{
			"type"	"string"
		}

		"$AdditionalDependencies"
		{
			"type"						"string"
			"PreferSemicolonNoComma"	"1"
			"PreferSemicolonNoSpace"	"1"
		}
		
		"$IgnoreAllDefaultLibraries"
		{
			"type"	"bool"
		}
		
		"$IgnoreSpecificDefaultLibraries"
		{
			"type"		"string"
			"legacy"	"$IgnoreSpecificLibrary"
			"PreferSemicolonNoComma"	"1"
			"PreferSemicolonNoSpace"	"1"
		}
		
		"$ModuleDefinitionFile"
		{
			"type"	"string"
		}
		
		"$AddModuleToAssembly"
		{
			"type"	"string"
		}
		
		"$EmbedManagedResourceFile"
		{
			"type"	"string"
		}
		
		"$ForceSymbolReferences"
		{
			"type"	"string"
		}
		
		"$DelayLoadedDlls"
		{
			"type"		"string"
			"legacy"	"$DelayLoadedDLL"
			"output"	"DelayLoadDLLs"
		}
		
		"$AssemblyLinkResource"
		{
			"type"	"string"
		}
		
		"$GenerateManifest"
		{
			"type"				"bool"
			"globalproperty"	"1"
		}
		
		"$ManifestFile"
		{
			"type"	"string"
		}
		
		"$AdditionalManifestDependencies"
		{
			"type"	"string"
		}		
		
		"$AllowIsolation"
		{
			"type"	"bool"
		}
		
		"$EnableUserAccountControl(UAC)"
		{
			"type"	"bool"
			"alias"	"EnableUserAccountControl"
		}
		
		"$UACExecutionLevel"
		{
			"ordinals"
			{
				"asInvoker (/level='asInvoker')"						"AsInvoker"
				"highestAvailable (/level='highestAvailable')"			"HighestAvailable"
				"requireAdministrator (/level='requireAdministrator')"	"RequireAdministrator"
			}
		}
		
		"$UACBypassUIProtection"
		{
			"type"	"bool"
		}

		// Debugging
		"$GenerateDebugInfo"
		{
			// This is gross, but VS2015 diverged from VS2010 here by turning a bool
			// into a multi-choice setting, so instead of forking off all of the
			// VS2010 code/definitions into a separate VS2015 one, I just changed
			// this to a string and updated the old values to "true" to match what
			// the vcxproj files expect.
			//"type"		"string"
			"type"		"bool"
			"output"	"GenerateDebugInformation"
		}
		
		"$GenerateProgramDatabaseFile"
		{
			"type"		"string"
			"output"	"ProgramDatabaseFile"
		}
		
		"$StripPrivateSymbols"
		{
			"type"	"string"
		}
		
		"$GenerateMapFile"
		{
			"type"	"bool"
		}
		
		"$MapFileName"
		{
			"type"	"string"
		}
		
		"$MapExports"
		{
			"type"	"bool"
		}
		
		"$DebuggableAssembly"
		{
			"output"	"AssemblyDebug"
			"ordinals"
			{
				"No runtime tracking and enable optimizations (/ASSEMBLYDEBUG:DISABLE)"	"false"
				"No (/ASSEMBLYDEBUG:DISABLE)"											"false"
				"Runtime tracking and disable optimizations (/ASSEMBLYDEBUG)"			"true"
				"Yes (/ASSEMBLYDEBUG)"													"true"
			}	
		}
		
		"$SubSystem"
		{
			"ordinals"
			{
				"Not Set"														"NotSet"
				"Console (/SUBSYSTEM:CONSOLE)"									"Console"
				"Windows (/SUBSYSTEM:WINDOWS)"									"Windows"
				"Native (/SUBSYSTEM:NATIVE)"									"Native"
				"EFI Application (/SUBSYSTEM:EFI_APPLICATION)"					"EFI Application"
				"EFI Boot Service Driver (/SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER)"	"EFI Boot Service Driver"
				"EFI ROM (/SUBSYSTEM:EFI_ROM)"									"EFI ROM"
				"EFI Runtime (/SUBSYSTEM:EFI_RUNTIME_DRIVER)"					"EFI Runtime"
				"WindowsCE (/SUBSYSTEM:WINDOWSCE)"								"WindowsCE"		
				"POSIX (/SUBSYSTEM:POSIX)"										"POSIX"		
			}
		}
		
		"$MinimumRequiredVersion"
		{
			"type"	"string"
		}
		
		"$HeapReserveSize"
		{
			"type"	"integer"
		}
		
		"$HeapCommitSize"
		{
			"type"	"integer"
		}
		
		// System
		"$StackReserveSize"
		{
			"type"	"integer"
		}
		
		"$StackCommitSize"
		{
			"type"	"integer"
		}
		
		"$EnableLargeAddresses"
		{
			"output"	"LargeAddressAware"
			"ordinals"
			{	
				"Do Not Support Addresses Larger Than 2 Gigabytes (/LARGEADDRESSAWARE:NO)"	"false"
				"No (/LARGEADDRESSAWARE:NO)"												"false"
				"Support Addresses Larger Than 2 Gigabytes (/LARGEADDRESSAWARE)"			"true"
				"Yes (/LARGEADDRESSAWARE)"													"true"
			}
		}
		
		"$TerminalServer"
		{
			"type"		"bool"
		}
		
		"$SwapRunFromCD"
		{
			"type"	"bool"
		}
		
		"$SwapRunFromNetwork"
		{
			"type"	"bool"
		}
		
		"$Driver"
		{
			"ordinals"
			{
				"Not Set"					"NotSet"
				"Driver (/DRIVER)"			"Driver"
				"Up Only (/DRIVER:UPONLY)"	"UpOnly"
				"WDM (/DRIVER:WDM)"			"WDM"
			}
		}
		
		// Optimization
		"$References"
		{
			"output"	"OptimizeReferences"
			"ordinals"
			{			
				"No (/OPT:NOREF)"							"false"
				"Keep Unreferenced Data (/OPT:NOREF)"		"false"
				"Yes (/OPT:REF)"							"true"
				"Eliminate Unreferenced Data (/OPT:REF)"	"true"
			}			
		}
		
		"$EnableCOMDATFolding"
		{
			"ordinals"
			{
				"Do Not Remove Redundant COMDATs (/OPT:NOICF)"	"false"
				"No (/OPT:NOICF)"								"false"
				"Remove Redundant COMDATs (/OPT:ICF)"			"true"
				"Yes (/OPT:ICF)"								"true"
			}
		}
		
		"$FunctionOrder"
		{
			"type"	"string"
		}
						
		"$ProfileGuidedDatabase"
		{
			"type"	"string"
		}
		
		"$LinkTimeCodeGeneration"
		{
			"ordinals"
			{
				"Default"														"Default"
				"Use Link Time Code Generation (/ltcg)"							"UseLinkTimeCodeGeneration"
				"Profile Guided Optimization - Instrument (/ltcg:pginstrument)"	"PGInstrument"
				"Profile Guided Optimization - Optimize (/ltcg:pgoptimize)"		"PGOptimization"
				"Profile Guided Optimization - Update (/ltcg:pgupdate)"			"PGUpdate"
			}
		}
		
		"$MIDLCommands"
		{
			"type"	"string"
		}
		
		"$IgnoreEmbeddedIDL"
		{
			"type"	"bool"
		}
		
		"$MergeIDLBaseFileName"
		{
			"type"	"string"
		}
		
		"$TypeLibrary"
		{
			"type"	"string"
		}
		
		"$TypeLibResourceID"
		{
			"type"	"integer"
		}
		
		// Advanced
		"$EntryPoint"
		{
			"type"		"string"
			"output"	"EntryPointSymbol"
		}
		
		"$NoEntryPoint"
		{
			"type"		"bool"
			"output"	"ResourceOnlyDLL"
		}
		
		"$SetChecksum"
		{
			"type"	"bool"
		}
		
		"$BaseAddress"
		{
			"type"	"string"
		}
		
		"$RandomizedBaseAddress"
		{
			"type"	"bool"
		}

		"$FixedBaseAddress"
		{
			"ordinals"
			{
				"Generate a relocation section (/FIXED:NO)"			"false"
				"No (/FIXED:NO)"									"false"
				"Image must be loaded at a fixed address (/FIXED)"	"true"
				"Yes (/FIXED)"										"true"
			}
		}
		
		"$DataExecutionPrevention(DEP)"
		{
			"type"	"bool"
			"alias"	"DataExecutionPrevention"
		}
		
		"$TurnOffAssemblyGeneration"
		{
			"type"	"bool"
		}
		
		"$UnloaddelayloadedDLL"
		{
			"type"	"bool"
		}
		
		"$NobinddelayloadedDLL"
		{
			"type"	"bool"
		}
		
		"$ImportLibrary"
		{
			"type"	"string"
		}
		
		"$MergeSections"
		{
			"type"	"string"
		}
		
		"$TargetMachine"
		{
			"ordinals"
			{
				"Not Set"								"NotSet"
				"MachineARM (/MACHINE:ARM)"				"MachineARM"
				"MachineEBC (/MACHINE:EBC)"				"MachineEBC"
				"MachineIA64 (/MACHINE:IA64)"			"MachineIA64"
				"MachineMIPS (/MACHINE:MIPS)"			"MachineIA64"
				"MachineMIPS16 (/MACHINE:MIPS16)"		"MachineMIPS16"
				"MachineMIPSFPU (/MACHINE:MIPSFPU)"		"MachineMIPSFPU"
				"MachineMIPSFPU16 (/MACHINE:MIPSFPU16)"	"MachineMIPSFPU16"
				"MachineSH4 (/MACHINE:SH4)"				"MachineSH4"
				"MachineTHUMB (/MACHINE:THUMB)"			"MachineTHUMB"
				"MachineX64 (/MACHINE:X64)"				"MachineX64"
				"MachineX86 (/MACHINE:X86)"				"MachineX86"
			}
		}
		
		"$Profile"
		{
			"type"	"bool"
		}
		
		"$CLRThreadAttribute"
		{
			"ordinals"
			{
				"Default threading attribute (/CLRTHREADATTRIBUTE:NONE)"	"DefaultThreadingAttribute"
				"MTA threading attribute (/CLRTHREADATTRIBUTE:MTA)"			"MTAThreadingAttribute"
				"STA threading attribute (/CLRTHREADATTRIBUTE:STA)"			"STAThreadingAttribute"
			}
		}
		
		"$CLRImageType"
		{
			"ordinals"
			{
				"Default image type"							"Default"
				"Force IJW image (/CLRIMAGETYPE:IJW)"			"ForceIJWImage"
				"Force pure IL image (/CLRIMAGETYPE:PURE)"		"ForcePureILImage"
				"Force safe IL image (/CLRIMAGETYPE:SAFE)"		"ForceSafeILImage"
			}
		}
		
		"$KeyFile"
		{
			"type"	"string"
		}
		
		"$KeyContainer"
		{
			"type"	"string"
		}
		
		"$DelaySign"
		{
			"type"	"bool"
		}

		"$CLRUnmanagedCodeCheck"
		{
			"type"	"bool"
		}
		
		"$ErrorReporting"
		{
			"output"	"LinkErrorReporting"
			"ordinals"
			{
				"Prompt Immediately (/ERRORREPORT:PROMPT)"	"PromptImmediately"
				"Queue For Next Login (/ERRORREPORT:QUEUE)"	"QueueForNextLogin"
				"Send Error Report (/ERRORREPORT:SEND)"		"SendErrorReport"
				"No Error Report (/ERRORREPORT:NONE)"		"NoErrorReport"
				
			}
		}
			
		"$SectionAlignment"	
		{
			"type"		"string"
		}
		
		"$PreserveLastErrorCodeforPInvokeCalls"
		{
			"output"	"CLRSupportLastError"
			"ordinals"
			{
				"Enabled (/CLRSupportLastError)"						"Enabled"
				"Disabled (/CLRSupportLastError:NO)"					"Disabled"
				"System Dlls Only (/CLRSupportLastError:SYSTEMDLL)"		"SystemDlls"
			}
		}
		
		"$ImageHasSafeExceptionHandlers"
		{
			"type"	"bool"
		}
				
		// Command Line
		"$AdditionalOptions"					
		{
			"type"	"string"
		}	
	}
	
	"$ManifestTool"
	{
		"$UseUNICODEResponseFiles"
		{
			"type"	"ignore"
		}

		"$UseFAT32WorkAround"
		{
			"type"	"ignore"
		}
		
		"$DependencyInformationFile"
		{
			"type"	"ignore"
		}	
		
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
			
		"$VerboseOutput"
		{
			"type"	"bool"
		}
		
		"$AssemblyIdentity"
		{
			"type"	"string"
		}
		
		"$AdditionalManifestFiles"
		{
			"type"	"string"
		}
		
		"$InputResourceManifests"
		{
			"type"	"string"
		}
		
		"$EmbedManifest"
		{
			"type"	"bool"
		}
		
		"$OutputManifestFile"
		{
			"type"	"string"
		}
		
		"$ManifestResourceFile"
		{
			"type"	"string"
		}
		
		"$GenerateCatalogFiles"
		{
			"type"	"bool"
		}

		"$GenerateManifestFromManagedAssembly"
		{
			"type"	"string"
		}

		"$SuppressDependencyElement"
		{
			"type"	"bool"
		}

		"$GenerateCategoryTags"
		{
			"type"	"bool"
		}

		"$EnableDPIAwareness"
		{
			"type"	"bool"
		}
		
		"$TypeLibraryFile"
		{
			"type"	"string"
		}
		
		"$RegistrarScriptFile"
		{
			"type"	"string"
		}
		
		"$ComponentFileName"
		{
			"type"	"string"
		}
		
		"$ReplacementsFile"
		{
			"type"	"string"
		}

		"$UpdateFileHashes"
		{
			"type"	"bool"
		}
		
		"$UpdateFileHashesSearchPath"
		{
			"type"	"string"
		}

		"$AdditionalOptions"
		{
			"type"	"string"	
		}
	}
	
	"$XMLDocumentGenerator"
	{
		"$ValidateIntellisense"
		{
			"type"	"ignore"
		}

		"$UseUNICODEResponseFiles"
		{
			"type"	"ignore"
		}
	
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
				
		"$AdditionalDocumentFiles"
		{
			"type"	"string"
		}
		
		"$OutputDocumentFile"
		{
			"type"	"string"
		}
		
		"$DocumentLibraryDependencies"
		{
			"type"	"bool"
		}
		
		"$AdditionalOptions"
		{
			"type"	"string"
		}	
	}
	
	"$BrowseInformation"
	{
		"$SuppressStartupBanner"
		{
			"type"	"bool"
		}
		
		"$OutputFile"
		{
			"type"	"string"
		}
		
		"$PreserveSBRFiles"
		{
			"type"	"bool"
		}
		
		"$AdditionalOptions"
		{
			"type"	"string"
		}
	}
	
	"$Resources"
	{
		"$PreprocessorDefinitions"
		{
			"type"	"string"
		}
		
		"$Culture"
		{
			"ordinals"
			{
				"Default"								"0"
				"Afrikaans (0x436)"						"1078"
				"Albanian (0x41c)"						"1052"
				"Arabic (Saudi Arabia) (0x401)"			"1025"
				"Arabic (Iraq) (0x801)"					"2049"			
				"Arabic (Egypt) (0xc01)"				"3073"
				"Arabic (Libya) (0x1001)"				"4097"
				"Arabic (Algeria) (0x1401)"				"5121"
				"Arabic (Morocco) (0x1801)"				"6145"
				"Arabic (Tunisia) (0x1c01)"				"7169"
				"Arabic (Oman) (0x2001)"				"8193"
				"Arabic (Yemen) (0x2401)"				"9217"
				"Arabic (Syria) (0x2801)"				"10241"
				"Arabic (Jordan) (0x2c01)"				"11265"
				"Arabic (Lebanon) (0x3001)"				"12289"
				"Arabic (Kuwait) (0x3401)"				"13313"
				"Arabic (U.A.E.) (0x3801)"				"14337"
				"Arabic (Bahrain) (0x3c01)"				"15361"
				"Arabic (Qatar) (0x4001)"				"16385"
				"Basque (0x42d)"						"1069"
				"Bulgarian (0x402)"						"1026"
				"Belarusian (0x423)"					"1059"
				"Catalan (0x403)"						"1027"
				"Chinese (Taiwan) (0x404)"				"1028"
				"Chinese (PRC) (0x804)"					"2052"
				"Chinese (Hong Kong S.A.R.) (0xc04)"	"3076"
				"Chinese (Singapore) (0x1004)"			"4100"
				"Croatian (0x41a)"						"1050"
				"Czech (0x405)"							"1029"
				"Danish (0x406)"						"1030"
				"Dutch (Netherlands) (0x413)"			"1043"
				"Dutch (Belgium) (0x813)"				"2067"
				"English (United States) (0x409)"		"1033"
				"English (United Kingdom) (0x809)"		"2057"
				"English (Australia) (0xc09)"			"3081"
				"English (Canada) (0x1009)"				"4105"
				"English (New Zealand) (0x1409)"		"5129"
				"English (Ireland) (0x1809)"			"6153"
				"English (South Africa) (0x1c09)"		"7177"
				"English (Jamaica) (0x2009)"			"8201"
				"English (Caribbean) (0x2409)"			"9225"
				"Estonian (0x425)"						"1061"
				"Farsi (0x429)"							"1065"
				"Finnish (0x40b)"						"1035"
				"French (France) (0x40c)"				"1036"
				"French (Belgium) (0x80c)"				"2060"
				"French (Canada) (0xc0c)"				"3084"
				"French (Switzerland) (0x100c)"			"4108"
				"French (Luxembourg) (0x140c)"			"5132"
				"German (Germany) (0x407)"				"1031"
				"German (Switzerland) (0x807)"			"2055"
				"German (Austria) (0xc07)"				"3079"
				"German (Luxembourg) (0x1007)"			"4103"
				"German (Liechtenstein) (0x1407)"		"5127"
				"Greek (0x408)"							"1032"
				"Hebrew (0x40d)"						"1037"
				"Hungarian (0x40e)"						"1038"
				"Icelandic (0x40f)"						"1039"
				"Indonesian (0x421)"					"1057"
				"Italian (Italy) (0x410)"				"1040"
				"Italian (Switzerland) (0x810)"			"2064"
				"Japanese (0x411)"						"1041"
				"Korean (0x412)"						"1042"
				"0x812"									"2066"
				"Latvian (0x426)"						"1062"
				"Lithuanian (0x427)"					"1063"
				"Norwegian (Bokmal) (0x414)"			"1044"
				"Norwegian (Nynorsk) (0x814)"			"2068"
				"Polish (0x415)"						"1045"
				"Portuguese (Brazil) (0x416)"			"1046"
				"Portuguese (Portugal) (0x816)"			"2070"
				"Romanian (0x418)"						"1048"
				"Russian (0x419)"						"1049"
				"Slovak (0x41b)"						"1051"
				"Spanish (Traditional Sort) (0x40a)"	"1034"
				"Spanish (Mexico) (0x80a)"				"2058"
				"Spanish (International Sort) (0xc0a)"	"3082"
				"Spanish (Guatemala) (0x100a)"			"4106"
				"Spanish (Costa Rica) (0x140a)"			"5130"
				"Spanish (Panama) (0x180a)"				"6154"
				"Spanish (Dominican Republic) (0x1c0a)"	"7178"
				"Spanish (Venezuela) (0x200a)"			"8202"
				"Spanish (Colombia) (0x240a)"			"9226"
				"Spanish (Peru) (0x280a)"				"10250"
				"Spanish (Argentina) (0x2c0a)"			"11274"
				"Spanish (Ecuador) (0x300a)"			"12298"
				"Spanish (Chile) (0x340a)"				"13322"
				"Spanish (Uruguay) (0x380a)"			"14346"
				"Spanish (Paraguay) (0x3c0a)"			"15370"
				"Spanish (Bolivia) (0x400a)"			"16394"
				"Swedish (0x41d)"						"1053"
				"Thai (0x41e)"							"1054"
				"Turkish (0x41f)"						"1055"
				"Ukrainian (0x422)"						"1058"
				"Serbian (Latin) (0x81a)"				"2074"
				"Urdu (0x420)"							"1056"
			}
		}
		
		"$AdditionalIncludeDirectories"
		{
			"type"						"string"
			"PreferSemicolonNoComma"	"1"
		}
		
		"$IgnoreStandardIncludePath"
		{
			"type"	"bool"
		}
		
		"$ShowProgress"
		{
			"type"	"bool"
		}
		
		"$ResourceFileName"
		{
			"type"	"string"
		}

		"$AdditionalOptions"
		{
			"type"	"string"
		}
	}
	
	$PreBuildEvent
	{
		"$CommandLine"
		{
			"type"		"string"
			"output"	"Command"
		}

		"$Description"
		{
			"type"		"string"
			"output"	"Message"
		}

		"$ExcludedFromBuild"
		{
			"type"				"bool"
			"output"			"PreBuildEventUseInBuild"
			"globalproperty"	"1"		
			"invertoutput"		"1"
		}

		"$UseInBuild"	
		{
			"type"				"bool"
			"output"			"PreBuildEventUseInBuild"
			"globalproperty"	"1"		
		}
	}
	
	$PreLinkEvent
	{
		"$CommandLine"
		{
			"type"		"string"
			"output"	"Command"
		}

		"$Description"
		{
			"type"		"string"
			"output"	"Message"
		}

		"$ExcludedFromBuild"
		{
			"type"				"bool"
			"output"			"PreLinkEventUseInBuild"
			"globalproperty"	"1"		
			"invertoutput"		"1"
		}

		"$UseInBuild"	
		{
			"type"				"bool"
			"output"			"PreLinkEventUseInBuild"
			"globalproperty"	"1"
		}
	}

	$PostBuildEvent
	{
		"$CommandLine"
		{
			"type"		"string"
			"output"	"Command"
		}

		"$Description"
		{
			"type"		"string"
			"output"	"Message"
		}

		"$ExcludedFromBuild"
		{
			"type"				"bool"
			"output"			"PostBuildEventUseInBuild"
			"globalproperty"	"1"		
			"invertoutput"		"1"
		}

		"$UseInBuild"	
		{
			"type"				"bool"
			"output"			"PostBuildEventUseInBuild"
			"globalproperty"	"1"
		}
	}

	$CustomBuildStep
	{
		"$CommandLine"
		{
			"type"		"string"
			"output"	"Command"
		}
		
		"$Description"
		{
			"type"		"string"
			"output"	"Message"
		}

		"$Outputs"
		{
			"type"	"string"
		}

		"$PotentialOutputs"
		{
			"type"	"string"
		}

		"$AdditionalDependencies"
		{
			"type"		"string"
			"output"	"AdditionalInputs"
		}

		"$AdditionalDependencies_Proj"
		{
			"type"		"string"
			"output"	"Inputs"
		}

		//we should run after these file dependencies are complete, but they don't invalidate the step
		"$OrderOnlyFileDependencies"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}

		//exactly the same as $General->$AdditionalProjectDependencies except it can be attached to build tools
		"$OrderOnlyProjectDependencies"
		{
			"type"				"string"
			"IgnoreForOutput"	"1"
		}
		
		"$ExecuteAfter"
		{
			"ordinals"
			{
				"AddIntermediateAssemblyToReferenceList"	"0"
			}
		}
		
		"$ExecuteBefore"
		{
			"globalproperty"	"1"
			"output"			"CustomBuildBeforeTargets"
			"ordinals"
			{
				"ClCompile"		"ClCompile"
			}
		}
	}
}
