//-----------------------------------------------------------------------------
//	SOURCE_LIB_X360_DEBUG.VPC
//
//	Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------

$IgnoreRedundancyWarning	"ON"

$MacroRequired				"SRCDIR"
$MacroRequired				"OUTLIBNAME"
$MacroRequired				"OUTLIBDIR"

$Configuration "Debug"
{
	$General	
	{
		// General
		$OutputDirectory					".\Debug_360"
		$IntermediateDirectory				".\Debug_360"
		$ExtensionsToDeleteOnClean
		$BuildLogFile
		$InheritedProjectPropertySheets

		// Project Defaults
		$ConfigurationType					"Static Library (.lib)"
		$CharacterSet						"Not Set"
		$WholeProgramOptimization			"No Whole Program Optimization"
	}

	$Debugging
	{
		$Command
		$CommandArguments
		$MapDVDDrive
		$RemoteMachine
	}

	$Compiler
	{
		// General
		$AdditionalIncludeDirectories		"$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
		$DebugInformationFormat				"Program Database (/Zi)"
		$SuppressStartupBanner				"Yes (/nologo)"	
		$WarningLevel						"Level 4 (/W4)"
		$TreatWarningsAsErrors				"No"

		// Optimization
		$Optimization						"Disabled (/Od)"
		$InlineFunctionExpansion
		$EnableIntrinsicFunctions			"Yes (/Oi)"
		$FavorSizeOrSpeed
		$EnableFiberSafeOptimizations
		$WholeProgramOptimization

		// Preprocessor
		$PreprocessorDefinitions			"_HAS_ITERATOR_DEBUGGING=0;_X360;_DEBUG;DEBUG;_LIB;_WIN32;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
		$PreprocessorDefinitions			"$BASE;_CERT" [$CERT]
		$IgnoreStandardIncludePath
		$GeneratePreprocessedFile
		$KeepComments

		// Code Generation
		$EnableStringPooling				"Yes (/GF)"
		$EnableMinimalRebuild				"Yes (/Gm)"
		$EnableC++Exceptions				"No"
		$SmallerTypeCheck
		$BasicRuntimeChecks					"Both (/RTC1, equiv. to /RTCsu)"
		$RuntimeLibrary						"Multi-threaded Debug (/MTd)"
		$StructMemberAlignment
		// 360 Issue: Enable BufferSecurityCheck below in AdditionalOptions
		$BufferSecurityCheck				"No"		
		$EnableFunctionLevelLinking
		$FloatingPointModel					"Fast (/fp:fast)"
		$EnableFloatingPointExceptions		"No"

		// Language
		$DisableLanguageExtensions
		$DefaultCharUnsigned
		$TreatWCHAR_TAsBuiltInType			"Yes (/Zc:wchar_t)"
		$ForceConformanceInForLoopScope		"Yes (/Zc:forScope)"
		$EnableRunTimeTypeInfo				"Yes (/GR)"
		$OpenMPSupport						"No"

		// Precompiled Headers
		$Create/UsePrecompiledHeader		"Not Using Precompiled Headers"
		$Create/UsePCHThroughFile
		$PrecompiledHeaderFile

		// Output Files
		$ExpandAttributedSource				"No"
		$AssemblerOutput					"No Listing"
		$ASMListLocation					"$(IntDir)/"
		$ObjectFileName						"$(IntDir)/"
		$ProgramDatabaseFileName			"$(IntDir)/"

		// Browse Information
		$EnableBrowseInformation			"None"
		$BrowseFile							"$(IntDir)/"

		// Advanced
		$CompileAs							"Compile as C++ Code (/TP)"
		$DisableSpecificWarnings
		$ForceIncludes						"tier0/platform.h"
		$ShowIncludes						"No"
		$UndefinePreprocessorDefinitions
		$UndefineAllPreprocessorDefinitions	"No"
		$UseFullPaths
		$OmitDefaultLibraryNames

		// Xbox 360
		$RegisterReservation				"No"
		$TrapIntegerDividesOptimization		"No"
		$PreschedulingOptimization			"No"
		$InlineAssemblyOptimization			"No"
		$Stalls								"No"
		$CallAttributedProfiling			"Disabled"

		// Command Line
		$AdditionalOptions					"/QVMX128 /GS"
	}

	$Librarian
	{
		// General
		$OutputFile							"$OUTLIBDIR\$OUTLIBNAME_360.lib"
		$AdditionalDependencies
		$AdditionalLibraryDirectories
		$SuppressStartupBanner				"Yes (/NOLOGO)"
		$ModuleDefinitionFileName
		$IgnoreAllDefaultLibraries
		$IgnoreSpecificLibrary
		$ExportNamedFunctions
		$ForceSymbolReferences
		$LinkLibraryDependencies

		// Command Line
		$AdditionalOptions
	}

	$BrowseInformation
	{
		$SuppressStartupBanner				"Yes (/nologo)"	
		$OutputFile							"$(OutDir)/$OUTLIBNAME.bsc"
		$AdditionalOptions
	}

	$PreBuildEvent
	{
		$CommandLine
		$Description
		$ExcludedFromBuild					"No"
	}

	$PreLinkEvent
	{
		$CommandLine
		$Description
		$ExcludedFromBuild					"No"
	}

	$PostBuildEvent
	{
		$CommandLine
		$Description
		$ExcludedFromBuild					"No"
	}

	$CustomBuildStep
	{
		// General
		$CommandLine
		$Description
		$Outputs
		$AdditionalDependencies
	}
}