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

$Include "$SRCDIR\vpc_scripts\version.vpc"

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

$Macro LIBPUBLIC	"$SRCDIR\lib\public$PLATSUBDIR"
$Macro LIBCOMMON	"$SRCDIR\lib\common$PLATSUBDIR" [!$VS2015 && !$VS2019]
$Macro LIBCOMMON	"$SRCDIR\lib\common$PLATSUBDIR\2015\release" [($VS2015 || $VS2019) && !$WIN32]
$Macro LIBCOMMON	"$SRCDIR\lib\common\win32\2015\release" [($VS2015 || $VS2019) && $WIN32]

$Include "$SRCDIR\vpc_scripts\source_lib_win32_debug.vpc"
$Include "$SRCDIR\vpc_scripts\source_lib_win32_release.vpc"
$Include "$SRCDIR\vpc_scripts\source_win32_base.vpc"

$IgnoreRedundancyWarning	"ON"

// Common Configuration
$Configuration
{
	$General
	{
		$TargetName	"$OUTLIBNAME"
	}


	$Compiler
	{
		$PreprocessorDefinitions			"$BASE;PLATFORM_64BITS;WIN64;_WIN64;COMPILER_MSVC64" [$WIN64]
		$PreprocessorDefinitions			"$BASE;COMPILER_MSVC32" [$WIN32]
		$PreprocessorDefinitions			"$BASE;COMPILER_MSVC;_DLL_EXT=$_DLL_EXT"
		$PreprocessorDefinitions			"$BASE;LIBNAME=$OUTLIBNAME"
	}

	$Compiler [$WIN32]
	{
		$EnableEnhancedInstructionSet	"Streaming SIMD Extensions (/arch:SSE)"
	}
	
	$PreBuildEvent
	{
		$CommandLine		"if EXIST $OUTLIBDIR\$(TargetName).lib ( for /f $QUOTEdelims=$QUOTE %%A in ('attrib $QUOTE$OUTLIBDIR\$(TargetName).lib$QUOTE') do set valveTmpIsReadOnly=$QUOTE%%A$QUOTE" "\n" \
							") else ( if not EXIST $OUTLIBDIR mkdir $OUTLIBDIR )" "\n" \
							"set valveTmpIsReadOnlyLetter=%valveTmpIsReadOnly:~6,1%" "\n" \
							"if $QUOTE%valveTmpIsReadOnlyLetter%$QUOTE==$QUOTER$QUOTE (" "\n" \
							"    attrib -r $OUTLIBDIR\$(TargetName).lib" "\n" \
							"    $SRCDIR\devtools\bin\gnu\touch.exe -d $QUOTE1999-01-01$QUOTE $OUTLIBDIR\$(TargetName).lib" "\n" \
							"    attrib +r $OUTLIBDIR\$(TargetName).lib" "\n" \
							")" "\n" \
							"$CRCCHECK" "\n" 			
	}

	$PreLinkEvent [!$ANALYZE && !$SOURCESDK]
	{
//		$CommandLine		"call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTLIBDIR\$(TargetName).lib $SRCDIR" 
	}

	$Librarian
	{
		// Suppress this warning using the undocumented /ignore linker switch
		// schemalib.lib(schemaclassinfo.obj) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
		$AdditionalOptions					"$BASE /ignore:4221"
	}
}

// Skeleton Project - All derived projects get this as a starting base
$Project
{
	$Folder	"Source Files"
	{
		$File	"$SRCDIR\common\debug_lib_check.cpp" [!$SOURCESDK]
		{
			$Configuration
			{
				$Compiler
				{
					$Create/UsePrecompiledHeader	"Not Using Precompiled Headers"
				}
			}
		}
	}
}