summaryrefslogtreecommitdiff
path: root/vstdlib/vstdlib.vpc
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /vstdlib/vstdlib.vpc
downloadarchived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.tar.xz
archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.zip
Diffstat (limited to 'vstdlib/vstdlib.vpc')
-rw-r--r--vstdlib/vstdlib.vpc157
1 files changed, 157 insertions, 0 deletions
diff --git a/vstdlib/vstdlib.vpc b/vstdlib/vstdlib.vpc
new file mode 100644
index 0000000..89c2214
--- /dev/null
+++ b/vstdlib/vstdlib.vpc
@@ -0,0 +1,157 @@
+//-----------------------------------------------------------------------------
+// VSTDLIB.VPC
+//
+// Project Script
+//-----------------------------------------------------------------------------
+
+$Macro SRCDIR ".."
+$Macro OUTBINDIR "$SRCDIR\..\game\bin"
+
+$include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
+
+$MacroRequired "PLATSUBDIR"
+
+$Configuration
+{
+
+ $General
+ {
+ // X360 version publishes to some other directory then copies here so we need to tell VPC to track this
+ // or else it won't know what depends on this project.
+ $AdditionalOutputFiles "$SRCDIR\lib\public\$(TargetName).lib" [$X360]
+ }
+
+ $Compiler
+ {
+ $PreprocessorDefinitions "$BASE;VSTDLIB_DLL_EXPORT"
+ $GCC_ExtraCompilerFlags "-U_FORTIFY_SOURCE" [$LINUXALL]
+ }
+
+ $Linker
+ {
+ $AdditionalDependencies "$BASE odbc32.lib odbccp32.lib" [$WINDOWS]
+
+ // pc publishes the import library directly
+ $ImportLibrary "$LIBPUBLIC\$(TargetName).lib" [$WINDOWS]
+
+ // 360 publishes the import library via a post build step
+ $ImportLibrary "$(TargetDir)\$(TargetName).lib" [$X360]
+
+
+ // 360 will auto generate a def file for this import library
+ $ModuleDefinitionFile " " [$X360]
+ $AdditionalOptions "$BASE /AUTODEF:xbox\xbox.def" [$X360]
+
+ // Suppress this warning using the undocumented /ignore linker switch
+ // tier1.lib(KeyValues.obj) : warning LNK4217: locally defined symbol _KeyValuesSystem imported in function "public: static int __cdecl KeyValues::GetSymbolForStringClassic(char const *,bool)" (?GetSymbolForStringClassic@KeyValues@@SAHPBD_N@Z)
+ $AdditionalOptions "$BASE /ignore:4217" [$WINDOWS]
+
+ $SystemLibraries "iconv" [$OSXALL]
+ $SystemFrameworks "CoreServices" [$OSXALL]
+ $GCC_ExtraLinkerFlags "-all_load" [$OSXALL]
+
+ $ImportLibrary "$LIBPUBLIC\$_IMPLIB_PREFIX$OUTBINNAME$_IMPLIB_EXT" [$POSIX]
+ $OutputFile "$(OBJ_DIR)/$_IMPLIB_PREFIX$OUTBINNAME$_IMPLIB_EXT" [$POSIX]
+ }
+
+ $PreLinkEvent [$WINDOWS]
+ {
+ $CommandLine "call $SRCDIR\vpc_scripts\valve_p4_edit.cmd $LIBPUBLIC\$(TargetName).lib $SRCDIR" "\n" \
+ "$BASE"
+ }
+
+ $PreLinkEvent [$X360]
+ {
+ // Run a pre-link event to clean the .def file from the last link
+ $CommandLine "if exist xbox\xbox.def del xbox\xbox.def" "\n" \
+ "$BASE"
+ }
+
+ $PostBuildEvent [$X360]
+ {
+ // Run a post build event to validate the .def file was correctly generated
+ $CommandLine "perl $SRCDIR\devtools\bin\make360def.pl -checkauto xbox\xbox.def" "\n" \
+ "if exist $(TargetDir)$(TargetName).lib copy $(TargetDir)$(TargetName).lib $SRCDIR\lib\public\$(TargetName).lib" "\n" \
+ "$BASE"
+ }
+
+ $General [$POSIX]
+ {
+ $GameOutputFile "$OUTBINDIR/$_IMPLIB_DLL_PREFIX$OUTBINNAME$_DLL_EXT"
+ }
+}
+
+
+
+$Project "vstdlib"
+{
+ $Folder "Source Files"
+ {
+ $File "xbox\___FirstModule.cpp" [$X360]
+ $File "GetStackPtr64.masm" [$WIN64]
+ {
+ $Configuration
+ {
+ $CustomBuildStep
+ {
+ // General
+ $CommandLine "$QUOTE$(VCInstallDir)bin\x86_amd64\ml64.exe$QUOTE /nologo /c /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
+ $Description "Compiling GetStackPtr64.masm"
+ $Outputs "$(IntDir)\$(InputName).obj"
+ }
+ }
+ }
+ $File "coroutine_win64.masm" [$WIN64]
+ {
+ $Configuration
+ {
+ $CustomBuildStep
+ {
+ // General
+ $CommandLine "$QUOTE$(VCInstallDir)bin\x86_amd64\ml64.exe$QUOTE /c /Fo$QUOTE$(IntDir)\$(InputName).obj$QUOTE $QUOTE$(InputPath)$QUOTE"
+ $Description "Compiling coroutine_win64.masm"
+ $Outputs "$(IntDir)\$(InputName).obj"
+ }
+ }
+ }
+
+ $File "coroutine.cpp" [!$X360 && !$OSXALL]
+ {
+ $Configuration
+ {
+ $Compiler
+ {
+ $BasicRuntimeChecks "Default"
+ }
+ }
+ }
+ $File "cvar.cpp"
+ $File "jobthread.cpp"
+ $File "KeyValuesSystem.cpp"
+ $File "osversion.cpp"
+ $File "processutils.cpp" [$WINDOWS]
+ $File "random.cpp"
+ $File "vcover.cpp"
+ }
+
+ $Folder "Public Header Files"
+ {
+ $File "$SRCDIR\public\vstdlib\cvar.h"
+ $File "$SRCDIR\public\vstdlib\coroutine.h"
+ $File "$SRCDIR\public\vstdlib\jobthread.h"
+ $File "$SRCDIR\public\vstdlib\IKeyValuesSystem.h"
+ $File "$SRCDIR\public\vstdlib\iprocessutils.h"
+ $File "$SRCDIR\public\tier1\mempool.h"
+ $File "$SRCDIR\public\vstdlib\osversion.h"
+ $File "$SRCDIR\public\vstdlib\random.h"
+ $File "$SRCDIR\public\vstdlib\vcover.h"
+ $File "$SRCDIR\public\vstdlib\vstdlib.h"
+ }
+
+ $Folder "Link Libraries"
+ {
+ -$ImpLib vstdlib
+ $Lib "coroutine_osx" [$OSXALL]
+ }
+}
+