summaryrefslogtreecommitdiff
path: root/vpc_scripts/source_xex_x360_base.vpc
blob: 881db0475fd34263d5c7ee15f50ecb00e6fdcb6e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//-----------------------------------------------------------------------------
//	SOURCE_XEX_X360_BASE.VPC
//
//	Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------

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

// 360 must have a xex load address
$Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
$MacroRequired				"LOADADDRESS_DEVELOPMENT"
$MacroRequired				"LOADADDRESS_RETAIL"

$MacroRequired				"SRCDIR"
$MacroRequired				"OUTBINNAME"	"$PROJECTNAME"
$MacroRequired				"OUTBINDIR"
$MacroRequired				"DEVKITBINDIR"	"."

$Include "$SRCDIR\vpc_scripts\source_xex_x360_debug.vpc"
$Include "$SRCDIR\vpc_scripts\source_xex_x360_release.vpc"

$IgnoreRedundancyWarning	"ON"

// Common Configuration
$Configuration
{
	$Compiler
	{
		$PreprocessorDefinitions	"$BASE;_MEMTEST"	[$MEMTEST]
	}

	$Xbox360ImageConversion
	{
		// General
		$TitleID				"0x4541080F"
		$ProjectDefaults		"$SRCDIR\common\hl2orange.xml"
	}

	$ConsoleDeployment
	{
		$ExcludedFromBuild		"Yes"
		$DeploymentRoot			"xe:\Valve"
	}

	$PreBuildEvent
	{
		$CommandLine		"if EXIST $OUTBINDIR\$(TargetName).xex for /f $QUOTEdelims=$QUOTE %%A in ('attrib $QUOTE$OUTBINDIR\$(TargetName).xex$QUOTE') do set valveTmpIsReadOnly=$QUOTE%%A$QUOTE" "\n" \
							"set valveTmpIsReadOnlyLetter=%valveTmpIsReadOnly:~6,1%" "\n" \
							"if $QUOTE%valveTmpIsReadOnlyLetter%$QUOTE==$QUOTER$QUOTE del /q $(TargetDir)$(TargetName).xex" "\n" \
							"$CRCCHECK"
	}

	$PostBuildEvent
	{
		$CommandLine			"call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetName).xex $SRCDIR" "\n" \
								"copy $(TargetDir)$(TargetName).xex $OUTBINDIR\$(TargetName).xex" "\n" \
								"if exist $(TargetDir)$(TargetName).map copy $(TargetDir)$(TargetName).map $OUTBINDIR\$(TargetName).map" "\n" \
								"call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetName).pdb $SRCDIR" "\n" \
								"copy $(TargetDir)$(TargetName).pdb $OUTBINDIR\$(TargetName).pdb" "\n" \
								"copy $(TargetDir)$(TargetName).xdb $OUTBINDIR\$(TargetName).xdb" "\n" \
								"call $SRCDIR\vpc_scripts\valve_xbcp_wrapper.cmd $(TargetDir)$(TargetName).xex $(RemoteRoot)\$DEVKITBINDIR\$(TargetName).xex" "\n"
		$Description			"Publishing to $OUTBINDIR"
		$ExcludedFromBuild		"No"
	}

	// this forces a dependency on the published directory
	// when the dependency fails (the xex is deleted), the PostBuildEvent will run, thus causing the publish to re-occur
	// this allows for faster debug/release flipping without having to recompile or relink
	$CustomBuildStep
	{
		// General
		$CommandLine				"echo Checking Dependency $OUTBINDIR\$(TargetName).xex"			
		$Description				" "
		$Outputs					"$OUTBINDIR\$(TargetName).xex"
	}
}

// Skeleton Project
$Project
{
	$Folder	"Source Files"
	{
		$File "$SRCDIR\public\tier0\memoverride.cpp"
		{
			$Configuration
			{
				$Compiler
				{
					$Create/UsePrecompiledHeader	"Not Using Precompiled Headers"
				}
			}
		}
	}

	$Folder	"Link Libraries"
	{
		$File	"$SRCDIR\lib\public\tier0_360.lib"
		$File	"$SRCDIR\lib\public\tier1_360.lib"
		$File	"$SRCDIR\lib\public\vstdlib_360.lib"
	}

	$Folder "Resources"
	{
		$File	"$ROOTSCRIPT"
	}
}