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.2 KiB

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