Fix Windows build process and add Windows asset extraction scripts

- Add missing MSYS2 packages to CI: vulkan-loader, vulkan-headers,
  shaderc, stormlib (both x86-64 and arm64), unicorn (arm64)
- Make vulkan-1.dll copy conditional via find_file (fixes MSYS2 builds)
- Use find_library for wininet/bz2 in asset_extract (graceful fallback)
- Add extract_assets.ps1 and extract_assets.bat for Windows users
- Expand BUILD_INSTRUCTIONS.md with MSYS2, vcpkg, and macOS sections
- Update README.md to reference Windows scripts and platforms
This commit is contained in:
Kelsi 2026-02-23 18:32:47 -08:00
parent 06979e5c5c
commit eb549a9b7a
7 changed files with 269 additions and 17 deletions

View file

@ -49,15 +49,104 @@ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j"$(nproc)"
```
### 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
```bash
brew install cmake pkg-config sdl2 glew glm openssl@3 zlib ffmpeg unicorn stormlib
```
### Clone & Build
```bash
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"
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)
```bash
./extract_assets.sh /path/to/WoW/Data wotlk
```
---
## 🪟 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)
```
---
## 🪟 Windows (Visual Studio 2022)
For users who prefer Visual Studio over MSYS2.
### Install
- Visual Studio 2022
- Desktop development with C++
- CMake tools for Windows
- 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
```
### Clone
@ -68,16 +157,29 @@ cd WoWee
### Build
Open the folder in Visual Studio (it will detect CMake automatically)
Open the folder in Visual Studio (it will detect CMake automatically)
or build from Developer PowerShell:
```powershell
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
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:
```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`
---
## ⚠️ Notes
- Case matters on Linux (`WoWee` not `wowee`).