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.

353 lines
9.3 KiB

  1. //-----------------------------------------------------------------------------
  2. // SOURCE_EXE_WIN_WIN32_RELEASE.VPC
  3. //
  4. // Base Settings for Source(TM) Projects
  5. //-----------------------------------------------------------------------------
  6. $IgnoreRedundancyWarning "ON"
  7. // Disable frame pointer omission to allow fast stack walking, necessary for
  8. // good ETW profiling.
  9. $Conditional NOFPO "1"
  10. $MacroRequired "SRCDIR"
  11. $MacroRequired "OUTBINNAME"
  12. $MacroRequired "OUTBINDIR"
  13. $MacroRequired "LIBPUBLIC"
  14. $MacroRequired "LIBCOMMON"
  15. $MacroRequired "PLATSUBDIR"
  16. $MacroRequiredAllowEmpty "GAMENAME"
  17. $MacroRequiredAllowEmpty "INTERMEDIATESUBDIR"
  18. $MacroRequiredAllowEmpty "_UNITYSUBDIR"
  19. $MacroRequiredAllowEmpty "_STATICSUBDIR"
  20. $Macro "_SUBDIRSUFFIX" "$INTERMEDIATESUBDIR$_STATICSUBDIR$GAMENAME$PLATSUBDIR$_UNITYSUBDIR"
  21. $Configuration "Release"
  22. {
  23. $General
  24. {
  25. // General
  26. $OutputDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
  27. $IntermediateDirectory ".\Release$_SUBDIRSUFFIX" [!$RETAIL && !$PROFILE]
  28. $OutputDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
  29. $IntermediateDirectory ".\Retail$_SUBDIRSUFFIX" [$RETAIL]
  30. $OutputDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
  31. $IntermediateDirectory ".\Profile$_SUBDIRSUFFIX" [!$RETAIL && $PROFILE]
  32. $ExtensionsToDeleteOnClean
  33. $BuildLogFile
  34. $InheritedProjectPropertySheets
  35. // Project Defaults
  36. $ConfigurationType "Application (.exe)"
  37. $UseOfMFC
  38. $UseOfATL
  39. $MinimizeCRTUseInATL
  40. $CharacterSet "Use Multi-Byte Character Set"
  41. $CommonLanguageRuntimeSupport
  42. $WholeProgramOptimization "Use Link Time Code Generation" [$LTCG]
  43. }
  44. $Debugging
  45. {
  46. // Action
  47. $Command
  48. $CommandArguments
  49. $WorkingDirectory
  50. $Attach
  51. $DebuggerType
  52. $Environment
  53. $MergeEnvironment
  54. $SQLDebugging
  55. }
  56. $Compiler
  57. {
  58. // General
  59. $AdditionalIncludeDirectories "$SRCDIR\common;$SRCDIR\public;$SRCDIR\public\tier0;$SRCDIR\public\tier1"
  60. $Resolve#UsingReferences
  61. $DebugInformationFormat "Program Database (/Zi)"
  62. $SuppressStartupBanner
  63. $WarningLevel "Level 4 (/W4)"
  64. $TreatWarningsAsErrors
  65. $UseUnicodeResponseFiles
  66. // Optimization
  67. $Optimization "Maximize Speed (/O2)"
  68. $InlineFunctionExpansion "Any Suitable (/Ob2)"
  69. $EnableIntrinsicFunctions "Yes (/Oi)"
  70. $FavorSizeOrSpeed "Favor Fast Code (/Ot)"
  71. $OmitFramePointers
  72. $EnableFiberSafeOptimizations
  73. $WholeProgramOptimization
  74. // Preprocessor
  75. $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)"
  76. $PreprocessorDefinitions "$BASE;RELEASEASSERTS" [$RELEASEASSERTS]
  77. $IgnoreStandardIncludePath
  78. $GeneratePreprocessedFile
  79. $KeepComments
  80. // Code Generation
  81. $EnableStringPooling "Yes (/GF)"
  82. $EnableMinimalRebuild
  83. $EnableC++Exceptions "No"
  84. $SmallerTypeCheck
  85. $BasicRuntimeChecks
  86. $RuntimeLibrary "Multi-threaded (/MT)"
  87. $StructMemberAlignment
  88. $BufferSecurityCheck "No" [$RETAIL]
  89. $BufferSecurityCheck "Yes" [!$RETAIL]
  90. $EnableFunctionLevelLinking "Yes (/Gy)"
  91. $EnableEnhancedInstructionSet
  92. $FloatingPointModel "Fast (/fp:fast)"
  93. $EnableFloatingPointExceptions
  94. // Language
  95. $DisableLanguageExtensions
  96. $DefaultCharUnsigned "No"
  97. $TreatWCHAR_TAsBuiltInType "Yes (/Zc:wchar_t)"
  98. $ForceConformanceInForLoopScope "Yes (/Zc:forScope)"
  99. $EnableRunTimeTypeInfo "Yes (/GR)"
  100. $OpenMPSupport "No"
  101. // Precompiled Headers
  102. $Create/UsePrecompiledHeader "Not Using Precompiled Headers"
  103. $Create/UsePCHThroughFile
  104. $PrecompiledHeaderFile
  105. // Output Files
  106. $ExpandAttributedSource "No"
  107. $AssemblerOutput "No Listing"
  108. $ASMListLocation "$(IntDir)/"
  109. $ObjectFileName "$(IntDir)/"
  110. $ProgramDatabaseFileName "$(IntDir)/"
  111. $GenerateXMLDocumentationFiles
  112. $XMLDocumentationFileName
  113. // Browse Information
  114. $EnableBrowseInformation "None"
  115. $BrowseFile "$(IntDir)/"
  116. // Advanced
  117. $CallingConvention
  118. $CompileAs "Compile as C++ Code (/TP)"
  119. $DisableSpecificWarnings
  120. $ForceIncludes
  121. $Force#Using
  122. $ShowIncludes
  123. $UndefinePreprocessorDefinitions
  124. $UndefineAllPreprocessorDefinitions
  125. $UseFullPaths "Yes (/FC)"
  126. $OmitDefaultLibraryNames
  127. $ErrorReporting "Prompt Immediately (/errorReport:prompt)"
  128. // Enable extra debugging information. This switch requires VS 2013 Update 3.
  129. // With VS 2013 make sure that Edit-And-Continue is disabled in the debugger settings so that
  130. // the debugger uses the enhanced debug information.
  131. // http://randomascii.wordpress.com/2013/09/11/debugging-optimized-codenew-in-visual-studio-2012/
  132. $AdditionalOptions "$BASE /Zo"
  133. // Command Line
  134. $AdditionalOptions "$BASE /Oy-" [$NOFPO]
  135. }
  136. $Linker
  137. {
  138. // General
  139. $OutputFile "$(OutDir)/$OUTBINNAME.exe"
  140. $ShowProgress "Not Set"
  141. $Version
  142. $EnableIncrementalLinking "No (/INCREMENTAL:NO)"
  143. $SuppressStartupBanner "Yes (/NOLOGO)"
  144. $IgnoreImportLibrary
  145. $RegisterOutput
  146. $AdditionalLibraryDirectories
  147. $LinkLibraryDependencies
  148. $UseLibraryDependencyInputs
  149. $UseUNICODEResponseFiles "No"
  150. // Input
  151. $AdditionalDependencies
  152. $IgnoreAllDefaultLibraries
  153. $IgnoreSpecificLibrary "libc;libcd;libcmtd;libcpmtd;libcpmtd0;libcpmtd1"
  154. $ModuleDefinitionFile
  155. $AddModuleToAssembly
  156. $EmbedManagedResourceFile
  157. $ForceSymbolReferences
  158. $DelayLoadedDLLs
  159. $AssemblyLinkResource
  160. // Manifest File
  161. $GenerateManifest "Yes"
  162. $ManifestFile
  163. $AdditionalManifestDependencies
  164. $AllowIsolation
  165. $UACExecutionLevel
  166. // Debugging
  167. $GenerateDebugInfo "Yes (/DEBUG)"
  168. $GenerateProgramDatabaseFile "$(IntDir)/$(TargetName).pdb"
  169. $StripPrivateSymbols
  170. $MapExports
  171. $DebuggableAssembly
  172. // System
  173. $SubSystem "Windows (/SUBSYSTEM:WINDOWS)"
  174. $HeapReserveSize
  175. $HeapCommitSize
  176. $StackReserveSize
  177. $StackCommitSize
  178. $EnableLargeAddresses
  179. $TerminalServer
  180. $SwapRunFromCD
  181. $SwapRunFromNetwork
  182. $Driver
  183. // RandomizeBaseAddress (/DYNAMICBASE, /ASLR) is a hugely important security setting.
  184. // However it can cause confusion during development and can make tracking down certain
  185. // bugs tricky by making code/stack/heap addresses change between runs. Enable for retail,
  186. // but disable for development builds.
  187. $RandomizedBaseAddress "true" [$RETAIL]
  188. $RandomizedBaseAddress "false" [!$RETAIL]
  189. // Optimization
  190. $References "Eliminate Unreferenced Data (/OPT:REF)"
  191. // COMDAT folding can be very confusing when debugging and profiling because it can
  192. // cause execution to go through nonsensical functions (that happen to be binary
  193. // equivalent to the logical function). The performance benefit is small enough that
  194. // it is not worth enabling in the development builds. It should be enabled on retail
  195. // builds.
  196. $EnableCOMDATFolding "Remove Redundant COMDATs (/OPT:ICF)" [$RETAIL]
  197. $EnableCOMDATFolding "No (/OPT:NOICF)" [!$RETAIL]
  198. $OptimizeForWindows98
  199. $FunctionOrder
  200. $ProfileGuidedDatabase
  201. $LinkTimeCodeGeneration
  202. // Embedded IDL
  203. $MIDLCommands
  204. $IgnoreEmbeddedIDL
  205. $MergeIDLBaseFileName
  206. $TypeLibrary
  207. $TypeLibResourceID
  208. // Advanced
  209. $EntryPoint
  210. $NoEntryPoint
  211. $SetChecksum
  212. $BaseAddress "$LOADADDRESS_DEVELOPMENT"
  213. //$BaseAddress "$LOADADDRESS_RETAIL" [$RETAIL]
  214. $FixedBaseAddress
  215. $TurnOffAssemblyGeneration
  216. $DelayLoadedDLL
  217. $ImportLibrary
  218. $MergeSections
  219. $TargetMachine
  220. $Profile
  221. $CLRThreadAttribute
  222. $CLRImageType
  223. $KeyFile
  224. $KeyContainer
  225. $DelaySign
  226. $ErrorReporting "Prompt Immediately (/ERRORREPORT:PROMPT)"
  227. $CLRUnmanagedCodeCheck
  228. // Most DLLs cannot yet handle SafeSEH
  229. $ImageHasSafeExceptionHandlers "false"
  230. // Command Line
  231. $AdditionalOptions
  232. }
  233. $ManifestTool
  234. {
  235. // General
  236. $SuppressStartupBanner "Yes (/nologo)"
  237. $VerboseOutput
  238. $AssemblyIdentity
  239. $UseUNICODEResponseFiles
  240. $UseFAT32WorkAround
  241. // Input And Output
  242. $AdditionalManifestFiles "$SRCDIR\public\windows_default.manifest" [!$SOURCESDK]
  243. $InputResourceManifests
  244. $EmbedManifest
  245. $OutputManifestFile
  246. $ManifestResourceFile
  247. $GenerateCatalogFiles
  248. $DependencyInformationFile
  249. // Isolated COM
  250. $TypeLibraryFile
  251. $RegistrarScriptFile
  252. $ComponentFileName
  253. $ReplacementsFile
  254. // Advanced
  255. $UpdateFileHashes
  256. $UpdateFileHashesSearchPath
  257. // Command Line
  258. $AdditionalOptions
  259. }
  260. $XMLDocumentGenerator
  261. {
  262. // General
  263. $SuppressStartupBanner "Yes (/nologo)"
  264. $ValidateIntelliSense
  265. $AdditionalDocumentFiles
  266. $OutputDocumentFile
  267. $DocumentLibraryDependencies
  268. $UseUNICODEResponseFiles
  269. }
  270. $BrowseInformation
  271. {
  272. $SuppressStartupBanner "Yes (/nologo)"
  273. $OutputFile "$(OutDir)/$OUTBINNAME.bsc"
  274. $AdditionalOptions
  275. }
  276. $Resources
  277. {
  278. // General
  279. $PreprocessorDefinitions "NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)"
  280. $Culture "English (United States) (0x409)"
  281. $AdditionalIncludeDirectories
  282. $IgnoreStandardIncludePath
  283. $ShowProgress
  284. $ResourceFileName
  285. // Command Line
  286. $AdditionalOptions
  287. }
  288. $PreBuildEvent
  289. {
  290. $CommandLine
  291. $Description
  292. $ExcludedFromBuild "No"
  293. }
  294. $PreLinkEvent
  295. {
  296. $CommandLine
  297. $Description
  298. $ExcludedFromBuild "No"
  299. }
  300. $PostBuildEvent
  301. {
  302. $CommandLine
  303. $Description
  304. $ExcludedFromBuild "No"
  305. }
  306. $CustomBuildStep
  307. {
  308. // General
  309. $CommandLine
  310. $Description
  311. $Outputs
  312. $AdditionalDependencies
  313. }
  314. }