2026-02-22 05:09:16 -08:00
|
|
|
# WoWee Build Instructions
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
This document provides platform-specific build instructions for WoWee.
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
---
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
## 🐧 Linux (Ubuntu / Debian)
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Install Dependencies
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-11 15:28:50 -08:00
|
|
|
```bash
|
2026-02-22 05:09:16 -08:00
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install -y build-essential cmake pkg-config git libsdl2-dev libglew-dev libglm-dev libssl-dev zlib1g-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libunicorn-dev libstorm-dev
|
2026-02-07 10:56:55 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
---
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
## 🐧 Linux (Arch)
|
2026-02-07 10:56:55 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Install Dependencies
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-07 10:56:55 -08:00
|
|
|
```bash
|
2026-02-22 05:09:16 -08:00
|
|
|
sudo pacman -S --needed base-devel cmake pkgconf git sdl2 glew glm openssl zlib ffmpeg unicorn stormlib
|
2026-02-11 15:28:50 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
---
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
## 🐧 Linux (All Distros)
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Clone Repository
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
Always clone with submodules:
|
2026-02-14 18:05:37 -08:00
|
|
|
|
|
|
|
|
```bash
|
2026-02-22 05:09:16 -08:00
|
|
|
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
|
|
|
|
|
cd WoWee
|
2026-02-14 18:05:37 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
If you already cloned without submodules:
|
2026-02-14 18:05:37 -08:00
|
|
|
|
|
|
|
|
```bash
|
2026-02-22 05:09:16 -08:00
|
|
|
git submodule update --init --recursive
|
2026-02-07 10:56:55 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Build
|
2026-02-11 15:28:50 -08:00
|
|
|
|
|
|
|
|
```bash
|
2026-02-22 05:09:16 -08:00
|
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
|
|
|
cmake --build build -j"$(nproc)"
|
2026-02-07 10:56:55 -08:00
|
|
|
```
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
### Asset Extraction (Linux)
|
|
|
|
|
|
|
|
|
|
After building, extract assets from your WoW client:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./extract_assets.sh /path/to/WoW/Data wotlk
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Supports `classic`, `tbc`, `wotlk` targets (auto-detected if omitted).
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🍎 macOS
|
|
|
|
|
|
|
|
|
|
### Install Dependencies
|
|
|
|
|
|
2026-02-23 18:35:53 -08:00
|
|
|
Vulkan on macOS is provided via MoltenVK (a Vulkan-to-Metal translation layer),
|
|
|
|
|
which is included in the `vulkan-loader` Homebrew package.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
brew install cmake pkg-config sdl2 glew glm openssl@3 zlib ffmpeg unicorn \
|
|
|
|
|
stormlib vulkan-loader vulkan-headers shaderc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Optional (for creating redistributable `.app` bundles):
|
|
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
```bash
|
2026-02-23 18:35:53 -08:00
|
|
|
brew install dylibbundler
|
2026-02-23 18:32:47 -08:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Clone & Build
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
|
|
|
|
|
cd WoWee
|
|
|
|
|
|
|
|
|
|
BREW=$(brew --prefix)
|
2026-02-23 18:35:53 -08:00
|
|
|
export PKG_CONFIG_PATH="$BREW/lib/pkgconfig:$(brew --prefix ffmpeg)/lib/pkgconfig:$(brew --prefix openssl@3)/lib/pkgconfig:$(brew --prefix vulkan-loader)/lib/pkgconfig:$(brew --prefix shaderc)/lib/pkgconfig"
|
2026-02-23 18:32:47 -08:00
|
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
|
|
|
|
|
-DCMAKE_PREFIX_PATH="$BREW" \
|
|
|
|
|
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
|
|
|
|
|
cmake --build build -j"$(sysctl -n hw.logicalcpu)"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Asset Extraction (macOS)
|
|
|
|
|
|
2026-02-23 18:40:26 -08:00
|
|
|
The script will auto-build `asset_extract` if needed (requires `stormlib`).
|
|
|
|
|
It automatically detects Homebrew and passes the correct paths to CMake.
|
|
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
```bash
|
|
|
|
|
./extract_assets.sh /path/to/WoW/Data wotlk
|
|
|
|
|
```
|
|
|
|
|
|
2026-02-23 18:40:26 -08:00
|
|
|
Supports `classic`, `tbc`, `wotlk` targets (auto-detected if omitted).
|
|
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🪟 Windows (MSYS2 — Recommended)
|
|
|
|
|
|
|
|
|
|
MSYS2 provides all dependencies as pre-built packages.
|
|
|
|
|
|
|
|
|
|
### Install MSYS2
|
|
|
|
|
|
|
|
|
|
Download and install from <https://www.msys2.org/>, then open a **MINGW64** shell.
|
|
|
|
|
|
|
|
|
|
### Install Dependencies
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
pacman -S --needed \
|
|
|
|
|
mingw-w64-x86_64-cmake \
|
|
|
|
|
mingw-w64-x86_64-gcc \
|
|
|
|
|
mingw-w64-x86_64-ninja \
|
|
|
|
|
mingw-w64-x86_64-pkgconf \
|
|
|
|
|
mingw-w64-x86_64-SDL2 \
|
|
|
|
|
mingw-w64-x86_64-glew \
|
|
|
|
|
mingw-w64-x86_64-glm \
|
|
|
|
|
mingw-w64-x86_64-openssl \
|
|
|
|
|
mingw-w64-x86_64-zlib \
|
|
|
|
|
mingw-w64-x86_64-ffmpeg \
|
|
|
|
|
mingw-w64-x86_64-unicorn \
|
|
|
|
|
mingw-w64-x86_64-vulkan-loader \
|
|
|
|
|
mingw-w64-x86_64-vulkan-headers \
|
|
|
|
|
mingw-w64-x86_64-shaderc \
|
|
|
|
|
mingw-w64-x86_64-stormlib \
|
|
|
|
|
git
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Clone & Build
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
|
|
|
|
|
cd WoWee
|
|
|
|
|
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
|
|
|
cmake --build build --parallel $(nproc)
|
|
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
---
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
## 🪟 Windows (Visual Studio 2022)
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
For users who prefer Visual Studio over MSYS2.
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Install
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
- Visual Studio 2022 with **Desktop development with C++** workload
|
|
|
|
|
- CMake tools for Windows (included in VS workload)
|
|
|
|
|
- [LunarG Vulkan SDK](https://vulkan.lunarg.com/) (provides Vulkan headers, loader, and glslc)
|
|
|
|
|
|
|
|
|
|
### vcpkg Dependencies
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
vcpkg install sdl2 glew glm openssl zlib ffmpeg stormlib --triplet x64-windows
|
|
|
|
|
```
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Clone
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
```powershell
|
|
|
|
|
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
|
|
|
|
|
cd WoWee
|
2026-02-07 10:56:55 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
### Build
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
Open the folder in Visual Studio (it will detect CMake automatically)
|
2026-02-22 05:09:16 -08:00
|
|
|
or build from Developer PowerShell:
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
```powershell
|
2026-02-23 18:32:47 -08:00
|
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="[vcpkg root]/scripts/buildsystems/vcpkg.cmake"
|
2026-02-22 05:09:16 -08:00
|
|
|
cmake --build build --config Release
|
2026-02-07 10:56:55 -08:00
|
|
|
```
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
---
|
2026-02-11 15:28:50 -08:00
|
|
|
|
2026-02-23 18:32:47 -08:00
|
|
|
## 🪟 Asset Extraction (Windows)
|
|
|
|
|
|
|
|
|
|
After building (via either MSYS2 or Visual Studio), extract assets from your WoW client:
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
.\extract_assets.ps1 "C:\Games\WoW-3.3.5a\Data"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Or double-click `extract_assets.bat` and provide the path when prompted.
|
|
|
|
|
You can also specify an expansion: `.\extract_assets.ps1 "C:\Games\WoW\Data" wotlk`
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-02-22 05:09:16 -08:00
|
|
|
## ⚠️ Notes
|
|
|
|
|
|
|
|
|
|
- Case matters on Linux (`WoWee` not `wowee`).
|
|
|
|
|
- Always use `--recurse-submodules` when cloning.
|
|
|
|
|
- If you encounter missing headers for ImGui, run:
|
|
|
|
|
```bash
|
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
```
|