summaryrefslogtreecommitdiff
path: root/vpc_scripts/source_exe_win_win32_base.vpc
diff options
context:
space:
mode:
Diffstat (limited to 'vpc_scripts/source_exe_win_win32_base.vpc')
-rw-r--r--vpc_scripts/source_exe_win_win32_base.vpc129
1 files changed, 129 insertions, 0 deletions
diff --git a/vpc_scripts/source_exe_win_win32_base.vpc b/vpc_scripts/source_exe_win_win32_base.vpc
new file mode 100644
index 0000000..a2704b1
--- /dev/null
+++ b/vpc_scripts/source_exe_win_win32_base.vpc
@@ -0,0 +1,129 @@
+//-----------------------------------------------------------------------------
+// SOURCE_EXE_WIN_WIN32.VPC
+//
+// Base Settings for Source(TM) Projects
+//-----------------------------------------------------------------------------
+
+$Include "$SRCDIR\vpc_scripts\version.vpc"
+
+$MacroRequired "SRCDIR"
+$MacroRequired "OUTBINNAME" "$PROJECTNAME"
+$MacroRequired "OUTBINDIR"
+
+$Macro OUTBINDIR "$OUTBINDIR$PLATSUBDIR"
+$Macro LIBPUBLIC "$SRCDIR\lib\public$PLATSUBDIR"
+$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR" [!$VS2015]
+$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR\2015\release" [$VS2015&&!$WIN32]
+$Macro LIBCOMMON "$SRCDIR\lib\common\win32\2015\release" [$VS2015&&$WIN32]
+
+$Include "$SRCDIR\vpc_scripts\loadaddress.vpc"
+$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_debug.vpc"
+$Include "$SRCDIR\vpc_scripts\source_exe_win_win32_release.vpc"
+$Include "$SRCDIR\vpc_scripts\source_win32_base.vpc"
+
+$IgnoreRedundancyWarning "ON"
+
+// Common Configuration
+$Configuration
+{
+ $General
+ {
+ $TargetName "$OUTBINNAME"
+ }
+
+
+ $Compiler
+ {
+ $PreprocessorDefinitions "$BASE;PLATFORM_64BITS;WIN64;_WIN64;COMPILER_MSVC64" [$WIN64]
+ $PreprocessorDefinitions "$BASE;COMPILER_MSVC32" [$WIN32]
+ $PreprocessorDefinitions "$BASE;COMPILER_MSVC;EXENAME=$OUTBINNAME;_DLL_EXT=$_DLL_EXT"
+ }
+
+ $Compiler [$WIN32]
+ {
+ $EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)"
+ }
+
+ $Linker
+ {
+ $AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [$WIN32]
+ $TargetMachine "MachineX86 (/MACHINE:X86)" [$WIN32]
+ $TargetMachine "MachineX64 (/MACHINE:X64)" [$WIN64]
+ // NXCOMPAT (also known as DEP or Data Access Protection) should be enabled for all
+ // executables for security and debugging reasons.
+ $AdditionalOptions "/NXCOMPAT"
+ // Suppress this pointless warning using the undocumented /ignore linker switch
+ // schemalib.lib(schemaclassinfo.obj) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
+ $AdditionalOptions "$BASE /ignore:4221"
+ $AdditionalOptions "$BASE $SRCDIR\lib\public\ftol3.obj" [$VS2013 && $WIN32 && !$DISABLE_FTOL3_OVERRIDE && !$SOURCESDK] // Work around CRT bug https://connect.microsoft.com/VisualStudio/feedback/details/806362/vc12-pollutes-the-floating-point-stack-when-casting-infinity-nan-to-unsigned-long#
+ }
+
+ $PreBuildEvent
+ {
+ $CommandLine "if EXIST $OUTBINDIR\$(TargetFileName) for /f $QUOTEdelims=$QUOTE %%A in ('attrib $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE') do set valveTmpIsReadOnly=$QUOTE%%A$QUOTE" "\n" \
+ "set valveTmpIsReadOnlyLetter=%valveTmpIsReadOnly:~6,1%" "\n" \
+ "if $QUOTE%valveTmpIsReadOnlyLetter%$QUOTE==$QUOTER$QUOTE del /q $QUOTE$(TargetDir)$QUOTE$(TargetFileName)" "\n" \
+ "$CRCCHECK" "\n"
+ }
+
+ $PostBuildEvent [!$ANALYZE]
+ {
+ $CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetFileName) $SRCDIR" "\n" [!$SOURCESDK]
+ $CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetFileName) $OUTBINDIR\$(TargetFileName) >nul" "\n" \
+ "if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
+ "if exist $QUOTE$(TargetDir)$QUOTE$(TargetName).map copy $QUOTE$(TargetDir)$QUOTE$(TargetName).map $OUTBINDIR\$(TargetName).map >nul" "\n"
+ $CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $OUTBINDIR\$(TargetName).pdb $SRCDIR" "\n" [!$SOURCESDK]
+ $CommandLine "$BASE" "copy $QUOTE$(TargetDir)$QUOTE$(TargetName).pdb $OUTBINDIR\$(TargetName).pdb >nul" "\n" \
+ "if ERRORLEVEL 1 goto BuildEventFailed" "\n" \
+ "goto BuildEventOK" "\n" \
+ ":BuildEventFailed" "\n" \
+ "echo *** ERROR! PostBuildStep FAILED for $(ProjectName)! EXE or DLL is probably running. ***" "\n" \
+ "del /q $QUOTE$(TargetDir)$QUOTE$(TargetFileName)" "\n" \
+ "exit 1" "\n" \
+ ":BuildEventOK" "\n"
+ $Description "Publishing to $OUTBINDIR"
+ $ExcludedFromBuild "No"
+ }
+}
+
+// Skeleton Project - All derived projects get this as a starting base
+$Project
+{
+ $Folder "Source Files"
+ {
+ $File "$SRCDIR\public\tier0\memoverride.cpp"
+ {
+ $Configuration
+ {
+ $Compiler
+ {
+ $Create/UsePrecompiledHeader "Not Using Precompiled Headers"
+ }
+ }
+ }
+
+ // Implement __imp__EncodePointer and __imp__DecodePointer so that we can run on XP SP1
+ // when building with VS 2010 and higher.
+ $File "$SRCDIR\public\tier0\pointeroverride.asm" [$WIN32]
+ {
+ $Configuration
+ {
+ $CustomBuildStep
+ {
+ // General
+ $CommandLine "$QUOTE$(VCInstallDir)bin\ml.exe$QUOTE /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
+ $Description "Compiling pointeroverride.asm"
+ $Outputs "$(IntDir)\$(InputName).obj"
+ }
+ }
+ }
+ }
+
+ $Folder "Link Libraries"
+ {
+ $Implib "$LIBPUBLIC\tier0"
+ $Lib "$LIBPUBLIC\tier1"
+ $Implib "$LIBPUBLIC\vstdlib"
+ }
+}
+