5.2 KiB
TrinityCore Build Instructions
This document describes the persistent build solution for TrinityCore with Playerbot module.
Prerequisites
- Visual Studio 2022 Enterprise with C++ tooling
- CMake 3.24+
- Git
- vcpkg at
C:\libs\vcpkg - Boost libraries at
C:\libs\boost_1_88_0-bin-msvc-all-32-64
Build Configurations
We support four build configurations:
- Debug - Full debug symbols, no optimizations, for development
- Release - Full optimizations, no debug symbols, for production
- RelWithDebInfo - Optimized with debug symbols, for profiling/debugging production issues
- Test - Debug build with testing enabled
Build Process
Step 1: Configure
Run the appropriate configure script once or when CMake configuration needs to be regenerated:
# For Debug build
configure_debug.bat
# For Release build
configure_release.bat
# For RelWithDebInfo build
configure_relwithdebinfo.bat
# For Test build (with tests enabled)
configure_test.bat
What this does:
- Sets correct vcpkg path:
C:\libs\vcpkg - Sets Boost paths to the correct library directories
- Creates/cleans the
builddirectory - Runs CMake with the appropriate configuration
- Generates Visual Studio 2022 solution files
When to reconfigure:
- After pulling new code that changes CMakeLists.txt
- When switching between configurations
- When adding/removing build options
- When CMake cache becomes corrupted
Step 2: Build
After configuration, run the corresponding build script:
# For Debug build
build_debug.bat
# For Release build
build_release.bat
# For RelWithDebInfo build
build_relwithdebinfo.bat
# For Test build and run tests
build_test.bat
What this does:
- Verifies build directory and CMake cache exist
- Runs MSBuild with appropriate configuration
- Uses 2 CPU cores for parallel compilation
- Outputs minimal verbosity to reduce noise
- 30-minute timeout for large builds
Build Outputs
After successful build, binaries are located in:
- Debug:
build\bin\Debug\ - Release:
build\bin\Release\ - RelWithDebInfo:
build\bin\RelWithDebInfo\
Main executables:
worldserver.exe- Main game server with Playerbot modulebnetserver.exe- Authentication server
Switching Configurations
To switch from one configuration to another:
- Run the new configuration's configure script
- Example:
configure_release.bat
- Example:
- Run the new configuration's build script
- Example:
build_release.bat
- Example:
The configure script will clean the CMake cache, so you don't need to manually delete the build directory.
Troubleshooting
CMake Configuration Fails
Problem: vcpkg or Boost not found
Solution: Verify paths in configure scripts:
- vcpkg should be at
C:\libs\vcpkg - Boost should be at
C:\libs\boost_1_88_0-bin-msvc-all-32-64
Build Fails with Missing MSBuild
Problem: MSBuild.exe not found
Solution: Verify Visual Studio 2022 Enterprise installation path matches:
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe
Build Timeout
Problem: Build takes longer than 30 minutes
Solution: Increase timeout in build scripts by modifying the script header comment (informational only - actual timeout is system-dependent)
Incremental Build Issues
Problem: Strange build errors after code changes
Solution:
- Clean the solution: Run configure script again
- Delete
builddirectory entirely - Run configure script
- Run build script
Performance Tips
- Use Release for production/performance testing
- Use Debug for development and debugging
- Use RelWithDebInfo when you need performance with debugging capability
- Build scripts use
/m:2to limit parallel jobs to 2 cores (adjustable in build scripts)
Git Integration
These build scripts are designed to persist across git operations:
- Safe with
git pull,git merge,git rebase - Safe with
git checkout(switching branches) - Not tracked in git (should be .gitignore'd if needed)
- Stored at repository root for easy access
Build Customization
To customize builds, edit the respective configure script:
Example: Add custom CMake options
cmake .. -G "Visual Studio 17 2022" ^
-DCMAKE_BUILD_TYPE=Debug ^
-DBUILD_PLAYERBOT=1 ^
-DYOUR_CUSTOM_OPTION=ON ^
-DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake" ^
...
Example: Change MSBuild parallelism
In build scripts, change /m:2 to /m:4 for 4 cores:
%MSBUILD% TrinityCore.sln ^
/p:Configuration=Debug ^
/p:Platform=x64 ^
/m:4 ^
...
Quick Reference
| Task | Command |
|---|---|
| First-time Debug build | configure_debug.bat then build_debug.bat |
| Rebuild Debug | build_debug.bat |
| Switch to Release | configure_release.bat then build_release.bat |
| Run tests | configure_test.bat then build_test.bat |
| Clean rebuild | configure_*.bat then build_*.bat |
Notes
- Configure scripts will not delete your entire build directory, only CMakeCache.txt
- Build scripts include error checking and will stop on failure
- All scripts use
pauseat the end so you can see the results - Timeout is set to 30 minutes as specified in requirements