Compiling for Universal Windows Platform

See also

This page describes how to compile UWP export template binaries from source. If you're looking to export your project to UWP instead, read Exporting for Universal Windows Platform.

Requirements

  • Python 3.6+. Make sure to enable the option to add Python to the ``PATH`` in the installer.

  • SCons 3.0+ build system. Using the latest release is recommended, especially for proper support of recent Visual Studio releases.

  • Windows 10 SDK (can be selected in Visual Studio installation).

  • ANGLE source. Use the ms_master (default) branch. Keep it in a path without spaces to avoid problems.

Note

The ANGLE repo by Microsoft has been discontinued and the ms_master branch has been cleared out.

As a temporary workaround however, it is still possible to download an older state of the source code via commit c61d048.

This page will eventually be updated in the future to reflect the new build instructions.

See also

To get the Godot source code for compiling, see Getting the source.

For a general overview of SCons usage for Godot, see Introduction to the buildsystem.

Compiling

You need to open a proper Visual Studio prompt for the target architecture you want to build. Check Compiling for Windows to see how these prompts work.

There are three target architectures for UWP: x86 (32-bits), x64 (64-bits) and ARM (32-bits). For the latter, you can run vcvarsall.bat with x86_arm or amd64_arm as argument to set the environment.

Set the ANGLE_SRC_PATH to the directory where you downloaded the ANGLE source code. The build process will also build ANGLE to produce the required DLLs for the selected architecture.

Once you're set, run the SCons command similarly to the other platforms:

C:\godot>scons platform=uwp

Creating UWP export templates

To export using the editor you need to properly build package the templates. You need all three architectures with debug and release templates to be able to export.

Open the command prompt for one architecture and run SCons twice (once for each target):

C:\godot>scons platform=uwp target=template_debug
C:\godot>scons platform=uwp target=template_release

Repeat for the other architectures.

In the end your bin folder will have the .exe binaries with a name like godot.uwp.opt.debug.32.x86.exe (with variations for each target/arch).

Copy one of these to misc/dist/uwp_template inside the Godot source folder and rename the binary to godot.uwp.exe. From the ANGLE source, under winrt/10/src/Release_%arch% (where %arch% can be Win32, x64 or ARM), get the libEGL.dll and the libGLESv2.dll, putting them along with the executable.

Add the files in the uwp_template folder to a ZIP. Rename the resulting Zip according to the target/architecture of the template:

uwp_x86_debug.zip
uwp_x86_release.zip
uwp_x64_debug.zip
uwp_x64_release.zip
uwp_arm_debug.zip
uwp_arm_release.zip

Move those templates to the [versionstring]\templates folder in Godot settings path, where versionstring is the version of Godot you have compiled the export templates for - e.g. 3.0.alpha for the alpha version of Godot 3. If you don't want to replace the templates, you can set the "Custom Package" property in the export window.

Running UWP apps with Visual Studio