minetest/doc/compiling/windows.md

70 lines
2.7 KiB
Markdown
Raw Normal View History

# Compiling on Windows using MSVC
## Requirements
2024-01-18 02:25:26 +01:00
* [Visual Studio 2015 or newer](https://visualstudio.microsoft.com)
* [CMake](https://cmake.org/download/)
* [vcpkg](https://github.com/Microsoft/vcpkg)
* [Git](https://git-scm.com/downloads)
2024-01-18 02:25:26 +01:00
## Compiling and Installing the Dependencies
It is highly recommended to use vcpkg as package manager.
After you successfully built vcpkg you can easily install the required libraries:
2024-01-18 02:25:26 +01:00
```powershell
2024-02-24 00:01:10 +01:00
vcpkg install zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo sqlite3 freetype luajit gmp jsoncpp gettext sdl2 --triplet x64-windows
```
2024-01-18 02:25:26 +01:00
* `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
* `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
* `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
* `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled.
There are other optional libraries, but they are not tested if they can build and link correctly.
Use `--triplet` to specify the target triplet, e.g. `x64-windows` or `x86-windows`.
## Compile Minetest
### a) Using the `vcpkg` toolchain and CMake GUI
1. Start up the CMake GUI
2. Select **Browse Source...** and select DIR/minetest
3. Select **Browse Build...** and select DIR/minetest-build
4. Select **Configure**
5. Choose the right visual Studio version and target platform. It has to match the version of the installed dependencies
6. Choose **Specify toolchain file for cross-compiling**
7. Click **Next**
8. Select the vcpkg toolchain file e.g. `D:/vcpkg/scripts/buildsystems/vcpkg.cmake`
9. Click Finish
10. Wait until cmake have generated the cash file
11. If there are any errors, solve them and hit **Configure**
12. Click **Generate**
13. Click **Open Project**
14. Compile Minetest inside Visual studio.
### b) Using the `vcpkg` Toolchain and the Command Line
Run the following script in PowerShell:
```powershell
cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF
cmake --build . --config Release
```
2024-01-18 02:25:26 +01:00
Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct.
## Windows Installer using WiX Toolset
Requirements:
* [Visual Studio 2017](https://visualstudio.microsoft.com/)
* [WiX Toolset](https://wixtoolset.org/)
In the Visual Studio 2017 Installer select **Optional Features -> WiX Toolset**.
Build the binaries as described above, but make sure you unselect `RUN_IN_PLACE`.
Open the generated project file with Visual Studio. Right-click **Package** and choose **Generate**.
2024-01-18 02:25:26 +01:00
It may take some minutes to generate the installer.