diff options
Diffstat (limited to 'vstdlib/vstdlib.vpc')
| -rw-r--r-- | vstdlib/vstdlib.vpc | 157 |
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] + } +} + |