You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.3 KiB
133 lines
4.3 KiB
//-----------------------------------------------------------------------------
|
|
// SOURCE_DLL_X360_BASE.VPC
|
|
//
|
|
// Base Settings for Source(TM) Projects
|
|
//-----------------------------------------------------------------------------
|
|
|
|
$Include "$SRCDIR\vpc_scripts\version.vpc"
|
|
|
|
$MacroRequired "SRCDIR"
|
|
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
|
|
$MacroRequired "OUTBINDIR"
|
|
$MacroRequired "DEVKITBINDIR" "bin"
|
|
|
|
// 360 must have a dll load address
|
|
$Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
|
|
$MacroRequired "LOADADDRESS_DEVELOPMENT"
|
|
$MacroRequired "LOADADDRESS_RETAIL"
|
|
$MacroRequired "LOADADDRESSNAME"
|
|
|
|
$Macro DLLDEMOSUFFIX "_demo\" [$DEMO]
|
|
$MacroEmptyString DLLDEMOSUFFIX "empty" [!$DEMO]
|
|
|
|
$Macro LIBPUBLIC "$SRCDIR\lib\public"
|
|
$Macro LIBCOMMON "$SRCDIR\lib\common"
|
|
|
|
$Include "$SRCDIR\vpc_scripts\source_dll_x360_debug.vpc"
|
|
$Include "$SRCDIR\vpc_scripts\source_dll_x360_release.vpc"
|
|
|
|
$IgnoreRedundancyWarning "ON"
|
|
|
|
// Common Configuration
|
|
$Configuration
|
|
{
|
|
$Compiler
|
|
{
|
|
$PreprocessorDefinitions "$BASE;_LOWVIOLENCE" [$LV]
|
|
$PreprocessorDefinitions "$BASE;_X360DEMO" [$X360DEMO]
|
|
$PreprocessorDefinitions "$BASE;COMPILER_MSVC;COMPILER_MSVCX360;_DLL_EXT=$_DLL_EXT"
|
|
$PreprocessorDefinitions "$BASE;DLLNAME=$OUTBINNAME"
|
|
}
|
|
|
|
$Linker
|
|
{
|
|
// This ignores the linker error "export '<symbol>' specified multiple times; using first specification
|
|
$AdditionalOptions "$BASE /IGNORE:4197"
|
|
}
|
|
|
|
$Xbox360ImageConversion
|
|
{
|
|
// All X360 DLLs must be signed with a special XML containing only version field
|
|
// the version of the DLL must match the version of default.xex that is signed
|
|
// with another XML including more settings (privileges, ratings, memory, etc.)
|
|
// DLLs must NOT be signed with the XML used for XEX
|
|
$ProjectDefaults "$SRCDIR\common\xlast_$VPCGAME$DLLDEMOSUFFIX\$VPCGAME""_dll.xml"
|
|
}
|
|
|
|
$ConsoleDeployment
|
|
{
|
|
$ExcludedFromBuild "Yes"
|
|
$DeploymentRoot "xe:\$VPCGAME$DLLDEMOSUFFIX"
|
|
}
|
|
|
|
$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 $(TargetDir)$(TargetName)_converted.dll" "\n" \
|
|
"$CRCCHECK" "\n"
|
|
}
|
|
|
|
$PostBuildEvent
|
|
{
|
|
$CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" \
|
|
"copy $(TargetDir)$(TargetName)_converted.dll $OUTBINDIR\$(TargetFileName)" "\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)_converted.dll $(RemoteRoot)\$DEVKITBINDIR\$(TargetFileName)" "\n"
|
|
|
|
$CommandLine "$BASE" \
|
|
"echo LoadAddressName=$LOADADDRESSNAME > $(TargetDir)$(TargetName).vpcinfo" "\n" \
|
|
"call $SRCDIR\vpc_scripts\valve_xbcp_wrapper.cmd $(TargetDir)$(TargetName).vpcinfo $(RemoteRoot)\$DEVKITBINDIR\$(TargetName).vpcinfo" "\n" [$VPCINFO]
|
|
|
|
|
|
$Description "Publishing to $OUTBINDIR"
|
|
$ExcludedFromBuild "No"
|
|
}
|
|
|
|
|
|
// this forces a dependency on the published directory
|
|
// when the dependency fails (the dll was 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\$(TargetFileName)"
|
|
$Description " "
|
|
$Outputs "$OUTBINDIR\$(TargetFileName)"
|
|
}
|
|
}
|
|
|
|
// Skeleton Project
|
|
$Project
|
|
{
|
|
$Folder "Source Files"
|
|
{
|
|
$File "$SRCDIR\public\tier0\memoverride.cpp"
|
|
{
|
|
$Configuration
|
|
{
|
|
$Compiler
|
|
{
|
|
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$Folder "Xbox"
|
|
{
|
|
$File "xbox\xbox.def"
|
|
}
|
|
|
|
$Folder "Link Libraries"
|
|
{
|
|
$ImpLib "$LIBPUBLIC\tier0"
|
|
$Lib "$LIBPUBLIC\tier1"
|
|
$Implib "$LIBPUBLIC\vstdlib"
|
|
$Lib "$LIBPUBLIC\interfaces"
|
|
}
|
|
}
|
|
|