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.
140 lines
5.2 KiB
140 lines
5.2 KiB
//----------------------------------------------------------------------------- |
|
// SOURCE_DLL_WIN32_BASE.VPC |
|
// |
|
// Base Settings for all 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 && !$VS2019] |
|
$Macro LIBCOMMON "$SRCDIR\lib\common$PLATSUBDIR\2015\release" [($VS2015 || $VS2019) && !$WIN32] |
|
$Macro LIBCOMMON "$SRCDIR\lib\common\win32\2015\release" [($VS2015 || $VS2019) && $WIN32] |
|
|
|
$Include "$SRCDIR\vpc_scripts\loadaddress.vpc" |
|
$Include "$SRCDIR\vpc_scripts\source_dll_win32_debug.vpc" |
|
$Include "$SRCDIR\vpc_scripts\source_dll_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;_DLL_EXT=$_DLL_EXT" |
|
$PreprocessorDefinitions "$BASE;DLLNAME=$OUTBINNAME" |
|
} |
|
|
|
$Compiler [$WIN32] |
|
{ |
|
$EnableEnhancedInstructionSet "Streaming SIMD Extensions (/arch:SSE)" |
|
} |
|
|
|
$Linker |
|
{ |
|
$AdditionalDependencies "$BASE shell32.lib user32.lib advapi32.lib gdi32.lib comdlg32.lib ole32.lib" [$WIN32||$WIN64] |
|
$TargetMachine "MachineX86 (/MACHINE:X86)" [$WIN32] |
|
$TargetMachine "MachineX64 (/MACHINE:X64)" [$WIN64] |
|
// 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 "if not exist $QUOTE$OUTBINDIR$QUOTE mkdir $QUOTE$OUTBINDIR$QUOTE" "\n" |
|
// $CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE $SRCDIR" "\n" [!$SOURCESDK] |
|
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$(TargetFileName)$QUOTE $QUOTE$OUTBINDIR\$(TargetFileName)$QUOTE" "\n" \ |
|
"if ERRORLEVEL 1 goto BuildEventFailed" "\n" \ |
|
"if exist $QUOTE$(TargetDir)$(TargetName).map$QUOTE copy $QUOTE$(TargetDir)$(TargetName).map$QUOTE $OUTBINDIR\$(TargetName).map" "\n" |
|
// $CommandLine "$BASE" "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $QUOTE$OUTBINDIR\$(TargetName).pdb$QUOTE $SRCDIR" "\n" [!$SOURCESDK] |
|
$CommandLine "$BASE" "copy $QUOTE$(TargetDir)$(TargetName).pdb$QUOTE $OUTBINDIR\$(TargetName).pdb" "\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)$(TargetFileName)$QUOTE" "\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 /safeseh /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [!$VS2019] |
|
$CommandLine "$QUOTE$(VC_ExecutablePath_x86_x86)\ml.exe$QUOTE /safeseh /c /Cp /Zi /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE" [$VS2019] |
|
$Description "Compiling pointeroverride.asm" |
|
$Outputs "$(IntDir)\$(InputName).obj" |
|
} |
|
} |
|
} |
|
|
|
$File "$SRCDIR\common\debug_dll_check.cpp" [!$SOURCESDK] |
|
{ |
|
$Configuration |
|
{ |
|
$Compiler |
|
{ |
|
$Create/UsePrecompiledHeader "Not Using Precompiled Headers" |
|
} |
|
} |
|
} |
|
} |
|
|
|
$Folder "Link Libraries" |
|
{ |
|
$Implib "$LIBPUBLIC\tier0" |
|
$Lib "$LIBPUBLIC\tier1" |
|
$Implib "$LIBPUBLIC\vstdlib" |
|
} |
|
} |
|
|
|
|