- extract_assets.sh: detect Homebrew and pass CMAKE_PREFIX_PATH, OPENSSL_ROOT_DIR, and PKG_CONFIG_PATH when auto-building on macOS (bare cmake couldn't find Homebrew deps) - README.md: fix macOS brew command that had comments after line continuations (breaks shell execution) - BUILD_INSTRUCTIONS.md: expand macOS asset extraction section with auto-build note and expansion targets
4.7 KiB
WoWee Build Instructions
This document provides platform-specific build instructions for WoWee.
🐧 Linux (Ubuntu / Debian)
Install Dependencies
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
🐧 Linux (Arch)
Install Dependencies
sudo pacman -S --needed base-devel cmake pkgconf git sdl2 glew glm openssl zlib ffmpeg unicorn stormlib
🐧 Linux (All Distros)
Clone Repository
Always clone with submodules:
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
cd WoWee
If you already cloned without submodules:
git submodule update --init --recursive
Build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j"$(nproc)"
Asset Extraction (Linux)
After building, extract assets from your WoW client:
./extract_assets.sh /path/to/WoW/Data wotlk
Supports classic, tbc, wotlk targets (auto-detected if omitted).
🍎 macOS
Install Dependencies
Vulkan on macOS is provided via MoltenVK (a Vulkan-to-Metal translation layer),
which is included in the vulkan-loader Homebrew package.
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):
brew install dylibbundler
Clone & Build
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
cd WoWee
BREW=$(brew --prefix)
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"
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)
The script will auto-build asset_extract if needed (requires stormlib).
It automatically detects Homebrew and passes the correct paths to CMake.
./extract_assets.sh /path/to/WoW/Data wotlk
Supports classic, tbc, wotlk targets (auto-detected if omitted).
🪟 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
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
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)
🪟 Windows (Visual Studio 2022)
For users who prefer Visual Studio over MSYS2.
Install
- Visual Studio 2022 with Desktop development with C++ workload
- CMake tools for Windows (included in VS workload)
- LunarG Vulkan SDK (provides Vulkan headers, loader, and glslc)
vcpkg Dependencies
vcpkg install sdl2 glew glm openssl zlib ffmpeg stormlib --triplet x64-windows
Clone
git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git
cd WoWee
Build
Open the folder in Visual Studio (it will detect CMake automatically) or build from Developer PowerShell:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="[vcpkg root]/scripts/buildsystems/vcpkg.cmake"
cmake --build build --config Release
🪟 Asset Extraction (Windows)
After building (via either MSYS2 or Visual Studio), extract assets from your WoW client:
.\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
⚠️ Notes
- Case matters on Linux (
WoWeenotwowee). - Always use
--recurse-submoduleswhen cloning. - If you encounter missing headers for ImGui, run:
git submodule update --init --recursive