[client] windows: add native clang-cl build

Build the Windows client against the MSVC ABI while retaining clang
language support. Use vcpkg for ANGLE and libsamplerate, and build
MsQuic with its bundled static OpenSSL.
This commit is contained in:
Geoffrey McRae
2026-10-02 18:52:45 +10:00
parent c456596bd7
commit 57f18d7e80
33 changed files with 583 additions and 205 deletions

View File

@@ -0,0 +1,44 @@
.. _build_client_windows:
Build the Windows client
########################
The Windows client uses ``clang-cl`` and the MSVC ABI. ANGLE continues to
provide EGL and OpenGL ES, while MsQuic and its bundled OpenSSL are linked
statically.
Requirements
------------
Install the following tools:
- Visual Studio 2022 Build Tools with the Desktop development with C++
workload, Clang tools for Windows, and a Windows SDK
- CMake 3.21 or newer
- Ninja
- Git
- Perl
- NASM
- vcpkg
Set ``VCPKG_ROOT`` to the vcpkg checkout. The client manifest installs native
MSVC-ABI builds of ANGLE and libsamplerate automatically.
Building
--------
Open an x64 Native Tools command prompt or Developer PowerShell, then run:
.. code:: powershell
git submodule update --init --recursive
cd client
cmake --preset windows-clangcl
cmake --build --preset windows-clangcl-release
The executable is written beneath ``client/build/windows-clangcl``. The
vcpkg toolchain copies the required ANGLE and libsamplerate runtime DLLs
beside it.
The native build deliberately does not consume MinGW ``.a`` or ``.dll.a``
libraries. All statically linked code must use the MSVC ABI.

View File

@@ -13,6 +13,7 @@ memory for frames, and a native Linux client for display and input.
quickstart
build
build_client_windows
install
usage

View File

@@ -1,3 +1,5 @@
ABI
ANGLE
Anime4K
backend
backends
@@ -9,6 +11,7 @@ cadence
cgroups
checkboxes
clang
clang-cl
cmake
codec
compositor
@@ -53,6 +56,7 @@ lexically
libdecor
libpipewire
libpulse
libsamplerate
libvirt
linux
LookingGlass
@@ -65,9 +69,12 @@ mingw
mipmapping
modprobe
mpv
MsQuic
MSVC
msys
multisampling
namespace
NASM
Navi
NvFBC
Nvidia
@@ -123,6 +130,7 @@ upscaled
upscaler
upscales
upscaling
vcpkg
viewport
virt
VirtIO