The purpose of this document is to:
Walk users through how to build TSWoW from source
Document important details and common issues
All further dependencies are automatically installed by tswow.
When building TSWoW from source, we are concerned about three directories:
The source
directory is the root directory containing all source code used to build TSWoW.
The build
directory contains all intermediate files and build configurations
The install
directory is where we install TSWoW
The source, build and install directories should all be separate. Do not place any of them inside any of the others. The recommended setup is to have a tswow-root
containing all three folders.
Run the following command (optionally in a new empty folder): git clone https://github.com/tswow/tswow.git --recurse
This will create the source
directory, called “tswow”.
This download is expected to take some time.
Copy source/build.default.conf
to source/build.conf
and open it. Here you can configure where tswow should place build
and install
directories.
install
to point at your normal TSWoW installation unless you know what you’re doing, it will frequently flush out all your settings and modules!In the source
directory, run the command npm i
In the source
directory, run the command npm run build-interactive
(to build everything without an interactive prompt, use npm run build
).
You should now have entered the main TSWoW build program. You can now build any components you want
All TypeScript for TSWoW and the transpiler is compiled automatically as long as the build program is running
We currently have a bug where the prompt doesn’t allow you to enter anything. Restarting the build script seems to fix this for now.
To get a fully working TSWoW installation, you can run the build full
command, which will compile TrinityCore and all other components necessary.
build trinitycore-relwithdebinfo
You should now be able to start TSWoW from the new installation folder.
This is an issue we’ve identified to happen when having both visual studio 2022 and visual studio 2019 installed alongside each others, despite all build scripts specifically selecting vs2022.
The only fix we’ve been able to identify is uninstalling visual studio 2019.
Causes symptoms like this:
npm ERR! gyp ERR! find VS msvs_version not set from command line or npm config
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Community"
npm ERR! gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
or this:
CMake Error:
Generator
Visual Studio 17 2022
could not find any instance of Visual studio.
The only way we’ve been able to fix these issues have been to:
tswow-build/TrinityCore
and restart build scriptbuild release
doesn’t work with a normal install
directory. To build a release, you must run turn off the build script, change the install directory to an empty/non-existing directory in source/build.conf
and start the build script again. - This new directory can not be open in VSCodium/VSCode.
Some users have reported getting issues when building TrinityCore that looks similar to this in the log:
CMake Error at CMakeLists.txt:18 (project):
Failed to run MSBuild command:
C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe
to get the value of VCTargetsPath:
Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 1/29/2022 3:09:38 PM.
Project "D:\WowDev\Tools\TSWoW\tswow-build\TrinityCore\CMakeFiles\3.18.3\VCTargetsPath.vcxproj" on node 1 (default targets).
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows S
DK version 10.0.19041.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking
the solution and selecting "Retarget solution". [D:\WowDev\Tools\TSWoW\tswow-build\TrinityCore\CMakeFiles\3.18.3\VCTargetsPath.vcxproj]
Done Building Project "D:\WowDev\Tools\TSWoW\tswow-build\TrinityCore\CMakeFiles\3.18.3\VCTargetsPath.vcxproj" (default targets) -- FAILED.
Build FAILED.
Note the windows sdk version that it requests (10.0.19041.0 in the above example). We managed to get this to work by editing the file C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\<windows-sdk-version>\UAP.props
(replacing <windows-sdk-version>
with the version from your error log) and commenting out the line starting with <WindowsSdkDir>
:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Force WindowsSdkDir to always be a parent to this props file -->
<!-- <WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))</WindowsSdkDir> -->
...
</PropertyGroup>