openvibers/source.openvibe.games Commits
Build Win32 public client static libs
Changes
nnew file mode 100644@@@ -0,0 +1,24 @@++# Windows Win32 public client libs fix++++The Proton-compatible Source SDK Base 2013 path needs 32-bit PE32 DLLs. After converting VPC's generated win64 project metadata to Win32, the HL2MP client link began looking in `src/lib/public` instead of `src/lib/public/x64`.++++The previous fix added `bitmap.lib`; the next missing public lib was `choreoobjects.lib`.++++This patch expands the Windows dependency build list to cover common Source SDK public static libraries used by the client:++++- `bitmap.lib`++- `choreoobjects.lib`++- `tier1.lib`++- `tier2.lib`++- `mathlib.lib`++- `raytrace.lib`++- `dmxloader.lib`++- `dmserializers.lib`++- `datamodel.lib`++- `particles.lib`++- `appframework.lib`++- `vgui_controls.lib`++- `vgui_surfacelib.lib`++- `matsys_controls.lib`++++It also audits `src/lib/public` before the client link so the next missing library is obvious from diagnostics.@@@ -565,10 +565,19 @@ function Copy-LibIfNeeded([string]$libName, [string]$destDir) {function Build-SourceSdkDependencyProjects {Say "building Source SDK dependency libraries before HL2MP client/server"++ # OPENVIBE_WIN32_PUBLIC_CLIENT_LIB_DEPS$patterns = @("tier1*.vcxproj","mathlib*.vcxproj","bitmap*.vcxproj",++ "choreoobjects*.vcxproj",++ "tier2*.vcxproj",++ "dmxloader*.vcxproj",++ "dmserializers*.vcxproj",++ "datamodel*.vcxproj",++ "particles*.vcxproj",++ "appframework*.vcxproj",++ "vgui_surfacelib*.vcxproj","raytrace*.vcxproj","vgui_controls*.vcxproj","matsys_controls*.vcxproj",@@@ -591,7 +600,25 @@ function Build-SourceSdkDependencyProjects {$publicLibDir = if ($script:OpenVibeTargetArch -eq "x86") { Join-Path $Src "lib/public" } else { Join-Path $Src "lib/public/x64" }Copy-LibIfNeeded "mathlib.lib" $publicLibDir-- Copy-LibIfNeeded "bitmap.lib" $publicLibDir++ # OPENVIBE_WIN32_COPY_PUBLIC_CLIENT_LIBS++ foreach ($lib in @(++ "tier1.lib",++ "tier2.lib",++ "mathlib.lib",++ "raytrace.lib",++ "bitmap.lib",++ "choreoobjects.lib",++ "dmxloader.lib",++ "dmserializers.lib",++ "datamodel.lib",++ "particles.lib",++ "appframework.lib",++ "vgui_controls.lib",++ "vgui_surfacelib.lib",++ "matsys_controls.lib"++ )) {++ Copy-LibIfNeeded $lib $publicLibDir++ }Copy-LibIfNeeded "tier1.lib" $publicLibDirCopy-LibIfNeeded "raytrace.lib" $publicLibDirCopy-LibIfNeeded "vgui_controls.lib" $publicLibDir@@@ -671,6 +698,21 @@ Patch-GeneratedPythonCustomBuildCommandsEnsure-ServerNutHeadersBuild-SourceSdkDependencyProjects++# OPENVIBE_WIN32_PRE_CLIENT_LINK_LIB_AUDIT++$publicLibDirAudit = if ($script:OpenVibeTargetArch -eq "x86") { Join-Path $Src "lib/public" } else { Join-Path $Src "lib/public/x64" }++"=== public lib dir before client link ===" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt")++"target arch=$script:OpenVibeTargetArch" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append++"dir=$publicLibDirAudit" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append++foreach ($lib in @("bitmap.lib","choreoobjects.lib","tier1.lib","tier2.lib","mathlib.lib","raytrace.lib","dmxloader.lib","dmserializers.lib","datamodel.lib","particles.lib","appframework.lib","vgui_controls.lib","vgui_surfacelib.lib","matsys_controls.lib")) {++ $lp = Join-Path $publicLibDirAudit $lib++ if (Test-Path $lp) {++ $item = Get-Item $lp++ "[ok] $lib $($item.Length) $($item.LastWriteTime)" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append++ } else {++ "[miss] $lib" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append++ }++}++$beforeBuild = Get-Dateif (-not (Invoke-MSBuildProject $clientProject "client")) {
new file mode 100644
new file mode 100644
@@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
+# Windows Win32 public client libs fix
+
+The Proton-compatible Source SDK Base 2013 path needs 32-bit PE32 DLLs. After converting VPC's generated win64 project metadata to Win32, the HL2MP client link began looking in `src/lib/public` instead of `src/lib/public/x64`.
+
+The previous fix added `bitmap.lib`; the next missing public lib was `choreoobjects.lib`.
+
+This patch expands the Windows dependency build list to cover common Source SDK public static libraries used by the client:
+
+- `bitmap.lib`
+- `choreoobjects.lib`
+- `tier1.lib`
+- `tier2.lib`
+- `mathlib.lib`
+- `raytrace.lib`
+- `dmxloader.lib`
+- `dmserializers.lib`
+- `datamodel.lib`
+- `particles.lib`
+- `appframework.lib`
+- `vgui_controls.lib`
+- `vgui_surfacelib.lib`
+- `matsys_controls.lib`
+
+It also audits `src/lib/public` before the client link so the next missing library is obvious from diagnostics.
@@ -565,10 +565,19 @@ function Copy-LibIfNeeded([string]$libName, [string]$destDir) {
@@ -565,10 +565,19 @@ function Copy-LibIfNeeded([string]$libName, [string]$destDir) {
function Build-SourceSdkDependencyProjects {
function Build-SourceSdkDependencyProjects {
Say "building Source SDK dependency libraries before HL2MP client/server"
Say "building Source SDK dependency libraries before HL2MP client/server"
+ # OPENVIBE_WIN32_PUBLIC_CLIENT_LIB_DEPS
$patterns = @(
$patterns = @(
"tier1*.vcxproj",
"tier1*.vcxproj",
"mathlib*.vcxproj",
"mathlib*.vcxproj",
"bitmap*.vcxproj",
"bitmap*.vcxproj",
+ "choreoobjects*.vcxproj",
+ "tier2*.vcxproj",
+ "dmxloader*.vcxproj",
+ "dmserializers*.vcxproj",
+ "datamodel*.vcxproj",
+ "particles*.vcxproj",
+ "appframework*.vcxproj",
+ "vgui_surfacelib*.vcxproj",
"raytrace*.vcxproj",
"raytrace*.vcxproj",
"vgui_controls*.vcxproj",
"vgui_controls*.vcxproj",
"matsys_controls*.vcxproj",
"matsys_controls*.vcxproj",
@@ -591,7 +600,25 @@ function Build-SourceSdkDependencyProjects {
@@ -591,7 +600,25 @@ function Build-SourceSdkDependencyProjects {
$publicLibDir = if ($script:OpenVibeTargetArch -eq "x86") { Join-Path $Src "lib/public" } else { Join-Path $Src "lib/public/x64" }
$publicLibDir = if ($script:OpenVibeTargetArch -eq "x86") { Join-Path $Src "lib/public" } else { Join-Path $Src "lib/public/x64" }
Copy-LibIfNeeded "mathlib.lib" $publicLibDir
Copy-LibIfNeeded "mathlib.lib" $publicLibDir
- Copy-LibIfNeeded "bitmap.lib" $publicLibDir
+ # OPENVIBE_WIN32_COPY_PUBLIC_CLIENT_LIBS
+ foreach ($lib in @(
+ "tier1.lib",
+ "tier2.lib",
+ "mathlib.lib",
+ "raytrace.lib",
+ "bitmap.lib",
+ "choreoobjects.lib",
+ "dmxloader.lib",
+ "dmserializers.lib",
+ "datamodel.lib",
+ "particles.lib",
+ "appframework.lib",
+ "vgui_controls.lib",
+ "vgui_surfacelib.lib",
+ "matsys_controls.lib"
+ )) {
+ Copy-LibIfNeeded $lib $publicLibDir
+ }
Copy-LibIfNeeded "tier1.lib" $publicLibDir
Copy-LibIfNeeded "tier1.lib" $publicLibDir
Copy-LibIfNeeded "raytrace.lib" $publicLibDir
Copy-LibIfNeeded "raytrace.lib" $publicLibDir
Copy-LibIfNeeded "vgui_controls.lib" $publicLibDir
Copy-LibIfNeeded "vgui_controls.lib" $publicLibDir
@@ -671,6 +698,21 @@ Patch-GeneratedPythonCustomBuildCommands
@@ -671,6 +698,21 @@ Patch-GeneratedPythonCustomBuildCommands
Ensure-ServerNutHeaders
Ensure-ServerNutHeaders
Build-SourceSdkDependencyProjects
Build-SourceSdkDependencyProjects
+# OPENVIBE_WIN32_PRE_CLIENT_LINK_LIB_AUDIT
+$publicLibDirAudit = if ($script:OpenVibeTargetArch -eq "x86") { Join-Path $Src "lib/public" } else { Join-Path $Src "lib/public/x64" }
+"=== public lib dir before client link ===" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt")
+"target arch=$script:OpenVibeTargetArch" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append
+"dir=$publicLibDirAudit" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append
+foreach ($lib in @("bitmap.lib","choreoobjects.lib","tier1.lib","tier2.lib","mathlib.lib","raytrace.lib","dmxloader.lib","dmserializers.lib","datamodel.lib","particles.lib","appframework.lib","vgui_controls.lib","vgui_surfacelib.lib","matsys_controls.lib")) {
+ $lp = Join-Path $publicLibDirAudit $lib
+ if (Test-Path $lp) {
+ $item = Get-Item $lp
+ "[ok] $lib $($item.Length) $($item.LastWriteTime)" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append
+ } else {
+ "[miss] $lib" | Out-File (Join-Path $LogDir "public-libs-before-client-link.txt") -Append
+ }
+}
+
$beforeBuild = Get-Date
$beforeBuild = Get-Date
if (-not (Invoke-MSBuildProject $clientProject "client")) {
if (-not (Invoke-MSBuildProject $clientProject "client")) {