Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ Requirements:
Visual Studio 2017 `v141` toolset available
- MSBuild on `PATH`
- CMake on `PATH` for the repo-managed codec bootstrap
- Repo-managed third-party codec sources under `src/libs/_deps/`
The Windows projects now bootstrap `libogg`, `libvorbis`, `zlib`, and
`libpng` from that tree instead of probing system SDK or Vcpkg installs.
- Git on `PATH` so repo-managed codec source mirrors can be cloned into
`src/libs/_deps/` when missing
The Windows projects bootstrap `libogg`, `libvorbis`, `zlib`, and `libpng`
from that cache instead of probing system SDK or Vcpkg installs.

Build the recovered native gameplay modules and helper executable with the
retail-default toolset:
Expand Down
9 changes: 4 additions & 5 deletions docs/build/windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,10 @@ repo-managed `libogg`, `libvorbis`, `zlib`, and `libpng` trees through
`tools/build_internal_deps.ps1`, staging the resulting headers and import
libraries under `src/libs/vorbis/` and `src/libs/libpng/`.

That bootstrap expects the corresponding source trees to exist under
`src/libs/_deps/` and expects `cmake` to be available on `PATH`. Once those
repo-managed sources are present, solution or project builds can invoke MSBuild
directly and the codec prerequisites will be prepared automatically before the
normal validation steps run.
That bootstrap expects `cmake` and `git` on `PATH`. Missing dependency sources
under `src/libs/_deps/` are cloned automatically into that cache before MSBuild
continues, so solution or project builds can prepare codec prerequisites
without a manual pre-sync step.

These staged codec trees are still build-time conveniences, not part of the
retail runtime surface: the Steam install does not ship `vorbisfile.dll`,
Expand Down
4 changes: 4 additions & 0 deletions tests/test_renderer_font_build_lane_parity.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ def test_renderer_build_lane_uses_repo_managed_dependencies() -> None:
assert "Ensure-Vorbis" in internal_deps_script
assert "Ensure-Png" in internal_deps_script
assert "Ensure-FreeType" in internal_deps_script
assert "Ensure-GitDependencySource -Name 'libogg'" in internal_deps_script
assert "Ensure-GitDependencySource -Name 'libvorbis'" in internal_deps_script
assert "Ensure-GitDependencySource -Name 'zlib'" in internal_deps_script
assert "Ensure-GitDependencySource -Name 'libpng'" in internal_deps_script

assert "QL_ENABLE_FREETYPE ?= 0" in unix_makefile
assert "pkg-config --cflags freetype2" in unix_makefile
Expand Down
26 changes: 21 additions & 5 deletions tools/build_internal_deps.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ function Get-GitPath {
}
}

throw 'git was not found on PATH. Install Git to bootstrap the repo-managed FreeType source cache.'
throw 'git was not found on PATH. Install Git to bootstrap the repo-managed dependency source cache.'
}

function Get-VswherePath {
Expand Down Expand Up @@ -382,11 +382,19 @@ function Ensure-Vorbis {

$oggSourceDir = Join-Path $depsRoot 'libogg'
$vorbisSourceDir = Join-Path $depsRoot 'libvorbis'
Ensure-DependencySources -Name 'libogg' -RequiredPaths @(
Ensure-GitDependencySource -Name 'libogg' `
-SourceDir $oggSourceDir `
-RepositoryUrl 'https://github.com/xiph/ogg.git' `
-Tag 'v1.3.5' `
-RequiredPaths @(
(Join-Path $oggSourceDir 'CMakeLists.txt'),
(Join-Path $oggSourceDir 'include\ogg\ogg.h')
)
Ensure-DependencySources -Name 'libvorbis' -RequiredPaths @(
Ensure-GitDependencySource -Name 'libvorbis' `
-SourceDir $vorbisSourceDir `
-RepositoryUrl 'https://github.com/xiph/vorbis.git' `
-Tag 'v1.3.7' `
-RequiredPaths @(
(Join-Path $vorbisSourceDir 'CMakeLists.txt'),
(Join-Path $vorbisSourceDir 'lib\CMakeLists.txt')
)
Expand Down Expand Up @@ -458,11 +466,19 @@ function Ensure-Png {

$zlibSourceDir = Join-Path $depsRoot 'zlib'
$pngSourceDir = Join-Path $depsRoot 'libpng'
Ensure-DependencySources -Name 'zlib' -RequiredPaths @(
Ensure-GitDependencySource -Name 'zlib' `
-SourceDir $zlibSourceDir `
-RepositoryUrl 'https://github.com/madler/zlib.git' `
-Tag 'v1.3.1' `
-RequiredPaths @(
(Join-Path $zlibSourceDir 'CMakeLists.txt'),
(Join-Path $zlibSourceDir 'zlib.h')
)
Ensure-DependencySources -Name 'libpng' -RequiredPaths @(
Ensure-GitDependencySource -Name 'libpng' `
-SourceDir $pngSourceDir `
-RepositoryUrl 'https://github.com/glennrp/libpng.git' `
-Tag 'v1.6.43' `
-RequiredPaths @(
(Join-Path $pngSourceDir 'CMakeLists.txt'),
(Join-Path $pngSourceDir 'png.h')
)
Expand Down
Loading