Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
7.2 KiB

  1. //-----------------------------------------------------------------------------
  2. // TIER0.VPC
  3. //
  4. // Project Script
  5. //-----------------------------------------------------------------------------
  6. $MacroRequired "PLATSUBDIR"
  7. $Macro SRCDIR ".."
  8. $Macro OUTBINDIR "$SRCDIR\..\game\bin"
  9. $Include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
  10. $Configuration
  11. {
  12. $General
  13. {
  14. // X360 version publishes to some other directory then copies here so we need to tell VPC to track this
  15. // or else it won't know what depends on this project.
  16. $AdditionalOutputFiles "$SRCDIR\lib\public\$(TargetName).lib" [$X360]
  17. }
  18. $Compiler
  19. {
  20. $PreprocessorDefinitions "$BASE;TIER0_DLL_EXPORT"
  21. $Create/UsePrecompiledHeader "Use Precompiled Header (/Yu)"
  22. $Create/UsePCHThroughFile "pch_tier0.h"
  23. $PrecompiledHeaderFile "$(IntDir)/tier0.pch"
  24. }
  25. $Compiler [$WINDOWS]
  26. {
  27. $AdditionalIncludeDirectories "$BASE;..\public\WindowsSDK"
  28. }
  29. $Linker
  30. {
  31. $AdditionalDependencies "$BASE ws2_32.lib" [$WINDOWS]
  32. // pc publishes the import library directly
  33. $ImportLibrary "$LIBPUBLIC\$(TargetName).lib" [$WINDOWS]
  34. // 360 publishes the import library via a post build step
  35. $ImportLibrary "$(TargetDir)\$(TargetName).lib" [$X360]
  36. $ImportLibrary "$LIBPUBLIC\$_IMPLIB_PREFIX$OUTBINNAME$_IMPLIB_EXT" [$POSIX]
  37. // 360 will auto generate a def file for this import library
  38. $ModuleDefinitionFile " " [$X360]
  39. $AdditionalOptions "$BASE /AUTODEF:xbox\xbox.def" [$X360]
  40. $SystemLibraries "rt" [$LINUXALL]
  41. }
  42. $PreLinkEvent [$WINDOWS]
  43. {
  44. $CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $LIBPUBLIC\$(TargetName).lib $SRCDIR" "\n" \
  45. "$BASE"
  46. }
  47. $PreLinkEvent [$X360]
  48. {
  49. // Run a pre-link event to clean the .def file from the last link
  50. $CommandLine "if exist xbox\xbox.def del xbox\xbox.def" "\n" \
  51. "$BASE"
  52. }
  53. $PostBuildEvent [$X360]
  54. {
  55. // Publish the import lib
  56. $CommandLine "if exist $(TargetDir)$(TargetName).lib copy $(TargetDir)$(TargetName).lib $SRCDIR\lib\public\$(TargetName).lib" "\n" \
  57. "$BASE"
  58. }
  59. // tier0/vstdlib traditionally used "lib" prefix though nobody else seems to.
  60. $General [$POSIX]
  61. {
  62. $GameOutputFile "$OUTBINDIR/$_IMPLIB_PREFIX$OUTBINNAME$_DLL_EXT"
  63. }
  64. $Linker [$POSIX]
  65. {
  66. $OutputFile "$(OBJ_DIR)/$_IMPLIB_PREFIX$OUTBINNAME$_DLL_EXT"
  67. }
  68. }
  69. $Project
  70. {
  71. $Folder "Source Files" [$WINDOWS||$X360]
  72. {
  73. -$File "$SRCDIR\public\tier0\memoverride.cpp"
  74. }
  75. $Folder "Link Libraries"
  76. {
  77. -$ImpLib tier0
  78. -$Lib tier1
  79. -$Implib vstdlib
  80. $Lib "$SRCDIR\thirdparty\telemetry\lib\telemetry32.link" [$WIN32]
  81. $Lib "$SRCDIR\thirdparty\telemetry\lib\telemetry64.link" [$WIN64]
  82. $LibExternal "$SRCDIR/thirdparty/telemetry/lib/libtelemetryx86.link" [$LINUX32]
  83. $LibExternal "$SRCDIR/thirdparty/telemetry/lib/libtelemetryx64.link" [$LINUX64]
  84. }
  85. }
  86. $Project "tier0"
  87. {
  88. $Folder "Source Files"
  89. {
  90. $File "assert_dialog.cpp"
  91. $File "assert_dialog.rc" [$WINDOWS]
  92. $File "commandline.cpp"
  93. $File "cpu.cpp"
  94. $File "cpumonitoring.cpp"
  95. $File "cpu_posix.cpp" [$POSIX]
  96. $File "cpu_usage.cpp"
  97. $File "dbg.cpp"
  98. $File "dynfunction.cpp"
  99. $File "etwprof.cpp" [$WINDOWS]
  100. $File "fasttimer.cpp"
  101. $File "InterlockedCompareExchange128.masm" [$WIN64]
  102. {
  103. $Configuration
  104. {
  105. $CustomBuildStep
  106. {
  107. // General
  108. $CommandLine "$QUOTE$(VCInstallDir)bin\x86_amd64\ml64.exe$QUOTE /nologo /c /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
  109. $Description "Compiling $(InputName).masm"
  110. $Outputs "$(IntDir)\$(InputName).obj"
  111. }
  112. }
  113. }
  114. $File "mem.cpp"
  115. $File "mem_helpers.cpp"
  116. $File "memdbg.cpp"
  117. $File "memstd.cpp"
  118. $File "memvalidate.cpp"
  119. $File "minidump.cpp"
  120. $File "pch_tier0.cpp"
  121. {
  122. $Configuration
  123. {
  124. $Compiler
  125. {
  126. $Create/UsePrecompiledHeader "Create Precompiled Header (/Yc)"
  127. }
  128. }
  129. }
  130. $File "platform.cpp" [$WINDOWS||$X360]
  131. $File "platform_posix.cpp" [$POSIX]
  132. $File "pmc360.cpp" [$X360]
  133. $File "pme.cpp" [$WINDOWS]
  134. $File "pme_posix.cpp" [$POSIX]
  135. $File "PMELib.cpp" [$WINDOWS||$POSIX]
  136. {
  137. $Configuration
  138. {
  139. $Compiler
  140. {
  141. $Create/UsePrecompiledHeader "Not Using Precompiled Headers"
  142. }
  143. }
  144. }
  145. $File "progressbar.cpp"
  146. $File "security.cpp"
  147. $File "systeminformation.cpp"
  148. $File "stacktools.cpp"
  149. $File "thread.cpp" [$WINDOWS||$POSIX]
  150. $File "threadtools.cpp"
  151. $File "tier0_strtools.cpp"
  152. $File "tslist.cpp"
  153. $File "vcrmode.cpp" [$WINDOWS]
  154. $File "vcrmode_posix.cpp" [$POSIX]
  155. $File "vprof.cpp"
  156. $File "win32consoleio.cpp" [$WINDOWS]
  157. $File "../tier1/pathmatch.cpp" [$LINUXALL]
  158. }
  159. $folder "Header Files"
  160. {
  161. $File "$SRCDIR\public\tier0\basetypes.h"
  162. $File "$SRCDIR\public\tier0\commonmacros.h"
  163. $File "$SRCDIR\public\tier0\cpumonitoring.h"
  164. $File "$SRCDIR\public\tier0\dbg.h"
  165. $File "$SRCDIR\public\tier0\dbgflag.h"
  166. $File "$SRCDIR\public\tier0\EventMasks.h"
  167. $File "$SRCDIR\public\tier0\EventModes.h"
  168. $File "$SRCDIR\public\tier0\etwprof.h"
  169. $File "$SRCDIR\public\tier0\fasttimer.h"
  170. $File "$SRCDIR\public\tier0\ia32detect.h"
  171. $File "$SRCDIR\public\tier0\icommandline.h"
  172. $File "$SRCDIR\public\tier0\IOCTLCodes.h"
  173. $File "$SRCDIR\public\tier0\K8PerformanceCounters.h"
  174. $File "$SRCDIR\public\tier0\l2cache.h"
  175. $File "$SRCDIR\public\tier0\pmc360.h" [$X360]
  176. $File "$SRCDIR\public\tier0\mem.h"
  177. $File "$SRCDIR\public\tier0\memalloc.h"
  178. $File "$SRCDIR\public\tier0\memdbgoff.h"
  179. $File "$SRCDIR\public\tier0\memdbgon.h"
  180. $File "$SRCDIR\public\tier0\minidump.h"
  181. $File "$SRCDIR\public\tier0\P4PerformanceCounters.h"
  182. $File "$SRCDIR\public\tier0\P5P6PerformanceCounters.h"
  183. $File "pch_tier0.h"
  184. $File "$SRCDIR\public\tier0\platform.h"
  185. $File "$SRCDIR\public\tier0\PMELib.h"
  186. $File "$SRCDIR\public\tier0\progressbar.h"
  187. $File "$SRCDIR\public\tier0\protected_things.h"
  188. $File "resource.h"
  189. $File "$SRCDIR\public\tier0\systeminformation.h"
  190. $File "$SRCDIR\public\tier0\threadtools.h"
  191. $File "$SRCDIR\public\tier0\tslist.h"
  192. $File "$SRCDIR\public\tier0\validator.h"
  193. $File "$SRCDIR\public\tier0\valobject.h"
  194. $File "$SRCDIR\public\tier0\valve_off.h"
  195. $File "$SRCDIR\public\tier0\valve_on.h"
  196. $File "$SRCDIR\public\tier0\vcr_shared.h"
  197. $File "$SRCDIR\public\tier0\vcrmode.h"
  198. $File "$SRCDIR\public\tier0\vprof.h"
  199. $File "$SRCDIR\public\tier0\wchartypes.h"
  200. $File "$SRCDIR\public\tier0\xbox_codeline_defines.h"
  201. $File "mem_helpers.h"
  202. }
  203. $Folder "DESKey" [$WINDOWS]
  204. {
  205. $File "DESKey\ALGO.H"
  206. $File "DESKey\ALGO32.LIB"
  207. $File "DESKey\DK2WIN32.H"
  208. $File "DESKey\DK2WIN32.LIB"
  209. }
  210. $Folder "Xbox" [$X360]
  211. {
  212. $folder "Source Files"
  213. {
  214. $File "xbox\xbox_console.cpp"
  215. $File "xbox\xbox_system.cpp"
  216. $File "xbox\xbox_win32stubs.cpp"
  217. }
  218. $folder "Header Files"
  219. {
  220. $File "$SRCDIR\common\xbox\xbox_console.h"
  221. $File "$SRCDIR\common\xbox\xbox_core.h"
  222. $File "$SRCDIR\common\xbox\xbox_win32stubs.h"
  223. }
  224. }
  225. $Folder "Manifest Files" [$WINDOWS]
  226. {
  227. $File "ValveETWProvider.man"
  228. {
  229. $Configuration
  230. {
  231. $CustomBuildStep
  232. {
  233. $CommandLine "..\DevTools\bin\mc.exe -um $(InputFilename) -z $(InputName)Events"
  234. $Description "Compiling ETW manifest file"
  235. $Outputs "$(InputName)Events.h;$(InputName)Events.rc"
  236. }
  237. }
  238. }
  239. }
  240. }