164 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //-----------------------------------------------------------------------------
 | |
| //	SOURCE_DLL_WIN32_BASE.VPC
 | |
| //
 | |
| //	Base Settings for all Source(TM) Projects
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| $Include "$SRCDIR\vpc_scripts\version.vpc"
 | |
| 
 | |
| $Macro NOAPPENDPLATSUBDIR "1" [!$WIN64]
 | |
| 
 | |
| $MacroRequired				"PLATSUBDIR"
 | |
| $MacroRequired				"SRCDIR"
 | |
| $MacroRequired				"OUTBINNAME"	"$PROJECTNAME"
 | |
| $MacroRequired				"OUTBINDIR"
 | |
| 
 | |
| // These are convenient for adjusting directory paths based on platform
 | |
| // but they must be used without absolute consistency to avoid dependency
 | |
| // problems. It appears that if VPC compares $LIBPUBLIC to $SRCDIR\lib\public
 | |
| // it will decide that they are not equal, even if the *value* of $LIBPUBLIC
 | |
| // is $SRCDIR\lib\public. These macros can safely be used in copy commands
 | |
| // and other areas that VPC doesn't use for dependency tracking.
 | |
| $Macro LIBPUBLIC	"$SRCDIR\lib\public"
 | |
| $Macro LIBCOMMON	"$SRCDIR\lib\common"
 | |
| 
 | |
| // Fix up directories for targets like win64
 | |
| $Macro OUTBINDIR	"$OUTBINDIR$PLATSUBDIR" [!$NOAPPENDPLATSUBDIR && !$NOMODIFYOUTBINDIR]
 | |
| $Macro LIBPUBLIC	"$LIBPUBLIC$PLATSUBDIR" [!$NOAPPENDPLATSUBDIR]
 | |
| $Macro LIBCOMMON	"$LIBCOMMON$PLATSUBDIR" [!$NOAPPENDPLATSUBDIR]
 | |
| 
 | |
| $Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
 | |
| $Include "$SRCDIR\vpc_scripts\source_dll_win32_debug.vpc"
 | |
| $Include "$SRCDIR\vpc_scripts\source_dll_win32_release.vpc"
 | |
| $Include "$SRCDIR\vpc_scripts\source_win32_base.vpc"
 | |
| 
 | |
| $IgnoreRedundancyWarning	"ON"
 | |
| 
 | |
| $Linux
 | |
| {
 | |
| 	-$File	"$SRCDIR\lib\public\tier0.lib"
 | |
| 	$file   "$SRCDIR\linux\tier0_i686.so"
 | |
| 
 | |
| 	-$File	"$SRCDIR\lib\public\vstdlib.lib"	[!$WIN64]
 | |
| 	-$File	"$SRCDIR\lib\public\$PLATFORM\vstdlib.lib"	[$WIN64]
 | |
| 	$file	"$SRCDIR\linux\vstdlib_i686.so"
 | |
| }
 | |
| 
 | |
| // Common Configuration
 | |
| $Configuration
 | |
| {
 | |
| 	$General [$VS2010]
 | |
| 	{
 | |
| 		$TargetName		"$OUTBINNAME"
 | |
| 	}
 | |
| 
 | |
| 	$PreBuildEvent
 | |
| 	{
 | |
| 		$CommandLine		"if EXIST $OUTBINDIR\$(TargetFileName) for /f $QUOTEdelims=$QUOTE %%A in ('attrib $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE') do set valveTmpIsReadOnly=$QUOTE%%A$QUOTE" "\n" \
 | |
| 							"set valveTmpIsReadOnlyLetter=%valveTmpIsReadOnly:~6,1%" "\n" \
 | |
| 							"if $QUOTE%valveTmpIsReadOnlyLetter%$QUOTE==$QUOTER$QUOTE del /q $QUOTE$(TargetDir)$QUOTE$(TargetFileName)" "\n" \
 | |
| 							"$CRCCHECK" [!$SOURCESDK]
 | |
| 	}
 | |
| 
 | |
| 	$PostBuildEvent [!$ANALYZE]
 | |
| 	{
 | |
| 		$CommandLine		"if not exist $QUOTE$OUTBINDIR$QUOTE mkdir $QUOTE$OUTBINDIR$QUOTE" "\n" 
 | |
| 		$CommandLine		"$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE $SRCDIR" "\n" [!$SOURCESDK]
 | |
| 		$CommandLine		"$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE" "\n" \
 | |
| 							"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
 | |
| 							"if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map" "\n" 
 | |
| 		$CommandLine		"$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetName).pdb $SRCDIR" "\n" [!$SOURCESDK]
 | |
| 		$CommandLine		"$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetName).pdb $OUTBINDIR\$(TargetName).pdb" "\n" \
 | |
| 							"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
 | |
| 							"goto BuildEventOK" "\n" \
 | |
| 							":BuildEventFailed" "\n" \
 | |
| 							"echo *** ERROR! PostBuildStep FAILED for $(ProjectName)! EXE or DLL is probably running. ***" "\n" \
 | |
| 							"del /q $QUOTE$(TargetDir)$QUOTE$(TargetFileName)" "\n" \
 | |
| 							"exit 1" "\n" \
 | |
| 							":BuildEventOK" "\n"
 | |
| 
 | |
| 		$CommandLine		"$BASE" "\n" \
 | |
| 							"call $SRCDIR\devtools\bin\vsign.bat -sign $OUTBINDIR\$(TargetFileName)" "\n" [$RETAIL && !$SOURCESDK]
 | |
| 
 | |
| 		$CommandLine		"$BASE" "\n" \
 | |
| 							"call $SRCDIR\devtools\bin\vsign.bat -signvalve $OUTBINDIR\$(TargetFileName)" "\n" [!$RETAIL && !$SOURCESDK]
 | |
| 
 | |
| 		$Description		"Publishing to $OUTBINDIR"
 | |
| 		$ExcludedFromBuild	"No"
 | |
| 	}
 | |
| 
 | |
| 	$Linker
 | |
| 	{
 | |
| 		// 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"
 | |
| 		$AdditionalDependencies	"%(AdditionalDependencies)" [$VS2010]
 | |
| 		$TargetMachine						"MachineX86 (/MACHINE:X86)"	[$WIN32]
 | |
| 		$TargetMachine						"MachineX64 (/MACHINE:X64)"	[$WIN64]
 | |
| 
 | |
| 		// This option is from the devil.  Basically, it causes the link inputs
 | |
| 		// to vary depending on what is in the solution.  This is anathema
 | |
| 		// to the way that we use projects and solutions here at Valve.
 | |
| 		// It also exposes a bug in VS2005 causing files to be recompiled/linked
 | |
| 		// even if nothing changed.
 | |
| 		$LinkLibraryDependencies	"false"
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Skeleton Project - All derived projects get this as a starting base
 | |
| $Project
 | |
| {
 | |
| 	$Folder	"Source Files"
 | |
| 	{
 | |
| 		$File	"$SRCDIR\public\tier0\memoverride.cpp"
 | |
| 		{
 | |
| 			$Configuration
 | |
| 			{
 | |
| 				$Compiler
 | |
| 				{
 | |
| 					$Create/UsePrecompiledHeader	"Not Using Precompiled Headers"
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// Implement __imp__EncodePointer and __imp__DecodePointer so that we can run on XP SP1
 | |
| 		// when building with VS 2010.
 | |
| 		$File	"$SRCDIR\public\tier0\pointeroverride.asm" [$WIN32 && $VS2010]
 | |
| 		{
 | |
| 			$Configuration
 | |
| 			{	
 | |
| 				$CustomBuildStep
 | |
| 				{
 | |
| 					// General
 | |
| 					$CommandLine				"$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
 | |
| 					$Description				"Compiling pointeroverride.asm"
 | |
| 					$Outputs					"$(IntDir)\$(InputName).obj"
 | |
| 				}		
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$File	"$SRCDIR\common\debug_dll_check.cpp"	[!$SOURCESDK]	
 | |
| 		{
 | |
| 			$Configuration
 | |
| 			{
 | |
| 				$Compiler
 | |
| 				{
 | |
| 					$Create/UsePrecompiledHeader	"Not Using Precompiled Headers"
 | |
| 				}
 | |
| 			}
 | |
| 		}		
 | |
| 	}
 | |
| 
 | |
| 	$Folder	"Link Libraries"
 | |
| 	{
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\tier0.lib"		[!$WIN64]
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\tier1.lib"		[!$WIN64]
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\vstdlib.lib"	[!$WIN64]
 | |
| 
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\$PLATFORM\tier0.lib" 		[$WIN64]
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\$PLATFORM\tier1.lib" 		[$WIN64]
 | |
| 		$DynamicFile	"$SRCDIR\lib\public\$PLATFORM\vstdlib.lib" 		[$WIN64]
 | |
| 	}
 | |
| }
 | |
| 
 |