summaryrefslogtreecommitdiff
path: root/tier0/tier0.vpc
diff options
context:
space:
mode:
Diffstat (limited to 'tier0/tier0.vpc')
-rw-r--r--tier0/tier0.vpc267
1 files changed, 267 insertions, 0 deletions
diff --git a/tier0/tier0.vpc b/tier0/tier0.vpc
new file mode 100644
index 0000000..dbb9759
--- /dev/null
+++ b/tier0/tier0.vpc
@@ -0,0 +1,267 @@
+//-----------------------------------------------------------------------------
+// TIER0.VPC
+//
+// Project Script
+//-----------------------------------------------------------------------------
+
+$MacroRequired "PLATSUBDIR"
+
+$Macro SRCDIR ".."
+$Macro OUTBINDIR "$SRCDIR\..\game\bin"
+
+$Include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
+
+$Configuration
+{
+ $General
+ {
+ // X360 version publishes to some other directory then copies here so we need to tell VPC to track this
+ // or else it won't know what depends on this project.
+ $AdditionalOutputFiles "$SRCDIR\lib\public\$(TargetName).lib" [$X360]
+ }
+
+ $Compiler
+ {
+ $PreprocessorDefinitions "$BASE;TIER0_DLL_EXPORT"
+ $Create/UsePrecompiledHeader "Use Precompiled Header (/Yu)"
+ $Create/UsePCHThroughFile "pch_tier0.h"
+ $PrecompiledHeaderFile "$(IntDir)/tier0.pch"
+ }
+
+ $Compiler [$WINDOWS]
+ {
+ $AdditionalIncludeDirectories "$BASE;..\public\WindowsSDK"
+ }
+
+ $Linker
+ {
+ $AdditionalDependencies "$BASE ws2_32.lib" [$WINDOWS]
+
+ // pc publishes the import library directly
+ $ImportLibrary "$LIBPUBLIC\$(TargetName).lib" [$WINDOWS]
+
+ // 360 publishes the import library via a post build step
+ $ImportLibrary "$(TargetDir)\$(TargetName).lib" [$X360]
+
+ $ImportLibrary "$LIBPUBLIC\$_IMPLIB_PREFIX$OUTBINNAME$_IMPLIB_EXT" [$POSIX]
+
+
+
+ // 360 will auto generate a def file for this import library
+ $ModuleDefinitionFile " " [$X360]
+ $AdditionalOptions "$BASE /AUTODEF:xbox\xbox.def" [$X360]
+ $SystemLibraries "rt" [$LINUXALL]
+ }
+
+ $PreLinkEvent [$WINDOWS]
+ {
+ $CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $LIBPUBLIC\$(TargetName).lib $SRCDIR" "\n" \
+ "$BASE"
+ }
+
+ $PreLinkEvent [$X360]
+ {
+ // Run a pre-link event to clean the .def file from the last link
+ $CommandLine "if exist xbox\xbox.def del xbox\xbox.def" "\n" \
+ "$BASE"
+ }
+
+ $PostBuildEvent [$X360]
+ {
+ // Publish the import lib
+ $CommandLine "if exist $(TargetDir)$(TargetName).lib copy $(TargetDir)$(TargetName).lib $SRCDIR\lib\public\$(TargetName).lib" "\n" \
+ "$BASE"
+ }
+
+ // tier0/vstdlib traditionally used "lib" prefix though nobody else seems to.
+ $General [$POSIX]
+ {
+ $GameOutputFile "$OUTBINDIR/$_IMPLIB_PREFIX$OUTBINNAME$_DLL_EXT"
+ }
+
+ $Linker [$POSIX]
+ {
+ $OutputFile "$(OBJ_DIR)/$_IMPLIB_PREFIX$OUTBINNAME$_DLL_EXT"
+ }
+}
+
+$Project
+{
+ $Folder "Source Files" [$WINDOWS||$X360]
+ {
+ -$File "$SRCDIR\public\tier0\memoverride.cpp"
+ }
+
+ $Folder "Link Libraries"
+ {
+ -$ImpLib tier0
+ -$Lib tier1
+ -$Implib vstdlib
+
+ $Lib "$SRCDIR\thirdparty\telemetry\lib\telemetry32.link" [$WIN32]
+ $Lib "$SRCDIR\thirdparty\telemetry\lib\telemetry64.link" [$WIN64]
+
+ $LibExternal "$SRCDIR/thirdparty/telemetry/lib/libtelemetryx86.link" [$LINUX32]
+ $LibExternal "$SRCDIR/thirdparty/telemetry/lib/libtelemetryx64.link" [$LINUX64]
+ }
+}
+
+$Project "tier0"
+{
+ $Folder "Source Files"
+ {
+ $File "assert_dialog.cpp"
+ $File "assert_dialog.rc" [$WINDOWS]
+ $File "commandline.cpp"
+ $File "cpu.cpp"
+ $File "cpumonitoring.cpp"
+ $File "cpu_posix.cpp" [$POSIX]
+ $File "cpu_usage.cpp"
+ $File "dbg.cpp"
+ $File "dynfunction.cpp"
+ $File "etwprof.cpp" [$WINDOWS]
+ $File "fasttimer.cpp"
+ $File "InterlockedCompareExchange128.masm" [$WIN64]
+ {
+ $Configuration
+ {
+ $CustomBuildStep
+ {
+ // General
+ $CommandLine "$QUOTE$(VCInstallDir)bin\x86_amd64\ml64.exe$QUOTE /nologo /c /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
+ $Description "Compiling $(InputName).masm"
+ $Outputs "$(IntDir)\$(InputName).obj"
+ }
+ }
+ }
+ $File "mem.cpp"
+ $File "mem_helpers.cpp"
+ $File "memdbg.cpp"
+ $File "memstd.cpp"
+ $File "memvalidate.cpp"
+ $File "minidump.cpp"
+ $File "pch_tier0.cpp"
+ {
+ $Configuration
+ {
+ $Compiler
+ {
+ $Create/UsePrecompiledHeader "Create Precompiled Header (/Yc)"
+ }
+ }
+ }
+ $File "platform.cpp" [$WINDOWS||$X360]
+ $File "platform_posix.cpp" [$POSIX]
+ $File "pmc360.cpp" [$X360]
+ $File "pme.cpp" [$WINDOWS]
+ $File "pme_posix.cpp" [$POSIX]
+ $File "PMELib.cpp" [$WINDOWS||$POSIX]
+ {
+ $Configuration
+ {
+ $Compiler
+ {
+ $Create/UsePrecompiledHeader "Not Using Precompiled Headers"
+ }
+ }
+ }
+ $File "progressbar.cpp"
+ $File "security.cpp"
+ $File "systeminformation.cpp"
+ $File "stacktools.cpp"
+ $File "thread.cpp" [$WINDOWS||$POSIX]
+ $File "threadtools.cpp"
+ $File "tier0_strtools.cpp"
+ $File "tslist.cpp"
+ $File "vcrmode.cpp" [$WINDOWS]
+ $File "vcrmode_posix.cpp" [$POSIX]
+ $File "vprof.cpp"
+ $File "win32consoleio.cpp" [$WINDOWS]
+ $File "../tier1/pathmatch.cpp" [$LINUXALL]
+ }
+
+ $folder "Header Files"
+ {
+ $File "$SRCDIR\public\tier0\basetypes.h"
+ $File "$SRCDIR\public\tier0\commonmacros.h"
+ $File "$SRCDIR\public\tier0\cpumonitoring.h"
+ $File "$SRCDIR\public\tier0\dbg.h"
+ $File "$SRCDIR\public\tier0\dbgflag.h"
+ $File "$SRCDIR\public\tier0\EventMasks.h"
+ $File "$SRCDIR\public\tier0\EventModes.h"
+ $File "$SRCDIR\public\tier0\etwprof.h"
+ $File "$SRCDIR\public\tier0\fasttimer.h"
+ $File "$SRCDIR\public\tier0\ia32detect.h"
+ $File "$SRCDIR\public\tier0\icommandline.h"
+ $File "$SRCDIR\public\tier0\IOCTLCodes.h"
+ $File "$SRCDIR\public\tier0\K8PerformanceCounters.h"
+ $File "$SRCDIR\public\tier0\l2cache.h"
+ $File "$SRCDIR\public\tier0\pmc360.h" [$X360]
+ $File "$SRCDIR\public\tier0\mem.h"
+ $File "$SRCDIR\public\tier0\memalloc.h"
+ $File "$SRCDIR\public\tier0\memdbgoff.h"
+ $File "$SRCDIR\public\tier0\memdbgon.h"
+ $File "$SRCDIR\public\tier0\minidump.h"
+ $File "$SRCDIR\public\tier0\P4PerformanceCounters.h"
+ $File "$SRCDIR\public\tier0\P5P6PerformanceCounters.h"
+ $File "pch_tier0.h"
+ $File "$SRCDIR\public\tier0\platform.h"
+ $File "$SRCDIR\public\tier0\PMELib.h"
+ $File "$SRCDIR\public\tier0\progressbar.h"
+ $File "$SRCDIR\public\tier0\protected_things.h"
+ $File "resource.h"
+ $File "$SRCDIR\public\tier0\systeminformation.h"
+ $File "$SRCDIR\public\tier0\threadtools.h"
+ $File "$SRCDIR\public\tier0\tslist.h"
+ $File "$SRCDIR\public\tier0\validator.h"
+ $File "$SRCDIR\public\tier0\valobject.h"
+ $File "$SRCDIR\public\tier0\valve_off.h"
+ $File "$SRCDIR\public\tier0\valve_on.h"
+ $File "$SRCDIR\public\tier0\vcr_shared.h"
+ $File "$SRCDIR\public\tier0\vcrmode.h"
+ $File "$SRCDIR\public\tier0\vprof.h"
+ $File "$SRCDIR\public\tier0\wchartypes.h"
+ $File "$SRCDIR\public\tier0\xbox_codeline_defines.h"
+ $File "mem_helpers.h"
+ }
+
+ $Folder "DESKey" [$WINDOWS]
+ {
+ $File "DESKey\ALGO.H"
+ $File "DESKey\ALGO32.LIB"
+ $File "DESKey\DK2WIN32.H"
+ $File "DESKey\DK2WIN32.LIB"
+ }
+
+ $Folder "Xbox" [$X360]
+ {
+ $folder "Source Files"
+ {
+ $File "xbox\xbox_console.cpp"
+ $File "xbox\xbox_system.cpp"
+ $File "xbox\xbox_win32stubs.cpp"
+ }
+ $folder "Header Files"
+ {
+ $File "$SRCDIR\common\xbox\xbox_console.h"
+ $File "$SRCDIR\common\xbox\xbox_core.h"
+ $File "$SRCDIR\common\xbox\xbox_win32stubs.h"
+ }
+ }
+
+ $Folder "Manifest Files" [$WINDOWS]
+ {
+ $File "ValveETWProvider.man"
+ {
+ $Configuration
+ {
+ $CustomBuildStep
+ {
+ $CommandLine "..\DevTools\bin\mc.exe -um $(InputFilename) -z $(InputName)Events"
+ $Description "Compiling ETW manifest file"
+ $Outputs "$(InputName)Events.h;$(InputName)Events.rc"
+ }
+ }
+ }
+ }
+}