This commit is contained in:
Totterynine
2021-09-13 15:31:53 +05:00
commit 4b952b0e4e
6325 changed files with 2673387 additions and 0 deletions

24
vpc_scripts/default.vgc Normal file
View File

@@ -0,0 +1,24 @@
//-----------------------------------------------------------------------------
// DEFAULT.VGC
//
// Configurations for all Source(TM) Projects
//-----------------------------------------------------------------------------
////////////////
// Game Names //
////////////////
$Games
{
"HL2MP"
"HL2"
"EPISODIC"
"SDK"
}
// Makes the VPC scripts work in the SDK's context
$Conditional "SOURCESDK" "1"
$Include "vpc_scripts\projects.vgc"
$Include "vpc_scripts\groups.vgc"

File diff suppressed because it is too large Load Diff

37
vpc_scripts/dllbase.txt Normal file
View File

@@ -0,0 +1,37 @@
engine 0x20000000
server game 0x22000000
client game 0x24000000
vphysics 0x26000000
materialsystem 0x28000000
shaderapidx8 0x2a000000
studiorender 0x2c000000
/////////////////////////////////////
XBOX 360 MANDATORY BASE 0x82000000-0x8BFFFFFF, (1MB blocks)
ADD EACH XBOX 360 PORTED DLL HERE
/////////////////////////////////////
engine.360.dll 0x83000000 (16)
gameui.360.dll 0x84100000 (5)
client.360.dll 0x84700000 (?)
server.360.dll 0x86000000 (?)
tier0.360.dll 0x88000000 (2)
vstdlib.360.dll 0x88200000 (2)
filesystem_stdio.360.dll 0x88400000 (2)
datacache.360.dll 0x88600000 (2)
stdshader_dbg.360.dll 0x88800000 (2)
stdshader_dx9.360.dll 0x88A00000 (3)
vgui2.360.dll 0x88D30000 (2)
inputsystem.360.dll 0x88F00000 (1)
materialsystem.360.dll 0x89000000 (4)
vguimatsurface.360.dll 0x89500000 (3)
vphysics.360.dll 0x89A00000 (5)
studiorender.360.dll 0x89F00000 (7)
launcher.360.dll 0x8A600000 (2)
shaderapidx9.360.dll 0x8A800000 (7)
SoundEmitterSystem.360.dll 0x8AF00000 (2)
SceneFileCache.360.dll 0x8B100000 (1)
bsppack.360.dll 0x8B200000 (3)
stdshader_dx8.360.dll 0x8B500000 (2)
appchooser.360.dll 0x8B700000 (1)
serverbrowser.360.dll 0x8B800000 (?)

84
vpc_scripts/groups.vgc Normal file
View File

@@ -0,0 +1,84 @@
//-----------------------------------------------------------------------------
// GROUPS.VGC
//
// Group Configurations for all Source(TM) Projects
//-----------------------------------------------------------------------------
///////////////////////
// Group definitions //
///////////////////////
$Group "gamedlls"
{
"client"
"server"
}
$Group "game"
{
"client"
"mathlib"
"raytrace"
"server"
"tier1"
"vgui_controls"
"engine"
"materialsystem"
"studiorender"
"filesystem_stdio"
"filesystem_steam"
"vpklib"
"vtf"
"bsppack"
"bspzip"
}
$Group "shaders"
{
"game_shader_dx9"
}
$Group "everything"
{
"captioncompiler"
"client"
"fgdlib"
"game_shader_dx9"
"glview"
"height2normal"
"mathlib"
"motionmapper"
"phonemeextractor"
"raytrace"
"qc_eyes"
"server"
"serverplugin_empty"
"tgadiff"
"tier1"
"vbsp"
"vgui_controls"
"vice"
"vrad_dll"
"vrad_launcher"
"vtf2tga"
"vtfdiff"
"vvis_dll"
"vvis_launcher"
"engine"
"materialsystem"
"studiorender"
"filesystem_stdio"
"filesystem_steam"
"vpklib"
"vtf"
"bsppack"
"bspzip"
}
$Group "dedicated"
{
"mathlib"
"server"
"tier1"
}

108
vpc_scripts/loadaddress.vpc Normal file
View File

@@ -0,0 +1,108 @@
//-----------------------------------------------------------------------------
// LOADADDRESS.VPC
//
// Contains the DLL/EXE Load Addresses. Generates the $LOADADDRESS_??? Macro from
// an easily updated table. This feature is primarily to facilitate the mandatory
// fixed address specification of 360 DLLs and thus efficient 360 packing of DLLs
// into memory.
//
// Format:
// $LoadAddressMacro <MacroName>
// {
// <ProjectName> <BaseAddress>
// }
//
// $LoadAddressMacroAuto <MacroName> <BaseAddress>
// {
// <ProjectName> <Length>
// }
//
// If "ProjectName" is not found, the "MacroName" will not be updated.
// "ProjectName" is the internal short project name reference and is usually the name of
// the project inside a group definition.
//
// "Length" is either floating point MB or integer bytes, and is used to successively
// to determine the next base address.
//-----------------------------------------------------------------------------
// Explicitly defined "empty" only for WINDOWS only because they are not required for WINDOWS projects
$Macro LOADADDRESS_DEVELOPMENT " " [$WINDOWS]
$Macro LOADADDRESS_RETAIL " " [$WINDOWS]
$LoadAddressMacro LOADADDRESS_DEVELOPMENT
{
launcher_main 0x82000000 [$X360]
simdtest 0x82000000 [$X360]
}
$LoadAddressMacro LOADADDRESS_RETAIL
{
launcher_main 0x82000000 [$X360]
simdtest 0x82000000 [$X360]
}
// Development versions require more memory to accomodate debug builds, release builds have to match debug for hybrid builds
$LoadAddressMacroAuto LOADADDRESS_DEVELOPMENT 0x82200000 [$X360]
{
// top of chain, due to licensee lack of source restrictions
vphysics 5.5
tier0 2.0
vstdlib 2.0
filesystem_stdio 2.5
datacache 2.5
inputsystem 1.5
launcher 2.0
SoundEmitterSystem 2.0
SceneFileCache 1.5
vgui_dll 2.5
gameui 6.0
materialsystem 5.0
vguimatsurface 4.0
shaderapidx9 11.0
stdshader_dx9 4.5
studiorender 7.5
engine 17.5
client 17.5
server 25.5
// transient DLLs
bsppack 3.0
appchooser 8.5
vxbdm 0.5
}
// Retail versions are expected to be minimally packed
$LoadAddressMacroAuto LOADADDRESS_RETAIL 0x82200000 [$X360]
{
// top of chain, due to licensee lack of source restrictions
vphysics 2.5
tier0 1.0
vstdlib 1.0
filesystem_stdio 1.0
datacache 1.0
inputsystem 1.0
launcher 1.0
SoundEmitterSystem 1.0
SceneFileCache 1.0
vgui_dll 1.0
gameui 2.0
materialsystem 1.5
vguimatsurface 1.5
shaderapidx9 4.0
stdshader_dx9 1.5
studiorender 4.5
engine 6.0
client 10.5
server 15.5
// transient DLLs
bsppack 1.5
appchooser 1.5
vxbdm 0.5
}

View File

@@ -0,0 +1,5 @@
$Macro PLATSUBDIR "\." [$WIN32]
$Macro PLATSUBDIR "\x64" [$WIN64]
$Macro PLATSUBDIR "\." [$X360]
$Macro PLATSUBDIR "\linux32" [$LINUX32]
$Macro PLATSUBDIR "\osx32" [$OSX32]

181
vpc_scripts/projects.vgc Normal file
View File

@@ -0,0 +1,181 @@
//-----------------------------------------------------------------------------
// PROJECTS.VGC
//
// Project Configurations for all Source(TM) Projects
//-----------------------------------------------------------------------------
/////////////////////////
// Project definitions //
/////////////////////////
$Project "captioncompiler"
{
"utils\captioncompiler\captioncompiler.vpc" [$WIN32]
}
$Project "client"
{
"game\client\client_hl2mp.vpc" [($WIN32||$POSIX) && $HL2MP]
"game\client\client_episodic.vpc" [($WIN32||$POSIX) && $EPISODIC]
"game\client\client_hl2.vpc" [($WIN32||$POSIX) && $HL2]
"game\client\client_sdk.vpc" [($WIN32||$POSIX) && $SDK]
}
$Project "fgdlib"
{
"fgdlib\fgdlib.vpc" [$WIN32]
}
$Project "game_shader_dx9"
{
"materialsystem\stdshaders\game_shader_dx9_hl2mp.vpc" [$HL2MP]
}
$Project "glview"
{
"utils\glview\glview.vpc" [$WIN32]
}
$Project "height2normal"
{
"utils\height2normal\height2normal.vpc" [$WIN32]
}
$Project "server"
{
"game\server\server_hl2mp.vpc" [($WIN32||$POSIX) && $HL2MP]
"game\server\server_episodic.vpc" [($WIN32||$POSIX) && $EPISODIC]
"game\server\server_hl2.vpc" [($WIN32||$POSIX) && $HL2]
"game\server\server_sdk.vpc" [($WIN32||$POSIX) && $SDK]
}
$Project "mathlib"
{
"mathlib\mathlib.vpc" [$WINDOWS||$X360||$POSIX]
}
$Project "motionmapper"
{
"utils\motionmapper\motionmapper.vpc" [$WIN32]
}
$Project "phonemeextractor"
{
"utils\phonemeextractor\phonemeextractor.vpc" [$WIN32]
}
$Project "raytrace"
{
"raytrace\raytrace.vpc" [$WIN32||$X360||$POSIX]
}
$Project "qc_eyes"
{
"utils\qc_eyes\qc_eyes.vpc" [$WIN32]
}
$Project "serverplugin_empty"
{
"utils\serverplugin_sample\serverplugin_empty.vpc" [$WIN32||$POSIX]
}
$Project "tgadiff"
{
"utils\tgadiff\tgadiff.vpc" [$WIN32]
}
$Project "tier1"
{
"tier1\tier1.vpc" [$WINDOWS || $X360||$POSIX]
}
$Project "vbsp"
{
"utils\vbsp\vbsp.vpc" [$WIN32]
}
$Project "vgui_controls"
{
"vgui2\vgui_controls\vgui_controls.vpc" [$WIN32||$X360||$POSIX]
}
$Project "vice"
{
"utils\vice\vice.vpc" [$WIN32]
}
$Project "vrad_dll"
{
"utils\vrad\vrad_dll.vpc" [$WIN32]
}
$Project "vrad_launcher"
{
"utils\vrad_launcher\vrad_launcher.vpc" [$WIN32]
}
$Project "vtf2tga"
{
"utils\vtf2tga\vtf2tga.vpc" [$WIN32]
}
$Project "vtfdiff"
{
"utils\vtfdiff\vtfdiff.vpc" [$WIN32]
}
$Project "vvis_dll"
{
"utils\vvis\vvis_dll.vpc" [$WIN32]
}
$Project "vvis_launcher"
{
"utils\vvis_launcher\vvis_launcher.vpc" [$WIN32]
}
$Project "vpklib"
{
"vpklib/vpklib.vpc" [$WIN32]
}
$Project "vtf"
{
"vtf/vtf.vpc" [$WIN32]
}
$Project "engine"
{
"engine/engine.vpc" [$WIN32]
}
$Project "materialsystem"
{
"materialsystem/materialsystem.vpc" [$WIN32]
}
$Project "studiorender"
{
"studiorender\studiorender.vpc" [$WIN32]
}
$Project "filesystem_stdio"
{
"filesystem/filesystem_stdio.vpc" [$WIN32]
}
$Project "filesystem_steam"
{
"filesystem/filesystem_steam.vpc" [$WIN32]
}
$Project "bsppack"
{
"utils\bsppack\bsppack.vpc" [$WIN32]
}
$Project "bspzip"
{
"utils\bspzip\bspzip.vpc" [$WIN32]
}

View File

@@ -0,0 +1,26 @@
$MacroRequired GENERATED_PROTO_DIR
$CustomBuildStep "proto"
{
$Description "Running Protocol Buffer Compiler on $(InputFileName)..."
$CommandLine "if not exist $GENERATED_PROTO_DIR mkdir $GENERATED_PROTO_DIR" "\n" \
"$SRCDIR\gcsdk\bin\protoc.exe --proto_path=$SRCDIR\thirdparty\protobuf-2.3.0\src --proto_path=$(InputDir) --proto_path=$SRCDIR\gcsdk --cpp_out=$GENERATED_PROTO_DIR $(InputPath)" [$WINDOWS]
$CommandLine "mkdir $GENERATED_PROTO_DIR 2> /dev/null;" \
"$SRCDIR/devtools/bin/osx32/protoc --proto_path=$SRCDIR\thirdparty\protobuf-2.3.0\src --proto_path=$(InputDir) --proto_path=$SRCDIR\gcsdk --cpp_out=$GENERATED_PROTO_DIR $(InputPath)" [$OSXALL]
$CommandLine "mkdir $GENERATED_PROTO_DIR 2> /dev/null;" \
"$SRCDIR/gcsdk/bin/linux/protoc --proto_path=$SRCDIR\thirdparty\protobuf-2.3.0\src --proto_path=$(InputDir) --proto_path=$SRCDIR\gcsdk --cpp_out=$GENERATED_PROTO_DIR $(InputPath)" [$LINUXALL]
$Outputs "$GENERATED_PROTO_DIR\$(InputName).pb.cc;$GENERATED_PROTO_DIR\$(InputName).pb.h"
}
$Configuration
{
$Compiler
{
// General
$AdditionalIncludeDirectories "$BASE;$GENERATED_PROTO_DIR;$SRCDIR\thirdparty\protobuf-2.3.0\src"
}
}

View File

@@ -0,0 +1,46 @@
//-----------------------------------------------------------------------------
// source_base.VPC
//
// This is the base VPC file that is included by all others, on all platforms.
//
// Project Script
//-----------------------------------------------------------------------------
// Set which branch we are building out of.
// This is one file we expect to be different between branches and so it must be merged carefully
// Staging branch:
//$Conditional STAGING_ONLY "1"
// rel/tf_beta branch:
//$Conditional TF_BETA "1"
$Configuration "Debug"
{
$Compiler
{
// Pass on appropriate branch define to preprocessor
$PreprocessorDefinitions "VPC"
$PreprocessorDefinitions "$BASE;STAGING_ONLY" [$STAGING_ONLY]
$PreprocessorDefinitions "$BASE;TF_BETA" [$TF_BETA]
$PreprocessorDefinitions "$BASE;RAD_TELEMETRY_DISABLED" [$SOURCESDK]
// Need to revisit the code to make things run with the _RETAIL preprocessor definition
// This line was added in the previous check-in, but had previously not been defined in this branch
// $PreprocessorDefinitions "$BASE;_RETAIL" [$RETAIL]
}
}
$Configuration "Release"
{
$Compiler
{
// Pass on appropriate branch define to preprocessor
$PreprocessorDefinitions "VPC"
$PreprocessorDefinitions "$BASE;STAGING_ONLY" [$STAGING_ONLY]
$PreprocessorDefinitions "$BASE;TF_BETA" [$TF_BETA]
$PreprocessorDefinitions "$BASE;RAD_TELEMETRY_DISABLED" [$SOURCESDK]
// Need to revisit the code to make things run with the _RETAIL preprocessor definition
// This line was added in the previous check-in, but had previously not been defined in this branch
// $PreprocessorDefinitions "$BASE;_RETAIL" [$RETAIL]
}
}

View File

@@ -0,0 +1,56 @@
//-----------------------------------------------------------------------------
// SOURCE_CRYPTLIB_INCLUDE.VPC
//
// Includes needed to link cryptopp
//
//-----------------------------------------------------------------------------
$Project
{
$Folder "Source Files"
{
$File "$SRCDIR\common\crypto.cpp"
{
$Configuration
{
$Compiler
{
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
}
}
}
}
$Folder "Link Libraries"
{
$Lib vpklib
// So we can check the signature of the item schema.
$Lib "$SRCDIR\lib\public\$PLATSUBDIR\2013\release\cryptlib" [$WINDOWS&&!$VS2015]
$Libexternal $LIBCOMMON/libcrypto [$OSXALL]
$Libexternal $LIBCOMMON/libcryptopp [$OSXALL]
$Libexternal "$SRCDIR\lib\common\$(CRYPTOPPDIR)\libcrypto" [$LINUXALL]
$Libexternal "$SRCDIR\lib\common\$(CRYPTOPPDIR)\libcryptopp" [$LINUXALL]
}
$Folder "Link Libraries" [$VS2015]
{
$File "$SRCDIR\lib\common\win32\2015\release\cryptlib.lib" [$WIN32]
{
$Configuration "Debug" { $ExcludedFromBuild "Yes" }
}
$File "$SRCDIR\lib\common\win32\2015\debug\cryptlib.lib" [$WIN32]
{
$Configuration "Release" { $ExcludedFromBuild "Yes" }
}
$File "$SRCDIR\lib\common\$PLATSUBDIR\2015\release\cryptlib.lib" [$WIN64]
{
$Configuration "Debug" { $ExcludedFromBuild "Yes" }
}
$File "$SRCDIR\lib\common\$PLATSUBDIR\2015\debug\cryptlib.lib" [$WIN64]
{
$Configuration "Release" { $ExcludedFromBuild "Yes" }
}
}
}

View File

@@ -0,0 +1,25 @@
$MacroRequired "OUTDLLEXT" "$_DLL_EXT"
$Include "$SRCDIR\vpc_scripts\platform_dirs.vpc"
$include "$SRCDIR\vpc_scripts\source_base.vpc"
$include "$SRCDIR\vpc_scripts\source_dll_posix_base.vpc" [$POSIX]
$Include "$SRCDIR\vpc_scripts\source_dll_win32_base.vpc" [( $WIN32 || $WIN64 ) && !$POSIX]
$Include "$SRCDIR\vpc_scripts\source_dll_x360_base.vpc" [$X360]
$Include "$SRCDIR\vpc_scripts\source_ppu_prx_ps3_base.vpc" [$PS3]
$Include "$SRCDIR\vpc_scripts\source_video_base.vpc"
$Configuration
{
$General
{
$TargetExtension "$OUTDLLEXT"
}
$Compiler
{
$PreprocessorDefinitions "$BASE;DEV_BUILD" [!$PUBLISH]
$PreprocessorDefinitions "$BASE;_PROFILE" [$PROFILE && !$RETAIL]
$PreprocessorDefinitions "$BASE;RETAIL_ASSERTS" [$RETAIL && $RETAILASSERTS]
$PreprocessorDefinitions "$BASE;FRAME_POINTER_OMISSION_DISABLED" // This is now always true.
}
}

View File

@@ -0,0 +1,45 @@
$Include "$SRCDIR\vpc_scripts\version.vpc"
$Include "$SRCDIR\vpc_scripts\source_linux_base_project.vpc"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$MacroRequired "OUTBINDIR" "$SRCDIR\..\game\bin"
// General configuration info.
$Configuration
{
$General
{
$ConfigurationType "Dynamic Library (.dll)"
$OutputFile "$(OBJ_DIR)/$OUTBINNAME$_DLL_EXT"
$GameOutputFile "$OUTBINDIR/$OUTBINNAME$_DLL_EXT"
}
$Compiler
{
$PreprocessorDefinitions "$BASE;RAD_TELEMETRY_DISABLED" [$SOURCESDK ]
}
}
// 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"
}
}
}
}
$Folder "Resources"
{
$File "$ROOTSCRIPT"
}
}

View File

@@ -0,0 +1,51 @@
$Include "$SRCDIR\vpc_scripts\version.vpc"
$Include "$SRCDIR\vpc_scripts\source_posix_base.vpc"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$MacroRequired "OUTBINDIR" "$SRCDIR\..\game\bin"
// General configuration info.
$Configuration
{
$General
{
$ConfigurationType "Dynamic Library (.dll)"
$GameOutputFile "$OUTBINDIR/$OUTBINNAME$OUTDLLEXT"
}
$Compiler
{
$PreprocessorDefinitions "$BASE;DLLNAME=$OUTBINNAME"
}
$Linker
{
$OutputFile "$(OBJ_DIR)/$OUTBINNAME$OUTDLLEXT"
}
}
// 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"
}
}
}
}
$Folder "Resources"
{
$File "$ROOTSCRIPT"
}
}

View File

@@ -0,0 +1,44 @@
//===================== Copyright (c) Valve Corporation. All Rights Reserved. ======================
//
//==================================================================================================
$Macro QT_ROOT "$SRCDIR\thirdparty\lgpl\qt"
$Include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
$Include "$SRCDIR\vpc_scripts\qt_base.vpc"
$Configuration
{
$Compiler
{
$AdditionalIncludeDirectories "$BASE;.\;$SRCDIR\game\shared;$QT_ROOT\include;.\$QT_TARGET_SUBDIR"
$PreprocessorDefinitions "$BASE;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT"
$DisableSpecificWarnings "4127;4512;$BASE"
// Causes a bunch of bogus compiler warnings for now; let's disable it
$Detect64bitPortabilityIssues "No"
}
}
$Configuration "Release"
{
$Compiler
{
$PreprocessorDefinitions "$BASE;QT_NO_DEBUG"
}
}
$Project
{
$Folder "Link Libraries" [$QTDEBUG]
{
$Lib "$QT_ROOT\lib\qtcored4"
$Lib "$QT_ROOT\lib\qtguid4"
}
$Folder "Link Libraries" [!$QTDEBUG]
{
$Lib "$QT_ROOT\lib\qtcore4"
$Lib "$QT_ROOT\lib\qtgui4"
}
}

View File

@@ -0,0 +1,143 @@
//-----------------------------------------------------------------------------
// SOURCE_DLL_WIN32_BASE.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$Include "$SRCDIR\vpc_scripts\version.vpc"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$MacroRequired "OUTBINDIR"
$Macro OUTBINDIR "$OUTBINDIR$PLATSUBDIR"
$Macro LIBPUBLIC "$SRCDIR\lib\public$PLATSUBDIR"
$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR"
$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"
// Common Configuration
$Configuration
{
$General
{
$TargetName "$OUTBINNAME"
}
$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;DLLNAME=$OUTBINNAME"
}
$Compiler [$WIN32]
{
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
}
$Linker
{
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [$WIN32||$WIN64]
$TargetMachine "MachineX86 (/MACHINE:X86)" [$WIN32]
$TargetMachine "MachineX64 (/MACHINE:X64)" [$WIN64]
// Suppress this pointless 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"
$AdditionalOptions "$BASE $SRCDIR\lib\public\ftol3.obj" [$VS2013 && $WIN32 && !$DISABLE_FTOL3_OVERRIDE && !$SOURCESDK] // Work around CRT bug https://connect.microsoft.com/VisualStudio/feedback/details/806362/vc12-pollutes-the-floating-point-stack-when-casting-infinity-nan-to-unsigned-long#
}
$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" "\n"
}
$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)$(TargetFileName)$QUOTE $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE" "\n" \
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
"if exist $QUOTE$(TargetDir)$(TargetName).map$QUOTE copy $QUOTE$(TargetDir)$(TargetName).map$QUOTE $OUTBINDIR\$(TargetName).map" "\n"
$CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $QUOTE$OUTBINDIR\$(TargetName).pdb$QUOTE $SRCDIR" "\n" [!$SOURCESDK]
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$(TargetName).pdb$QUOTE $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)$(TargetFileName)$QUOTE" "\n" \
"exit 1" "\n" \
":BuildEventOK" "\n"
$CommandLine "$BASE" "\n" \
"call $SRCDIR\devtools\bin\vsign.bat -sign $OUTBINDIR\$(TargetFileName)" "\n" [$RETAIL && $PUBLISH]
$CommandLine "$BASE" "\n" \
"call $SRCDIR\devtools\bin\vsign.bat -signvalve $OUTBINDIR\$(TargetFileName)" "\n" [!$RETAIL && !$PUBLISH && !$SOURCESDK]
$Description "Publishing to $OUTBINDIR"
$ExcludedFromBuild "No"
}
}
// 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 and higher.
$File "$SRCDIR\public\tier0\pointeroverride.asm" [$WIN32]
{
$Configuration
{
$CustomBuildStep
{
// General
$CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /safeseh /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"
{
$Implib "$LIBPUBLIC\tier0"
$Lib "$LIBPUBLIC\tier1"
$Implib "$LIBPUBLIC\vstdlib"
}
}

View File

@@ -0,0 +1,326 @@
//-----------------------------------------------------------------------------
// SOURCE_DLL_WIN32_DEBUG.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME"
$MacroRequired "OUTBINDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequired "OUTDLLEXT"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Debug"
{
$General
{
// General
$OutputDirectory ".\Debug$_SUBDIRSUFFIX"
$IntermediateDirectory ".\Debug$_SUBDIRSUFFIX"
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Dynamic Library (.dll)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization
}
$Debugging
{
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "Program Database for Edit & Continue (/ZI)" [$WIN32]
$DebugInformationFormat "Program Database (/Zi)" [$WIN64]
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$TreatWarningsAsErrors
$UseUNICODEResponseFiles
// Optimization
$Optimization "Disabled (/Od)"
$InlineFunctionExpansion
$EnableIntrinsicFunctions
$FavorSizeOrSpeed
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;_HAS_ITERATOR_DEBUGGING=0;WIN32;_WIN32;_DEBUG;DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
$EnableMinimalRebuild
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks "Default"
$RuntimeLibrary "Multi-threaded Debug (/MTd)"
$StructMemberAlignment
$BufferSecurityCheck "Yes"
$EnableFunctionLevelLinking
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// Language
$DisableLanguageExtensions
$DefaultCharUnsigned
$TreatWCHAR_TAsBuiltInType
$ForceConformanceInForLoopScope "Yes (/Zc:forScope)"
$EnableRunTimeTypeInfo "Yes (/GR)"
$OpenMPSupport
// Precompiled Headers
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
$Create/UsePCHThroughFile
$PrecompiledHeaderFile
// Output Files
$ExpandAttributedSource
$AssemblerOutput
$ASMListLocation "$(IntDir)/"
$ObjectFileName "$(IntDir)/"
$ProgramDatabaseFileName "$(IntDir)/"
$GenerateXMLDocumentationFiles "No"
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
$AdditionalOptions "/Zm200"
}
$Linker
{
// General
$OutputFile "$(OutDir)/$OUTBINNAME$OUTDLLEXT"
$ShowProgress "Not Set"
$Version
$EnableIncrementalLinking "Yes (/INCREMENTAL)"
$SuppressStartupBanner "Yes (/NOLOGO)"
$IgnoreImportLibrary
$RegisterOutput
$AdditionalLibraryDirectories "$LIBCOMMON;$LIBPUBLIC"
$LinkLibraryDependencies
$UseLibraryDependencyInputs
$UseUNICODEResponseFiles "No"
// Input
$AdditionalDependencies
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary "libc;libcd;libcmt;libcpmt;libcpmt1"
$ModuleDefinitionFile
$AddModuleToAssembly
$EmbedManagedResourceFile
$ForceSymbolReferences
$DelayLoadedDLLs
$AssemblyLinkResource
// Manifest File
$GenerateManifest "No"
$ManifestFile
$AdditionalManifestDependencies
$AllowIsolation
// Debugging
$GenerateDebugInfo "Yes (/DEBUG)"
$GenerateProgramDatabaseFile "$(IntDir)/$(TargetName).pdb"
$StripPrivateSymbols
$MapExports
$DebuggableAssembly
// System
$SubSystem "Windows (/SUBSYSTEM:WINDOWS)"
$HeapReserveSize
$HeapCommitSize
$StackReserveSize
$StackCommitSize
$EnableLargeAddresses
$TerminalServer
$SwapRunFromCD
$SwapRunFromNetwork
$Driver
// DYNAMICBASE/ASLR in debug builds is annoying and not helpful.
$RandomizedBaseAddress "false"
// Optimization
$References
$EnableCOMDATFolding
$OptimizeForWindows98
$FunctionOrder
$ProfileGuidedDatabase
$LinkTimeCodeGeneration
// Embedded IDL
$MIDLCommands
$IgnoreEmbeddedIDL
$MergeIDLBaseFileName
$TypeLibrary
$TypeLibResourceID
// Advanced
$EntryPoint
$NoEntryPoint
$SetChecksum
$BaseAddress "$LOADADDRESS_DEVELOPMENT"
$FixedBaseAddress
$TurnOffAssemblyGeneration
$DelayLoadedDLL
$ImportLibrary
$MergeSections
$TargetMachine
$Profile
$CLRThreadAttribute
$CLRImageType
$KeyFile
$KeyContainer
$DelaySign
$ErrorReporting "Prompt Immediately (/ERRORREPORT:PROMPT)"
$CLRUnmanagedCodeCheck
// SAFE_SEH should always be disabled on debug builds.
$ImageHasSafeExceptionHandlers "false"
// Command Line
$AdditionalOptions
}
$ManifestTool
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$VerboseOutput
$AssemblyIdentity
$UseUNICODEResponseFiles
$UseFAT32WorkAround
// Input And Output
$AdditionalManifestFiles
$InputResourceManifests
$EmbedManifest
$OutputManifestFile
$ManifestResourceFile
$GenerateCatalogFiles
$DependencyInformationFile
// Isolated COM
$TypeLibraryFile
$RegistrarScriptFile
$ComponentFileName
$ReplacementsFile
// Advanced
$UpdateFileHashes
$UpdateFileHashesSearchPath
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$BrowseInformation
{
$SuppressStartupBanner "Yes (/nologo)"
$OutputFile "$(OutDir)/$OUTBINNAME.bsc"
$AdditionalOptions
}
$Resources
{
// General
$PreprocessorDefinitions "$BASE;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)"
$Culture "English (United States) (0x409)"
$AdditionalIncludeDirectories
$IgnoreStandardIncludePath
$ShowProgress
$ResourceFileName
// Command Line
$AdditionalOptions
}
$PreBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PreLinkEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PostBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$CustomBuildStep
{
// General
$CommandLine
$Description
$Outputs
$AdditionalDependencies
}
}

View File

@@ -0,0 +1,353 @@
//-----------------------------------------------------------------------------
// SOURCE_DLL_WIN32_RELEASE.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
// Disable frame pointer omission to allow fast stack walking, necessary for
// good ETW profiling.
$Macro NOFPO "1"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME"
$MacroRequired "OUTBINDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequired "OUTDLLEXT"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Release"
{
$General
{
// General
$OutputDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
$IntermediateDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
$OutputDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
$IntermediateDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
$OutputDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
$IntermediateDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Dynamic Library (.dll)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization "Use Link Time Code Generation" [$LTCG]
}
$Debugging
{
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "Program Database (/Zi)"
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$TreatWarningsAsErrors
$UseUNICODEResponseFiles
// Optimization
$Optimization "Maximize Speed (/O2)"
$InlineFunctionExpansion "Any Suitable (/Ob2)"
$EnableIntrinsicFunctions "Yes (/Oi)"
$FavorSizeOrSpeed "Favor Fast Code (/Ot)"
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;WIN32;_WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
$EnableMinimalRebuild
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks
$RuntimeLibrary "Multi-threaded (/MT)"
$StructMemberAlignment
$BufferSecurityCheck "No" [$RETAIL]
$BufferSecurityCheck "Yes" [!$RETAIL]
$EnableFunctionLevelLinking "Yes (/Gy)"
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// Language
$DisableLanguageExtensions
$DefaultCharUnsigned
$TreatWCHAR_TAsBuiltInType
$ForceConformanceInForLoopScope "Yes (/Zc:forScope)"
$EnableRunTimeTypeInfo "Yes (/GR)"
$OpenMPSupport
// Precompiled Headers
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
$Create/UsePCHThroughFile
$PrecompiledHeaderFile
// Output Files
$ExpandAttributedSource
$AssemblerOutput
$ASMListLocation "$(IntDir)/"
$ObjectFileName "$(IntDir)/"
$ProgramDatabaseFileName "$(IntDir)/"
$GenerateXMLDocumentationFiles "No"
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
$AdditionalOptions "/Zm200"
// Enable extra debugging information. This switch requires VS 2013 Update 3.
// With VS 2013 make sure that Edit-And-Continue is disabled in the debugger settings so that
// the debugger uses the enhanced debug information.
// http://randomascii.wordpress.com/2013/09/11/debugging-optimized-codenew-in-visual-studio-2012/
$AdditionalOptions "$BASE /Zo"
$AdditionalOptions "$BASE /Oy-" [$NOFPO]
}
$Linker
{
// General
$OutputFile "$(OutDir)/$OUTBINNAME$OUTDLLEXT"
$ShowProgress "Not Set"
$Version
$EnableIncrementalLinking "No (/INCREMENTAL:NO)"
$SuppressStartupBanner "Yes (/NOLOGO)"
$IgnoreImportLibrary
$RegisterOutput
$AdditionalLibraryDirectories "$LIBCOMMON;$LIBPUBLIC"
$LinkLibraryDependencies
$UseLibraryDependencyInputs
$UseUNICODEResponseFiles "No"
// Input
$AdditionalDependencies
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary "libc;libcd;libcmtd;libcpmtd;libcpmtd0;libcpmtd1"
$ModuleDefinitionFile
$AddModuleToAssembly
$EmbedManagedResourceFile
$ForceSymbolReferences
$DelayLoadedDLLs
$AssemblyLinkResource
// Manifest File
$GenerateManifest "No"
$ManifestFile
$AdditionalManifestDependencies
$AllowIsolation
//$UACExecutionLevel
// Debugging
$GenerateDebugInfo "Yes (/DEBUG)"
$GenerateProgramDatabaseFile "$(IntDir)/$(TargetName).pdb"
$StripPrivateSymbols
$MapExports
$DebuggableAssembly
// System
$SubSystem "Windows (/SUBSYSTEM:WINDOWS)"
$HeapReserveSize
$HeapCommitSize
$StackReserveSize
$StackCommitSize
$EnableLargeAddresses
$TerminalServer
$SwapRunFromCD
$SwapRunFromNetwork
$Driver
// RandomizeBaseAddress (/DYNAMICBASE, /ASLR) is a hugely important security setting.
// However it can cause confusion during development and can make tracking down certain
// bugs tricky by making code/stack/heap addresses change between runs. Enable for retail,
// but disable for development builds.
$RandomizedBaseAddress "true" [$RETAIL]
$RandomizedBaseAddress "false" [!$RETAIL]
// Optimization
$References "Eliminate Unreferenced Data (/OPT:REF)"
// COMDAT folding can be very confusing when debugging and profiling because it can
// cause execution to go through nonsensical functions (that happen to be binary
// equivalent to the logical function). The performance benefit is small enough that
// it is not worth enabling in the development builds. It should be enabled on retail
// builds.
$EnableCOMDATFolding "Remove Redundant COMDATs (/OPT:ICF)" [$RETAIL]
$EnableCOMDATFolding "No (/OPT:NOICF)" [!$RETAIL]
$OptimizeForWindows98
$FunctionOrder
$ProfileGuidedDatabase
$LinkTimeCodeGeneration
// Embedded IDL
$MIDLCommands
$IgnoreEmbeddedIDL
$MergeIDLBaseFileName
$TypeLibrary
$TypeLibResourceID
// Advanced
$EntryPoint
$NoEntryPoint
$SetChecksum
$BaseAddress "$LOADADDRESS_DEVELOPMENT"
//$BaseAddress "$LOADADDRESS_RETAIL" [$RETAIL]
$FixedBaseAddress
$TurnOffAssemblyGeneration
$DelayLoadedDLL
$ImportLibrary
$MergeSections
$TargetMachine
$Profile
$CLRThreadAttribute
$CLRImageType
$KeyFile
$KeyContainer
$DelaySign
$ErrorReporting "Prompt Immediately (/ERRORREPORT:PROMPT)"
$CLRUnmanagedCodeCheck
// Most DLLs cannot yet handle SafeSEH
$ImageHasSafeExceptionHandlers "false"
// Command Line
$AdditionalOptions
}
$ManifestTool
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$VerboseOutput
$AssemblyIdentity
$UseUNICODEResponseFiles
$UseFAT32WorkAround
// Input And Output
$AdditionalManifestFiles
$InputResourceManifests
$EmbedManifest
$OutputManifestFile
$ManifestResourceFile
$GenerateCatalogFiles
$DependencyInformationFile
// Isolated COM
$TypeLibraryFile
$RegistrarScriptFile
$ComponentFileName
$ReplacementsFile
// Advanced
$UpdateFileHashes
$UpdateFileHashesSearchPath
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$BrowseInformation
{
$SuppressStartupBanner "Yes (/nologo)"
$OutputFile "$(OutDir)/$OUTBINNAME.bsc"
$AdditionalOptions
}
$Resources
{
// General
$PreprocessorDefinitions "$BASE;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)"
$Culture "English (United States) (0x409)"
$AdditionalIncludeDirectories
$IgnoreStandardIncludePath
$ShowProgress
$ResourceFileName
// Command Line
$AdditionalOptions
}
$PreBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PreLinkEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PostBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$CustomBuildStep
{
// General
$CommandLine
$Description
$Outputs
$AdditionalDependencies
}
}

View File

@@ -0,0 +1,20 @@
$Include "$SRCDIR\vpc_scripts\platform_dirs.vpc"
$include "$SRCDIR\vpc_scripts\source_base.vpc"
$Include "$SRCDIR\vpc_scripts\source_exe_posix_base.vpc" [$POSIX]
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_base.vpc" [$WIN32 || $WIN64]
$Include "$SRCDIR\vpc_scripts\source_xex_x360_base.vpc" [$X360]
$Include "$SRCDIR\vpc_scripts\source_ppu_elf_ps3_base.vpc" [$PS3]
$Include "$SRCDIR\vpc_scripts\source_video_base.vpc"
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;DEV_BUILD" [!$PUBLISH]
$PreprocessorDefinitions "$BASE;_PROFILE" [$PROFILE && !$RETAIL]
$PreprocessorDefinitions "$BASE;RETAIL_ASSERTS" [$RETAIL && $RETAILASSERTS]
$PreprocessorDefinitions "$BASE;FRAME_POINTER_OMISSION_DISABLED" // This is now always true.
}
}

View File

@@ -0,0 +1,18 @@
$Include "$SRCDIR\vpc_scripts\platform_dirs.vpc"
$include "$SRCDIR\vpc_scripts\source_base.vpc"
$Include "$SRCDIR\vpc_scripts\source_exe_con_win32_base.vpc" [$WINDOWS]
$Include "$SRCDIR\vpc_scripts\source_exe_posix_base.vpc" [$POSIX]
$Include "$SRCDIR\vpc_scripts\source_xex_x360_base.vpc" [$X360]
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;DEV_BUILD" [!$PUBLISH]
$PreprocessorDefinitions "$BASE;_PROFILE" [$PROFILE && !$RETAIL]
$PreprocessorDefinitions "$BASE;RETAIL_ASSERTS" [$RETAIL && $RETAILASSERTS]
$PreprocessorDefinitions "$BASE;FRAME_POINTER_OMISSION_DISABLED" // This is now always true.
}
}

View File

@@ -0,0 +1,26 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_CON_WIN32_BASE.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINDIR"
$MacroRequired "PLATSUBDIR"
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_base.vpc"
$Configuration
{
$General
{
$TargetName "$OUTBINNAME"
}
$Linker
{
$SubSystem "Console (/SUBSYSTEM:CONSOLE)"
}
}

View File

@@ -0,0 +1,57 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_WIN_WIN32.VPC
//
// Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------
$Include "$SRCDIR\vpc_scripts\version.vpc"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$MacroRequired "OUTBINDIR"
$Macro IS_LIB_PROJECT "1"
$Include "$SRCDIR\vpc_scripts\source_linux_base_project.vpc"
$Project
{
$Folder "Source Files"
{
$File "$SRCDIR\public\tier0\memoverride.cpp"
{
$Configuration
{
$Compiler
{
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
}
}
}
}
$Folder "Link Libraries" [$CLANG]
{
$File "$SRCDIR/thirdparty/gperftools-2.0/.libs/libtcmalloc_minimal.so"
}
}
$Configuration
{
$General
{
$GameOutputFile "$OUTBINDIR/$OUTBINNAME"
}
$Linker
{
$OutputFile "$OUTBINDIR/$OUTBINNAME"
// In order to get the Valve standard allocator memory alignment (16-byte
// alignment for objects that are a multiple of 16 bytes) we use tcmalloc.
// Using -l will ask the linker to use it, but if there are no references to
// malloc/free then it may not actually use it. Wrapping the flag in the
// as-needed controls forces it to be pulled in.
$GCC_ExtraLinkerFlags "-Wl,--no-as-needed -ltcmalloc_minimal -Wl,--as-needed" [$CLANG]
}
}

View File

@@ -0,0 +1,71 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_posix.VPC
//
// Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------
$Include "$SRCDIR\vpc_scripts\version.vpc"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$Macro IS_LIB_PROJECT "1"
$Include "$SRCDIR\vpc_scripts\source_posix_base.vpc"
$Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
$IgnoreRedundancyWarning "ON"
$Configuration
{
$General
{
$ConfigurationType "Application (.exe)"
}
$Compiler
{
$PreprocessorDefinitions "$BASE;EXENAME=$OUTBINNAME"
}
$Linker
{
$OutputFile "$SRCDIR/../game/$OUTBINNAME"
// In order to get the Valve standard allocator memory alignment (16-byte
// alignment for objects that are a multiple of 16 bytes) we use tcmalloc.
// Using -l will ask the linker to use it, but if there are no references
// to malloc/free then it may not actually use it. Wrapping the flag in the
// as-needed controls forces it to be pulled in (from libtcmalloc_minimal.so).
$GCC_ExtraLinkerFlags "-Wl,--no-as-needed -ltcmalloc_minimal -Wl,--as-needed" [$LINUXALL&&!$DEDICATED]
}
}
$Project
{
$Folder "Source Files"
{
$File "$SRCDIR\public\tier0\memoverride.cpp"
{
$Configuration
{
$Compiler
{
$Create/UsePrecompiledHeader "Not Using Precompiled Headers"
}
}
}
}
$Folder "Resources"
{
$File "$ROOTSCRIPT"
}
$Folder "Link Libraries" [$LINUXALL&&!$DEDICATED]
{
$File "$SRCDIR/thirdparty/gperftools-2.0/.libs/libtcmalloc_minimal.so"
}
}

View File

@@ -0,0 +1,5 @@
// call up either the posix or win32 vpc file based upon target platform
//$Include "$SRCDIR\vpc_scripts\source_exe_qt_linux_base.vpc" [$POSIX]
$Include "$SRCDIR\vpc_scripts\source_exe_qt_win32_base.vpc" [$WIN32 || $WIN64]

View File

@@ -0,0 +1,16 @@
// base file for a console app with qt. win32 only for now. CG: I'm not 100% sure this is the right definition,
// but I'm moving the logic here so it doesn't end up pasted into every such app.
$Include "$SRCDIR\vpc_scripts\source_exe_qt_win32_base.vpc"
$Configuration
{
$Linker
{
$SubSystem "Console (/SUBSYSTEM:CONSOLE)"
}
$Compiler
{
$AdditionalIncludeDirectories "$BASE,..\common"
}
}

View File

@@ -0,0 +1,48 @@
//===================== Copyright (c) Valve Corporation. All Rights Reserved. ======================
//
//==================================================================================================
$Macro QT_ROOT "$SRCDIR\thirdparty\lgpl\qt"
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_base.vpc"
$Include "$SRCDIR\vpc_scripts\qt_base.vpc"
$Configuration
{
$Compiler
{
$AdditionalIncludeDirectories "$BASE;.\;$SRCDIR\game\shared;$QT_ROOT\include;.\$QT_TARGET_SUBDIR"
$PreprocessorDefinitions "$BASE;UNICODE;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT"
$PreprocessorDefinitions "$BASE;QT_NO_DEBUG" [!$QTDEBUG]
$DisableSpecificWarnings "4127;4512;$BASE"
}
}
$Configuration
{
$Linker
{
// Link tier0 first because Qt needs our allocators during static object initization!
$AdditionalDependencies "$BASE $LIBPUBLIC\tier0.lib"
$GenerateManifest "Yes"
$AdditionalOptions "$BASE $QUOTE/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'$QUOTE"
}
}
$Project
{
$Folder "Link Libraries" [$QTDEBUG]
{
$Lib "$QT_ROOT\lib\qtmaind"
$Lib "$QT_ROOT\lib\qtcored4"
$Lib "$QT_ROOT\lib\qtguid4"
}
$Folder "Link Libraries" [!$QTDEBUG]
{
$Lib "$QT_ROOT\lib\qtmain"
$Lib "$QT_ROOT\lib\qtcore4"
$Lib "$QT_ROOT\lib\qtgui4"
}
}

View File

@@ -0,0 +1,127 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_WIN_WIN32.VPC
//
// Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------
$Include "$SRCDIR\vpc_scripts\version.vpc"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME" "$PROJECTNAME"
$MacroRequired "OUTBINDIR"
$Macro OUTBINDIR "$OUTBINDIR$PLATSUBDIR"
$Macro LIBPUBLIC "$SRCDIR\lib\public$PLATSUBDIR"
$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR"
$Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_debug.vpc"
$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_release.vpc"
$Include "$SRCDIR\vpc_scripts\source_win32_base.vpc"
$IgnoreRedundancyWarning "ON"
// Common Configuration
$Configuration
{
$General
{
$TargetName "$OUTBINNAME"
}
$Compiler
{
$PreprocessorDefinitions "$BASE;PLATFORM_64BITS;WIN64;_WIN64;COMPILER_MSVC64" [$WIN64]
$PreprocessorDefinitions "$BASE;COMPILER_MSVC32" [$WIN32]
$PreprocessorDefinitions "$BASE;COMPILER_MSVC;EXENAME=$OUTBINNAME;_DLL_EXT=$_DLL_EXT"
}
$Compiler [$WIN32]
{
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
}
$Linker
{
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [$WIN32]
$TargetMachine "MachineX86 (/MACHINE:X86)" [$WIN32]
$TargetMachine "MachineX64 (/MACHINE:X64)" [$WIN64]
// NXCOMPAT (also known as DEP or Data Access Protection) should be enabled for all
// executables for security and debugging reasons.
$AdditionalOptions "/NXCOMPAT"
// Suppress this pointless 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"
$AdditionalOptions "$BASE $SRCDIR\lib\public\ftol3.obj" [$VS2013 && $WIN32 && !$DISABLE_FTOL3_OVERRIDE && !$SOURCESDK] // Work around CRT bug https://connect.microsoft.com/VisualStudio/feedback/details/806362/vc12-pollutes-the-floating-point-stack-when-casting-infinity-nan-to-unsigned-long#
}
$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" "\n"
}
$PostBuildEvent [!$ANALYZE]
{
$CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK]
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $OUTBINDIR\$(TargetFileName) >nul" "\n" \
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
"if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map >nul" "\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 >nul" "\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"
$Description "Publishing to $OUTBINDIR"
$ExcludedFromBuild "No"
}
}
// 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 and higher.
$File "$SRCDIR\public\tier0\pointeroverride.asm" [$WIN32]
{
$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"
}
}
}
}
$Folder "Link Libraries"
{
$Implib "$LIBPUBLIC\tier0"
$Lib "$LIBPUBLIC\tier1"
$Implib "$LIBPUBLIC\vstdlib"
}
}

View File

@@ -0,0 +1,332 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_WIN_WIN32_DEBUG.VPC
//
// Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME"
$MacroRequired "OUTBINDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$MacroRequiredAllowEmpty "_STATICSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$_STATICSUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Debug"
{
$General
{
// General
$OutputDirectory ".\Debug$_SUBDIRSUFFIX"
$IntermediateDirectory ".\Debug$_SUBDIRSUFFIX"
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Application (.exe)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization
}
$Debugging
{
// Action
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "Program Database for Edit & Continue (/ZI)" [$WIN32]
$DebugInformationFormat "Program Database (/Zi)" [$WIN64]
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$TreatWarningsAsErrors "No"
$UseUNICODEResponseFiles "No"
// Optimization
$Optimization "Disabled (/Od)"
$InlineFunctionExpansion
$EnableIntrinsicFunctions
$FavorSizeOrSpeed
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;_HAS_ITERATOR_DEBUGGING=0;WIN32;_WIN32;_DEBUG;DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
// EnableMinimalRebuild is incompatible with /MP (multi-processor builds)
// and it also makes it hard to iterate on warnings because the compiler
// detects that there is no reason to recompile when you request it.
// It should always be off? It should definitely be off for /analyze builds.
//$EnableMinimalRebuild "Yes (/Gm)" [!$ANALYZE]
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks "Default"
$RuntimeLibrary "Multi-threaded Debug (/MTd)"
$StructMemberAlignment
$BufferSecurityCheck "Yes"
$EnableFunctionLevelLinking
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// Language
$DisableLanguageExtensions
$DefaultCharUnsigned "No"
$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)/"
$GenerateXMLDocumentationFiles
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
// Command Line
$AdditionalOptions
}
$Linker
{
// General
$OutputFile "$(OutDir)/$OUTBINNAME.exe"
$ShowProgress "Not Set"
$Version
$EnableIncrementalLinking "Yes (/INCREMENTAL)"
$SuppressStartupBanner "Yes (/NOLOGO)"
$IgnoreImportLibrary
$RegisterOutput
$AdditionalLibraryDirectories
$LinkLibraryDependencies
$UseLibraryDependencyInputs
$UseUNICODEResponseFiles "No"
// Input
$AdditionalDependencies
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary "libc;libcd;libcmt;libcpmt;libcpmt1"
$ModuleDefinitionFile
$AddModuleToAssembly
$EmbedManagedResourceFile
$ForceSymbolReferences
$DelayLoadedDLLs
$AssemblyLinkResource
// Manifest File
$GenerateManifest "Yes"
$ManifestFile
$AdditionalManifestDependencies
$AllowIsolation
$UACExecutionLevel
// Debugging
$GenerateDebugInfo "Yes (/DEBUG)"
$GenerateProgramDatabaseFile "$(IntDir)/$(TargetName).pdb"
$StripPrivateSymbols
$MapExports
$DebuggableAssembly
// System
$SubSystem "Windows (/SUBSYSTEM:WINDOWS)"
$HeapReserveSize
$HeapCommitSize
$StackReserveSize
$StackCommitSize
$EnableLargeAddresses
$TerminalServer
$SwapRunFromCD
$SwapRunFromNetwork
$Driver
// DYNAMICBASE/ASLR in debug builds is annoying and not helpful.
$RandomizedBaseAddress "false"
// Optimization
$References
$EnableCOMDATFolding
$OptimizeForWindows98
$FunctionOrder
$ProfileGuidedDatabase
$LinkTimeCodeGeneration
// Embedded IDL
$MIDLCommands
$IgnoreEmbeddedIDL
$MergeIDLBaseFileName
$TypeLibrary
$TypeLibResourceID
// Advanced
$EntryPoint
$NoEntryPoint
$SetChecksum
$BaseAddress "$LOADADDRESS_DEVELOPMENT"
$FixedBaseAddress
$TurnOffAssemblyGeneration
$DelayLoadedDLL
$ImportLibrary
$MergeSections
$TargetMachine
$Profile
$CLRThreadAttribute
$CLRImageType
$KeyFile
$KeyContainer
$DelaySign
$ErrorReporting "Prompt Immediately (/ERRORREPORT:PROMPT)"
$CLRUnmanagedCodeCheck
// SAFE_SEH should always be disabled on debug builds.
$ImageHasSafeExceptionHandlers "false"
// Command Line
$AdditionalOptions
}
$ManifestTool
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$VerboseOutput
$AssemblyIdentity
$UseUNICODEResponseFiles
$UseFAT32WorkAround
// Input And Output
$AdditionalManifestFiles "$SRCDIR\public\windows_default.manifest" [!$SOURCESDK]
$InputResourceManifests
$EmbedManifest
$OutputManifestFile
$ManifestResourceFile
$GenerateCatalogFiles
$DependencyInformationFile
// Isolated COM
$TypeLibraryFile
$RegistrarScriptFile
$ComponentFileName
$ReplacementsFile
// Advanced
$UpdateFileHashes
$UpdateFileHashesSearchPath
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$BrowseInformation
{
$SuppressStartupBanner "Yes (/nologo)"
$OutputFile "$(OutDir)/$OUTBINNAME.bsc"
$AdditionalOptions
}
$Resources
{
// General
$PreprocessorDefinitions "_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)"
$Culture "English (United States) (0x409)"
$AdditionalIncludeDirectories
$IgnoreStandardIncludePath
$ShowProgress
$ResourceFileName
// Command Line
$AdditionalOptions
}
$PreBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PreLinkEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PostBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$CustomBuildStep
{
// General
$CommandLine
$Description
$Outputs
$AdditionalDependencies
}
}

View File

@@ -0,0 +1,353 @@
//-----------------------------------------------------------------------------
// SOURCE_EXE_WIN_WIN32_RELEASE.VPC
//
// Base Settings for Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
// Disable frame pointer omission to allow fast stack walking, necessary for
// good ETW profiling.
$Macro NOFPO "1"
$MacroRequired "SRCDIR"
$MacroRequired "OUTBINNAME"
$MacroRequired "OUTBINDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$MacroRequiredAllowEmpty "_STATICSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$_STATICSUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Release"
{
$General
{
// General
$OutputDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
$IntermediateDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
$OutputDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
$IntermediateDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
$OutputDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
$IntermediateDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Application (.exe)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization "Use Link Time Code Generation" [$LTCG]
}
$Debugging
{
// Action
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "Program Database (/Zi)"
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$TreatWarningsAsErrors
$UseUnicodeResponseFiles
// Optimization
$Optimization "Maximize Speed (/O2)"
$InlineFunctionExpansion "Any Suitable (/Ob2)"
$EnableIntrinsicFunctions "Yes (/Oi)"
$FavorSizeOrSpeed "Favor Fast Code (/Ot)"
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;WIN32;_WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
$EnableMinimalRebuild
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks
$RuntimeLibrary "Multi-threaded (/MT)"
$StructMemberAlignment
$BufferSecurityCheck "No" [$RETAIL]
$BufferSecurityCheck "Yes" [!$RETAIL]
$EnableFunctionLevelLinking "Yes (/Gy)"
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// Language
$DisableLanguageExtensions
$DefaultCharUnsigned "No"
$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)/"
$GenerateXMLDocumentationFiles
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
// Enable extra debugging information. This switch requires VS 2013 Update 3.
// With VS 2013 make sure that Edit-And-Continue is disabled in the debugger settings so that
// the debugger uses the enhanced debug information.
// http://randomascii.wordpress.com/2013/09/11/debugging-optimized-codenew-in-visual-studio-2012/
$AdditionalOptions "$BASE /Zo"
// Command Line
$AdditionalOptions "$BASE /Oy-" [$NOFPO]
}
$Linker
{
// General
$OutputFile "$(OutDir)/$OUTBINNAME.exe"
$ShowProgress "Not Set"
$Version
$EnableIncrementalLinking "No (/INCREMENTAL:NO)"
$SuppressStartupBanner "Yes (/NOLOGO)"
$IgnoreImportLibrary
$RegisterOutput
$AdditionalLibraryDirectories
$LinkLibraryDependencies
$UseLibraryDependencyInputs
$UseUNICODEResponseFiles "No"
// Input
$AdditionalDependencies
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary "libc;libcd;libcmtd;libcpmtd;libcpmtd0;libcpmtd1"
$ModuleDefinitionFile
$AddModuleToAssembly
$EmbedManagedResourceFile
$ForceSymbolReferences
$DelayLoadedDLLs
$AssemblyLinkResource
// Manifest File
$GenerateManifest "Yes"
$ManifestFile
$AdditionalManifestDependencies
$AllowIsolation
$UACExecutionLevel
// Debugging
$GenerateDebugInfo "Yes (/DEBUG)"
$GenerateProgramDatabaseFile "$(IntDir)/$(TargetName).pdb"
$StripPrivateSymbols
$MapExports
$DebuggableAssembly
// System
$SubSystem "Windows (/SUBSYSTEM:WINDOWS)"
$HeapReserveSize
$HeapCommitSize
$StackReserveSize
$StackCommitSize
$EnableLargeAddresses
$TerminalServer
$SwapRunFromCD
$SwapRunFromNetwork
$Driver
// RandomizeBaseAddress (/DYNAMICBASE, /ASLR) is a hugely important security setting.
// However it can cause confusion during development and can make tracking down certain
// bugs tricky by making code/stack/heap addresses change between runs. Enable for retail,
// but disable for development builds.
$RandomizedBaseAddress "true" [$RETAIL]
$RandomizedBaseAddress "false" [!$RETAIL]
// Optimization
$References "Eliminate Unreferenced Data (/OPT:REF)"
// COMDAT folding can be very confusing when debugging and profiling because it can
// cause execution to go through nonsensical functions (that happen to be binary
// equivalent to the logical function). The performance benefit is small enough that
// it is not worth enabling in the development builds. It should be enabled on retail
// builds.
$EnableCOMDATFolding "Remove Redundant COMDATs (/OPT:ICF)" [$RETAIL]
$EnableCOMDATFolding "No (/OPT:NOICF)" [!$RETAIL]
$OptimizeForWindows98
$FunctionOrder
$ProfileGuidedDatabase
$LinkTimeCodeGeneration
// Embedded IDL
$MIDLCommands
$IgnoreEmbeddedIDL
$MergeIDLBaseFileName
$TypeLibrary
$TypeLibResourceID
// Advanced
$EntryPoint
$NoEntryPoint
$SetChecksum
$BaseAddress "$LOADADDRESS_DEVELOPMENT"
//$BaseAddress "$LOADADDRESS_RETAIL" [$RETAIL]
$FixedBaseAddress
$TurnOffAssemblyGeneration
$DelayLoadedDLL
$ImportLibrary
$MergeSections
$TargetMachine
$Profile
$CLRThreadAttribute
$CLRImageType
$KeyFile
$KeyContainer
$DelaySign
$ErrorReporting "Prompt Immediately (/ERRORREPORT:PROMPT)"
$CLRUnmanagedCodeCheck
// Most DLLs cannot yet handle SafeSEH
$ImageHasSafeExceptionHandlers "false"
// Command Line
$AdditionalOptions
}
$ManifestTool
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$VerboseOutput
$AssemblyIdentity
$UseUNICODEResponseFiles
$UseFAT32WorkAround
// Input And Output
$AdditionalManifestFiles "$SRCDIR\public\windows_default.manifest" [!$SOURCESDK]
$InputResourceManifests
$EmbedManifest
$OutputManifestFile
$ManifestResourceFile
$GenerateCatalogFiles
$DependencyInformationFile
// Isolated COM
$TypeLibraryFile
$RegistrarScriptFile
$ComponentFileName
$ReplacementsFile
// Advanced
$UpdateFileHashes
$UpdateFileHashesSearchPath
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$BrowseInformation
{
$SuppressStartupBanner "Yes (/nologo)"
$OutputFile "$(OutDir)/$OUTBINNAME.bsc"
$AdditionalOptions
}
$Resources
{
// General
$PreprocessorDefinitions "NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)"
$Culture "English (United States) (0x409)"
$AdditionalIncludeDirectories
$IgnoreStandardIncludePath
$ShowProgress
$ResourceFileName
// Command Line
$AdditionalOptions
}
$PreBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PreLinkEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$PostBuildEvent
{
$CommandLine
$Description
$ExcludedFromBuild "No"
}
$CustomBuildStep
{
// General
$CommandLine
$Description
$Outputs
$AdditionalDependencies
}
}

View File

@@ -0,0 +1,22 @@
$Include "$SRCDIR\vpc_scripts\platform_dirs.vpc"
$include "$SRCDIR\vpc_scripts\source_base.vpc"
$MacroRequired OUTLIBDIR "$SRCDIR\lib\public$PLATSUBDIR"
$include "$SRCDIR\vpc_scripts\source_lib_posix_base.vpc" [$POSIX]
$include "$SRCDIR\vpc_scripts\source_lib_win32_base.vpc" [$WIN32 || $WIN64]
$include "$SRCDIR\vpc_scripts\source_lib_x360_base.vpc" [$X360]
$include "$SRCDIR\vpc_scripts\source_ppu_lib_ps3_base.vpc" [$PS3]
$include "$SRCDIR\vpc_scripts\source_video_base.vpc"
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;DEV_BUILD" [!$PUBLISH]
$PreprocessorDefinitions "$BASE;_PROFILE" [$PROFILE && !$RETAIL]
$PreprocessorDefinitions "$BASE;RETAIL_ASSERTS" [$RETAIL && $RETAILASSERTS]
$PreprocessorDefinitions "$BASE;FRAME_POINTER_OMISSION_DISABLED" // This is now always true.
}
}

View File

@@ -0,0 +1,31 @@
$Macro IS_LIB_PROJECT "1"
$Include "$SRCDIR\vpc_scripts\source_linux_base_project.vpc"
$MacroRequired "OUTLIBNAME" "$PROJECTNAME"
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;LIBNAME=$OUTLIBNAME"
$PreprocessorDefinitions "$BASE;RAD_TELEMETRY_DISABLED" [$SOURCESDK]
}
$General
{
$ConfigurationType "Static Library (.lib)"
}
$Linker
{
$OutputFile "$OUTLIBDIR/$OUTLIBNAME$_STATICLIB_EXT"
}
}
$Project
{
$Folder "Source Files"
{
$File "$SRCDIR\common\debug_lib_check.cpp" [!$SOURCESDK]
}
}

View File

@@ -0,0 +1,19 @@
$MacroRequired "OUTLIBNAME" "$PROJECTNAME"
$Macro IS_LIB_PROJECT "1"
$Include "$SRCDIR\vpc_scripts\source_posix_base.vpc"
$Configuration
{
$General
{
$ConfigurationType "Static Library (.lib)"
$GameOutputFile "$OUTLIBDIR/$OUTLIBNAME$_STATICLIB_EXT"
}
$Linker
{
$OutputFile "$OUTLIBDIR/$OUTLIBNAME$_STATICLIB_EXT"
}
}

View File

@@ -0,0 +1,2 @@
// include either the windows base or the currently non-existing ones for other platforms
$include "$SRCDIR\vpc_scripts\source_lib_qt_win32_base.vpc"

View File

@@ -0,0 +1,22 @@
//===================== Copyright (c) Valve Corporation. All Rights Reserved. ======================
//
//==================================================================================================
$Macro QT_ROOT "$SRCDIR\thirdparty\lgpl\qt"
$Include "$SRCDIR\vpc_scripts\source_lib_base.vpc"
$Include "$SRCDIR\vpc_scripts\qt_base.vpc"
$Configuration
{
$Compiler
{
$AdditionalIncludeDirectories "$BASE;.\;$SRCDIR\game\shared;$QT_ROOT\include;.\$QT_TARGET_SUBDIR"
$PreprocessorDefinitions "$BASE;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT"
$PreprocessorDefinitions "$BASE;QT_NO_DEBUG" [!$QTDEBUG]
$DisableSpecificWarnings "4127;4512;$BASE"
// Causes a bunch of bogus compiler warnings for now; let's disable it
$Detect64bitPortabilityIssues "No"
}
}

View File

@@ -0,0 +1,86 @@
//-----------------------------------------------------------------------------
// 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"
$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"
}
}
}
}
}

View File

@@ -0,0 +1,206 @@
//-----------------------------------------------------------------------------
// SOURCE_LIB_WIN32_DEBUG.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
$MacroRequired "SRCDIR"
$MacroRequired "OUTLIBNAME"
$MacroRequired "OUTLIBDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$MacroRequiredAllowEmpty "_STATICSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$_STATICSUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Debug"
{
$General
{
// General
$OutputDirectory "$OUTLIBDIR"
$IntermediateDirectory ".\Debug$_SUBDIRSUFFIX"
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Static Library (.lib)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization
}
$Debugging
{
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "Program Database for Edit & Continue (/ZI)" [$WIN32]
$DebugInformationFormat "Program Database (/Zi)" [$WIN64]
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$Detect64bitPortabilityIssues "Yes (/Wp64)"
$TreatWarningsAsErrors
$UseUNICODEResponseFiles "No"
// Optimization
$Optimization "Disabled (/Od)"
$InlineFunctionExpansion
$EnableIntrinsicFunctions
$FavorSizeOrSpeed
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;_HAS_ITERATOR_DEBUGGING=0;WIN32;_WIN32;_DEBUG;DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
// EnableMinimalRebuild is incompatible with /MP (multi-processor builds)
// and it also makes it hard to iterate on warnings because the compiler
// detects that there is no reason to recompile when you request it.
// It should always be off? It should definitely be off for /analyze builds.
//$EnableMinimalRebuild "Yes (/Gm)" [!$ANALYZE]
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks "Default"
$RuntimeLibrary "Multi-threaded Debug (/MTd)"
$StructMemberAlignment
$BufferSecurityCheck "Yes"
$EnableFunctionLevelLinking
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// 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)/"
$GenerateXMLDocumentationFiles "No"
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
}
$Librarian
{
// General
$OutputFile "$OUTLIBDIR\$OUTLIBNAME.lib"
$AdditionalDependencies
$AdditionalLibraryDirectories
$SuppressStartupBanner "Yes (/NOLOGO)"
$ModuleDefinitionFileName
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary
$ExportNamedFunctions
$ForceSymbolReferences
$UseUNICODEResponseFiles "No"
$LinkLibraryDependencies
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$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
}
}

View File

@@ -0,0 +1,216 @@
//-----------------------------------------------------------------------------
// SOURCE_LIB_WIN32_RELEASE.VPC
//
// Base Settings for all Source(TM) Projects
//-----------------------------------------------------------------------------
$IgnoreRedundancyWarning "ON"
// Disable frame pointer omission to allow fast stack walking, necessary for
// good ETW profiling.
$Macro NOFPO "1"
$MacroRequired "SRCDIR"
$MacroRequired "OUTLIBNAME"
$MacroRequired "OUTLIBDIR"
$MacroRequired "LIBPUBLIC"
$MacroRequired "LIBCOMMON"
$MacroRequired "PLATSUBDIR"
$MacroRequiredAllowEmpty "GAMENAME"
$MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
$MacroRequiredAllowEmpty "_UNITYSUBDIR"
$MacroRequiredAllowEmpty "_STATICSUBDIR"
$Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$_STATICSUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
$Configuration "Release"
{
$General
{
// General
$OutputDirectory "$OUTLIBDIR"
$IntermediateDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
$IntermediateDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
$IntermediateDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
$ExtensionsToDeleteOnClean
$BuildLogFile
$InheritedProjectPropertySheets
// Project Defaults
$ConfigurationType "Static Library (.lib)"
$UseOfMFC
$UseOfATL
$MinimizeCRTUseInATL
$CharacterSet "Use Multi-Byte Character Set"
$CommonLanguageRuntimeSupport
$WholeProgramOptimization "Use Link Time Code Generation" [$LTCG]
}
$Debugging
{
$Command
$CommandArguments
$WorkingDirectory
$Attach
$DebuggerType
$Environment
$MergeEnvironment
$SQLDebugging
}
$Compiler
{
// General
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$Resolve#UsingReferences
$DebugInformationFormat "C7 Compatible (/Z7)"
$SuppressStartupBanner
$WarningLevel "Level 4 (/W4)"
$Detect64bitPortabilityIssues "Yes (/Wp64)"
$TreatWarningsAsErrors
$UseUNICODEResponseFiles "No"
// Optimization
$Optimization "Maximize Speed (/O2)"
$InlineFunctionExpansion "Any Suitable (/Ob2)"
$EnableIntrinsicFunctions "Yes (/Oi)"
$FavorSizeOrSpeed "Favor Fast Code (/Ot)"
$OmitFramePointers
$EnableFiberSafeOptimizations
$WholeProgramOptimization
// Preprocessor
$PreprocessorDefinitions "$BASE;WIN32;_WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH;%(PreprocessorDefinitions)"
$PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
$IgnoreStandardIncludePath
$GeneratePreprocessedFile
$KeepComments
// Code Generation
$EnableStringPooling "Yes (/GF)"
$EnableMinimalRebuild
$EnableC++Exceptions "No"
$SmallerTypeCheck
$BasicRuntimeChecks
$RuntimeLibrary "Multi-threaded (/MT)"
$StructMemberAlignment
$BufferSecurityCheck "No" [$RETAIL]
$BufferSecurityCheck "Yes" [!$RETAIL]
$EnableFunctionLevelLinking "Yes (/Gy)"
$EnableEnhancedInstructionSet
$FloatingPointModel "Fast (/fp:fast)"
$EnableFloatingPointExceptions
// 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)/"
$GenerateXMLDocumentationFiles "No"
$XMLDocumentationFileName
// Browse Information
$EnableBrowseInformation "None"
$BrowseFile "$(IntDir)/"
// Advanced
$CallingConvention
$CompileAs "Compile as C++ Code (/TP)"
$DisableSpecificWarnings
$ForceIncludes
$Force#Using
$ShowIncludes
$UndefinePreprocessorDefinitions
$UndefineAllPreprocessorDefinitions
$UseFullPaths "Yes (/FC)"
$OmitDefaultLibraryNames
$ErrorReporting "Prompt Immediately (/errorReport:prompt)"
// Enable extra debugging information. This switch requires VS 2013 Update 3.
// With VS 2013 make sure that Edit-And-Continue is disabled in the debugger settings so that
// the debugger uses the enhanced debug information.
// http://randomascii.wordpress.com/2013/09/11/debugging-optimized-codenew-in-visual-studio-2012/
$AdditionalOptions "$BASE /Zo"
$AdditionalOptions "$BASE /Oy-" [$NOFPO]
}
$Librarian
{
// General
$OutputFile "$OUTLIBDIR\$OUTLIBNAME.lib"
$AdditionalDependencies
$AdditionalLibraryDirectories
$SuppressStartupBanner "Yes (/NOLOGO)"
$ModuleDefinitionFileName
$IgnoreAllDefaultLibraries
$IgnoreSpecificLibrary
$ExportNamedFunctions
$ForceSymbolReferences
$UseUNICODEResponseFiles "No"
$LinkLibraryDependencies
// Command Line
$AdditionalOptions
}
$XMLDocumentGenerator
{
// General
$SuppressStartupBanner "Yes (/nologo)"
$ValidateIntelliSense
$AdditionalDocumentFiles
$OutputDocumentFile
$DocumentLibraryDependencies
$UseUNICODEResponseFiles
}
$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
}
}

View File

@@ -0,0 +1,61 @@
$Include "$SRCDIR\vpc_scripts\version.vpc"
$Macro PLATSUBDIR "\linux32" [$LINUX32]
$Macro LIBPUBLIC "$SRCDIR\lib\public$PLATSUBDIR"
$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR"
$MacroRequired "SRCDIR"
$Configuration "Debug"
{
$Compiler
{
$PreprocessorDefinitions "DEBUG;_DEBUG"
$OptimizerLevel "-gdwarf-2 -g $(OptimizerLevel_CompilerSpecific)" [$OSXALL]
$OptimizerLevel "-gdwarf-4 -g $(OptimizerLevel_CompilerSpecific)" [$LINUX]
}
}
$Configuration "Release"
{
$Compiler
{
$PreprocessorDefinitions "NDEBUG"
$OptimizerLevel "-gdwarf-2 -g $(OptimizerLevel_CompilerSpecific)" [$OSXALL]
$OptimizerLevel "-gdwarf-4 -g $(OptimizerLevel_CompilerSpecific)" [$LINUX]
$PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
}
}
$Configuration
{
$General
{
$ConfigurationType "Application (.exe)"
}
$Compiler
{
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$PreprocessorDefinitions "$BASE;GNUC;POSIX;COMPILER_GCC;MEMOVERRIDE_MODULE=$PROJECTNAME;_DLL_EXT=$_DLL_EXT"
$PreprocessorDefinitions "$BASE;DEDICATED" [$DEDICATED]
$PreprocessorDefinitions "$BASE;_LINUX;LINUX" [$LINUXALL]
$SymbolVisibility "hidden" [$POSIX]
$PreprocessorDefinitions "$BASE;POSIX;_POSIX" [$POSIX]
$GCC_ExtraCompilerFlags "-U_FORTIFY_SOURCE" [$LINUXALL]
$Create/UsePCHThroughFile "stdafx.h"
}
}
$Project
{
$Folder "Link Libraries"
{
$ImpLib "$LIBPUBLIC\tier0" [!$IS_LIB_PROJECT]
$Lib "$LIBPUBLIC\tier1" [!$IS_LIB_PROJECT]
$ImpLib "$LIBPUBLIC\vstdlib" [!$IS_LIB_PROJECT]
}
}

View File

@@ -0,0 +1,35 @@
//====== Copyright (c) 1996-2010, Valve Corporation, All rights reserved. =====
//
// Maya Plugin For Win32 - Same As source_dll_qt_win32_base.vpc except:
// * QT_ROOT is left unspecified, the part VPC script needs to define it
// as it varies with the version of Maya
// * QT_NO_DEBUG is always defined.
// * Only release versions of Qt libraries are linked
// Maya is linked with release Qt libs, linking a plug-in with debug
// libs will crash when a Qt widget is created
//
//=============================================================================
$MacroRequired "QT_ROOT"
$Include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
$Include "$SRCDIR\vpc_scripts\qt_base.vpc"
$Configuration
{
$Compiler
{
$AdditionalIncludeDirectories "$BASE;.\;$QT_ROOT\include;.\$QT_TARGET_SUBDIR"
$PreprocessorDefinitions "$BASE;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;QT_NO_DEBUG"
$DisableSpecificWarnings "4127;4512;$BASE"
}
}
$Project
{
$Folder "Link Libraries"
{
$Lib "$QT_ROOT\lib\qtcore4"
$Lib "$QT_ROOT\lib\qtgui4"
}
}

View File

@@ -0,0 +1,75 @@
$Include "$SRCDIR\vpc_scripts\version.vpc"
$Macro LIBPUBLIC "$SRCDIR\lib\public$PLATSUBDIR"
$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR"
$MacroRequired "SRCDIR"
$Configuration "Debug"
{
$Compiler
{
$PreprocessorDefinitions "$BASE;DEBUG;_DEBUG"
$OptimizerLevel "-gdwarf-2 -g2 $(OptimizerLevel_CompilerSpecific)" [$OSXALL]
$OptimizerLevel "-gdwarf-4 -g2 $(OptimizerLevel_CompilerSpecific)" [$LINUX]
}
}
$Configuration "Release"
{
$Compiler
{
$PreprocessorDefinitions "$BASE;NDEBUG"
$OptimizerLevel "-gdwarf-2 -g2 $(OptimizerLevel_CompilerSpecific)" [$OSXALL]
$OptimizerLevel "-gdwarf-4 -g2 $(OptimizerLevel_CompilerSpecific)" [$LINUX]
$PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
}
}
$Configuration
{
$General
{
$ConfigurationType "Application (.exe)"
}
$Compiler
{
$AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
$AdditionalLibraryDirectories "$LIBCOMMON;$LIBPUBLIC" [$OSXALL]
$PreprocessorDefinitions "$BASE;GNUC;POSIX;COMPILER_GCC;_DLL_EXT=$_DLL_EXT"
$PreprocessorDefinitions "$BASE;DEDICATED" [$DEDICATED]
// the 10240 in the following line is the output of `sysctl -n kern.maxfilesperproc`
$PreprocessorDefinitions "$BASE;_OSX;OSX;_DARWIN_UNLIMITED_SELECT;FD_SETSIZE=10240;" [$OSXALL]
$PreprocessorDefinitions "$BASE;OVERRIDE_V_DEFINES" [$OSXALL]
$PreprocessorDefinitions "$BASE;_LINUX;LINUX;" [$LINUXALL]
$PreprocessorDefinitions "$BASE;PLATFORM_64BITS" [$LINUX64]
$SymbolVisibility "hidden" [$POSIX]
$PreprocessorDefinitions "$BASE;POSIX;_POSIX" [$POSIX]
$PreprocessorDefinitions "$BASE;PLATFORM_64BITS" [$OSX64]
$GCC_ExtraCompilerFlags "$BASE -arch x86_64" [$OSX64]
$Create/UsePCHThroughFile "stdafx.h"
}
$Linker
{
$GCC_ExtraLinkerFlags "$BASE -arch x86_64" [$OSX64]
}
}
$Project
{
$Folder "Link Libraries"
{
$ImpLib "$LIBPUBLIC\tier0" [!$IS_LIB_PROJECT]
$Lib "$LIBPUBLIC\tier1" [!$IS_LIB_PROJECT]
$ImpLib "$LIBPUBLIC\vstdlib" [!$IS_LIB_PROJECT]
}
}

View File

@@ -0,0 +1,39 @@
//-----------------------------------------------------------------------------
// SOURCE_REPLAY.VPC
//
// Controls compilation of the replay system via the REPLAY_ENABLE preprocessor
// definition.
//
// The BUILD_REPLAY macro (below) controls the definition of REPLAY_ENABLE
// across multiple projects like engine, TF client & server DLL's, and any
// other games with replay support.
//
// This file serves two purposes:
//
// 1. To provide a single place where replay can be built out of all games,
// in other words the engine, as well as any supported game client/server
// DLL's. This is useful for avoiding shipping any replay code prematurely
// (i.e. when we do staging -> rel integrations), for example.
//
// 1. Any client/server DLL's that don't have REPLAY_ENABLE defined will not
// attempt to load or interact with the replay system, because they will
// not build the code to do so.
//
// If BUILD_REPLAY=1, replay will be built in the engine, and client/server
// projects for supported games - otherwise, it will not.
//
// If you are adding replay support to a specific game, you must include this
// file in both its client_* and server_*.vpc files.
//
// This file should not be included in client_base.vpc or server_base.vpc.
//
// Replay is only loaded for games explicitly specified in engine/replay.cpp
// (see s_pSupportedReplayGames).
//
//-----------------------------------------------------------------------------
$Macro BUILD_REPLAY 1
//-----------------------------------------------------------------------------
$Include "$SRCDIR\vpc_scripts\source_replay_private.vpc" [$BUILD_REPLAY && !$X360]

View File

@@ -0,0 +1,22 @@
//-----------------------------------------------------------------------------
// SOURCE_REPLAY_PRIVATE.VPC
//
// Included from SOURCE_REPLAY.VPC if the $BUILD_REPLAY macro defined.
//
//-----------------------------------------------------------------------------
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;REPLAY_ENABLED"
}
}
$Project
{
$Folder "Link libraries"
{
$Lib "$LIBCOMMON/replay_common"
}
}

View File

@@ -0,0 +1,50 @@
//-----------------------------------------------------------------------------
// AVI_BASE.VPC
//
// Controls selection (and compilation) of various video subsystems
//
// Defines to add or remove to the preprocessor definitions:
//
// AVI_VIDEO - controls availability of IAvi interface, playing of AVI Video files in Engine
// BINK_VIDEO - controls availability of IBik interface
// QUICKTIME_VIDEO - controls availability of IQuickTime interface
// WMV_VIDEO - controls availability of playing WMV MPEG video files in Engine
//
// FORCE_QUICKTIME - causes engine to force change ".bik" ".wmv" ".avi" extensions to ".mov" and
// look for Quicktime playback *IF* the same file exists in .mov form
//
//-----------------------------------------------------------------------------
// We use Quicktime exclusively (and only quicktime) on the Mac
//
// We have two configurations for Win32.
//
// 1) Comment out the following $macro line out to enable BINK (and AVI and WMV) playback of videos
// 2) Uncomment the following $macro line out to enable Quicktime (and AVI and WMV) playback of videos and
// - the Quicktime file override ( the Quicktime .mov is played if present even if a .bnk, .avi or .wmv file was specified )
// $macro QUICKTIME_WIN32 1
$Macro GL "1" [!$DEDICATED && !$WIN32 && !$WIN64]
// If we're using OpenGL, we're implicitly using SDL.
$Macro SDL "1" [$GL && !$DEDICATED]
$Configuration
{
$Compiler
{
$PreprocessorDefinitions "$BASE;QUICKTIME_VIDEO;FORCE_QUICKTIME" [$OSXALL]
// Windows PC, without Quicktime, and with Quicktime
$PreprocessorDefinitions "$BASE;BINK_VIDEO;AVI_VIDEO;WMV_VIDEO" [$WIN32&&!$QUICKTIME_WIN32]
$PreprocessorDefinitions "$BASE;AVI_VIDEO;WMV_VIDEO;QUICKTIME_VIDEO" [$WIN32&&$QUICKTIME_WIN32]
$PreprocessorDefinitions "$BASE;BINK_VIDEO" [$X360]
$PreprocessorDefinitions "$BASE;BINK_VIDEO" [$LINUXALL]
$PreprocessorDefinitions "$BASE;GL_GLEXT_PROTOTYPES;DX_TO_GL_ABSTRACTION" [$GL]
$PreprocessorDefinitions "$BASE;USE_SDL" [$SDL]
$AdditionalIncludeDirectories "$BASE;$SRCDIR\thirdparty\SDL2" [$SDL || $DEDICATED]
}
}

View File

@@ -0,0 +1,66 @@
// /analyze specific settings. Placed here so that they can be changed without triggering rebuilds of the entire world.
$Configuration
{
$Compiler
{
// When using /analyze (triggered with /define:ANALYZE on the vpc command line) we want to forcibly disable lots
// of warnings.
// warning C6308: 'realloc' might return null pointer, cause the original memory block to be leaked
// warning C6255: _alloca indicates failure by raising a stack overflow exception. Consider using _malloca instead
// warning C6387: 'argument 1' might be '0': this does not adhere to the specification for the function 'GetProcAddress'
// warning C6309: Argument '1' is null: this does not adhere to function specification of 'GetProcAddress'
// warning C6011: Dereferencing NULL pointer 'm_ppTestCases'
// warning C6211: Leaking memory 'newKeyValue' due to an exception. Consider using a local catch block to clean up memory
// These warnings are because /analyze doesn't like our use of constants, especially things like IsPC()
// warning C6326: Potential comparison of a constant with another constant
// warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
// warning C6285: (<non-zero constant> || <non-zero constant>) is always a non-zero constant. Did you intend to use the bitwise-and operator?
// warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects
// warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant
// warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
// These warnings aren't really important:
// warning C6323: Use of arithmetic operator on Boolean type(s)
// /analyze doesn't like GCOMPILER_ASSERT's implementation of compile-time asserts
// warning C6326: Potential comparison of a constant with another constant
// warning C6335: Leaking process information handle 'pi.hThread'
// warning C6320: Exception-filter expression is the constant EXCEPTION_EXECUTE_HANDLER. This might mask exceptions that were not intended to be handled
// warning C6250: Calling 'VirtualFree' without the MEM_RELEASE flag might free memory but not address descriptors (VADs). This causes address space leaks
// warning C6384: Dividing sizeof a pointer by another value
// warning C6318: Ill-defined __try/__except: use of the constant EXCEPTION_CONTINUE_SEARCH -- bogus
// warning C6322: Empty _except block
// Set the stack size threshold to 100,000 to avoid noisy warnings on functions with modest stack usage
// Note that /analyze for VS 2010 only works with the 32-bit compiler, but for VS 2012 it works on 64-bit
// as well.
$DisableSpecificWarnings "$BASE;6308;6255;6387;6309;6011;6211;6326;6239;6285;6237;6235;6240;6323;6326;6335;6320;6250;6384;6318;6322" [$ANALYZE]
// See http://randomascii.wordpress.com/2011/10/04/analyzecommand-line-options/ for details on these options.
// /analyze:only may result in fewer warnings being reported, but the warnings it misses should show up in the regular build.
$AdditionalOptions "$BASE /analyze /analyze:stacksize100000" [$ANALYZE]
$AdditionalOptions "$BASE /analyze:only" [$ANALYZE && $ANALYZE_MACHINE] // /analyze:only makes builds faster on buildbot but is terrible for incremental /analyze on developer machines
// Specify /define:ALLOWSHADOWING to suppress variable shadowing warnings
$DisableSpecificWarnings "$BASE;6244;6246" [$ANALYZE && $ALLOWSHADOWING]
// New warnings in VS 2012 that we want to ignore.
// warning C4005: 'DXGI_STATUS_OCCLUDED' : macro redefinition
// warning C6014: Leaking memory 'pThinkParams'.
// warning C28159: Consider using 'GetTickCount64' instead of 'GetTickCount'. Reason: GetTickCount overflows roughly every 49 days.
// warning C28182: Dereferencing NULL pointer. 'pPropMesh' contains the same NULL value as '(CMesh *)=(pPropMesh)' did.
// warning C28183: 'entropy->ac_count_ptrs[actbl]' could be '0', and is a copy of the value found in 'entropy->dc_count_ptrs[dctbl]': this does not adhere to the specification for the function 'memset'.
// warning C28197: Possibly leaking memory 'pInfo'.
// warning C28198: Possibly leaking memory 'kvFrame1' due to an exception. Is a local catch block needed to clean up memory?
// warning C28204: 'QueryInterface' : Only one of this overload and the one at c:\program files (x86)\windows kits\8.0\include\um\unknwnbase.h(114) are annotated for _Param_(2): both or neither must be annotated.
// warning C28247: Model file annotation for function '_vsnprintf': annotation on _Param_(1)/SAL_post, 'RequiresZeroTermination' duplicates header file annotation 'SAL_nullTerminated'. Remove the duplicated annotations from the model file. (Header: c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdio.h(349).)
// warning C28251: Inconsistent annotation for 'WinMain': this instance has no annotations. See c:\program files (x86)\windows kits\8.0\include\um\winbase.h(2286).
// warning C28301: No annotations for first declaration of 'InitializeCriticalSection'. See d:\clients\tf3\staging\src\public\tier0\threadtools.h(1373).
// warning C28195: The function was declared as acquiring memory in 'return' and exited without doing so.
// warning C6340: Mismatch on sign: 'unsigned short' passed as parameter '6' when some signed type is required in call to 'V_snprintf'.
// This warning only applies to Windows XP in low-memory situations:
// warning C28125: The function 'InitializeCriticalSection' must be called from within a try\except block
// warning C28160: Error annotation: Calling VirtualFreeEx without the MEM_RELEASE flag frees memory but not address descriptors (VADs); results in address space leaks.
// warning C6248: Setting a SECURITY_DESCRIPTOR's DACL to NULL will result in an unprotected object.
// warning C6102: Using value from failed function call
$DisableSpecificWarnings "$BASE;6014;28159;28182;28183;28197;28198;28204;28247;28251;28301;28195;6340;28125;28160;6248;6102" [$ANALYZE && ($VS2012 || $VS2013)]
}
}

View File

@@ -0,0 +1,58 @@
// Settings for /analyze are in a separate .vpc file so that they can be
// changed without triggering a full rebuild of non-analyze builds. On non-analyze
// builds the analyze.vpc file will not be listed as a dependency.
$Include "$SRCDIR\vpc_scripts\source_win32_analyze.vpc" [$ANALYZE]
$Configuration
{
$General
{
// Request a specific compiler toolset.
$PlatformToolset "v100" [$VS2010]
$PlatformToolset "v110_xp" [$VS2012 && !$ANALYZE] // VS 2012 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v110" [$VS2012 && $ANALYZE] // VS 2012 for /analyze
$PlatformToolset "v120_xp" [$VS2013 && !$ANALYZE] // VS 2013 targeting Windows XP - http://msdn.microsoft.com/en-us/library/vstudio/jj851139.aspx
$PlatformToolset "v120" [$VS2013 && $ANALYZE] // VS 2013 for /analyze
}
$General
{
$ExecutableDirectories "$(ExecutablePath);$(Path)"
// We need to override mt.exe for Win7 compatibiity. Append paths before $(ExecutablePath) if you need VS to use your tools rather than its own
$ExecutableDirectories "$SRCDIR\devtools\vstools;$BASE"
// VS 2012 compiles fine but does not link. We want to redirect to stub versions of
// the tools (like link.exe and mt.exe) so that the link stage will be NOPed when
// doing /analyze builds.
$ExecutableDirectories "$SRCDIR\devtools\vs_nop_tools;$BASE" [$ANALYZE]
}
$Compiler
{
$MultiProcessorCompilation "True"
// warning C4316: object allocated on the heap may not be aligned 16
$DisableSpecificWarnings "$BASE;4316" [$VS2013]
// Having lots of warnings makes it harder to notice new, and possibly
// important warnings, both on buildbot and in the output window. Lots
// of warnings also makes it harder to skip through errors in the output
// window since F8 stops on both warnings and errors. The only way to
// keep the warning count down is to have warnings-as-errors.
// We will not be warning free on 64-bit for a while...
$TreatWarningsAsErrors "Yes (/WX)" [!$ANALYZE && !$WIN64]
// Defines to differentiate 32 from 64 bit builds
$PreprocessorDefinitions "$BASE;PLATFORM_64BITS;WIN64;_WIN64;COMPILER_MSVC64" [$WIN64]
$PreprocessorDefinitions "$BASE;COMPILER_MSVC32" [$WIN32]
// /Gw is a VS 2013 option that puts global and static variables in individual sections so that the
// linker can discard unreferenced data. When building @client /dota with linker optimizations this
// reduces the client.dll size by about 1.14%. When linker optimizations are disabled this has no
// effect. This option does not show up in the IDE so we need to add it in $AdditionalOptions.
// http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
$AdditionalOptions "$BASE /Gw" [$VS2013]
// Strip unreferenced inline functions from object files to shrink .obj files and .lib files,
// improve linker speed, and improve conformance. Requires VS 2013 Update 3
$AdditionalOptions "$BASE /Zc:inline" [$VS2013]
}
}

12
vpc_scripts/version.vpc Normal file
View File

@@ -0,0 +1,12 @@
//-----------------------------------------------------------------------------
// VERSION.VPC
//
// Version tag for VPC scripts. All base scripts include this file first.
//-----------------------------------------------------------------------------
// This version tag serves as a critical safeguard to ensure all vcproj's can
// be forced to rebuild. Changing the version or anything about this
// file will cause the CRC checking to fail, and thus cause a rebuild.
// DO NOT CHANGE THIS UNLESS YOU !!!REALLY!!! NEED TO FORCE EVERY SINGLE VCPROJ TO REGENERATE
$Macro "InternalVersion" "104"