//----------------------------------------------------------------------------- // 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 } }