Kelsidavis-WoWee/container
Kelsi 76d29ad669 fix: address PR #31 and #32 review findings
- Dockerfile: fix LLVM apt repo codename (jammy → noble) for ubuntu:24.04
- build-linux.sh: add missing mkdir -p /wowee-build-src before tar extraction
- Dockerfile: remove dead ENV OSXCROSS_VERSION=1.5 and its unset
- CMakeLists: scope -undefined dynamic_lookup to wowee target only
- GameServices: remove redundant game:: qualifier inside namespace game
- application.cpp: zero out gameServices_ after gameHandler reset in shutdown
2026-03-30 13:40:40 -07:00
..
macos fix cve 2026-03-30 21:15:41 +03:00
build-linux.sh fix: address PR #31 and #32 review findings 2026-03-30 13:40:40 -07:00
build-macos.sh feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
build-windows.sh feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
builder-linux.Dockerfile feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
builder-macos.Dockerfile fix: address PR #31 and #32 review findings 2026-03-30 13:40:40 -07:00
builder-windows.Dockerfile feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
FLOW.md feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
README.md feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-linux.ps1 feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-linux.sh feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-macos.ps1 feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-macos.sh feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-windows.ps1 feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00
run-windows.sh feat: add multi-platform Docker build system for Linux, macOS, and Windows 2026-03-30 20:17:41 +03:00

Container Builds

Build WoWee for Linux, macOS, or Windows with a single command.
All builds run inside Docker — no toolchains to install on your host.

Prerequisites

  • Docker (Docker Desktop on Windows/macOS, or Docker Engine on Linux)
  • ~20 GB free disk space (toolchains + vcpkg packages are cached in the Docker image)

Quick Start

Run from the project root directory.

Linux (native amd64)

# Bash / Linux / macOS terminal
./container/run-linux.sh
# PowerShell (Windows)
.\container\run-linux.ps1

Output: build/linux/bin/wowee

macOS (cross-compile, arm64 default)

./container/run-macos.sh
.\container\run-macos.ps1

Output: build/macos/bin/wowee

For Intel (x86_64):

MACOS_ARCH=x86_64 ./container/run-macos.sh
.\container\run-macos.ps1 -Arch x86_64

Windows (cross-compile, x86_64)

./container/run-windows.sh
.\container\run-windows.ps1

Output: build/windows/bin/wowee.exe

Options

Option Bash PowerShell Description
Rebuild image --rebuild-image -RebuildImage Force a fresh Docker image build
macOS arch MACOS_ARCH=x86_64 -Arch x86_64 Build for Intel instead of Apple Silicon
FidelityFX SDK repo WOWEE_FFX_SDK_REPO=<url> $env:WOWEE_FFX_SDK_REPO="<url>" Custom FidelityFX SDK git URL
FidelityFX SDK ref WOWEE_FFX_SDK_REF=<ref> $env:WOWEE_FFX_SDK_REF="<ref>" Custom FidelityFX SDK git ref/tag

Docker Image Caching

The first build takes longer because Docker builds the toolchain image (installing compilers, vcpkg packages, etc.). Subsequent builds reuse the cached image and only run the compilation step.

To force a full image rebuild:

./container/run-linux.sh --rebuild-image

Output Locations

Target Binary Size
Linux build/linux/bin/wowee ~135 MB
macOS build/macos/bin/wowee ~40 MB
Windows build/windows/bin/wowee.exe ~135 MB

File Structure

container/
├── run-linux.sh / .ps1          # Host launchers (bash / PowerShell)
├── run-macos.sh / .ps1
├── run-windows.sh / .ps1
├── build-linux.sh               # Container entrypoints (run inside Docker)
├── build-macos.sh
├── build-windows.sh
├── builder-linux.Dockerfile     # Docker image definitions
├── builder-macos.Dockerfile
├── builder-windows.Dockerfile
├── macos/
│   ├── sdk-fetcher.py           # Auto-fetches macOS SDK from Apple's catalog
│   ├── osxcross-toolchain.cmake # CMake toolchain for osxcross
│   └── triplets/                # vcpkg cross-compile triplets
│       ├── arm64-osx-cross.cmake
│       └── x64-osx-cross.cmake
├── README.md                    # This file
└── FLOW.md                      # Detailed build flow documentation

Troubleshooting

"docker is not installed or not in PATH"
Install Docker and ensure the docker command is available in your terminal.

Build fails on first run
Some vcpkg packages (ffmpeg, SDL2) take a while to compile. Ensure you have enough RAM (4 GB+) and disk space.

macOS build: "could not find osxcross compiler"
The Docker image may not have built correctly. Run with --rebuild-image to rebuild from scratch.

Windows build: linker errors about vulkan-1.dll
The build script auto-generates a Vulkan import library. If this fails, ensure the Docker image has libvulkan-dev installed (it should, by default).