AcademySoftwareFoundation / AcademySoftwareFoundation/xstudio

Windows: no build automation, and the dev shell can select an MSVC toolset without ATL

Open
#329 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
773
Forks
129
Avg merge
9d 1m
Merged PRs (30d)
10

Description

Building xSTUDIO on Windows is a long manual sequence (docs/reference/build_guides/windows.md), and a few environment details that the guide cannot reasonably cover cost a lot of time when they go wrong, because they only surface deep into a multi-hour build.

The one that seems worth fixing regardless of any script:

Enter-VsDevShell and vcpkg can select different MSVC toolsets. The developer shell honours VC/Auxiliary/Build/Microsoft.VCToolsVersion.v143.default.txt, while vcpkg picks up Microsoft.VCToolsVersion.default.txt. On a machine where these differ, the vcpkg dependencies and xSTUDIO itself are compiled with different toolsets.

On my machine (VS 2022 Community, three toolsets installed) the guide as written produced:

  • dependencies built with 14.42.34433
  • xSTUDIO built with 14.40.33807

and, because only 14.42 shipped atlmfc, the build failed roughly 50 minutes in:

E:\...\src\audio\src\windows_audio_output_device.cpp(4): fatal error C1083:
Cannot open include file: 'atlbase.h': No such file or directory

The ATL component was installed — just not for the toolset the dev shell selected. Following the guide exactly, there is nothing to indicate this.

Two smaller ones:

  • After Enter-VsDevShell, cmake and ninja are not actually on PATH (the guide states they will be). Resolution falls through to whatever else is installed; on my machine ninja resolved to Strawberry Perl's copy, in a directory that also contains a MinGW gcc/ar.
  • code.videolan.org now serves an anti-bot challenge page to command-line downloads, so vcpkg's x264 fetch fails its SHA512 check. It has to be fetched once in a browser into the vcpkg downloads directory.

I have a PowerShell script that automates the guide end to end and handles the above; happy to submit it if that is useful.

Environment: Windows 10 Pro 22H2, VS 2022 Community (MSVC 14.42.34433), Qt 6.5.3 msvc2019_64, preset WinNinjaRelease.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/reference/build_guides/windows.md and the WinNinjaRelease preset, then trace how Enter-VsDevShell and vcpkg select MSVC toolsets. Reproduce the documented setup, including PATH resolution and the x264 download, before evaluating the proposed PowerShell automation. Done means the guide or automation prevents mismatched toolsets, reliably finds cmake and ninja, and documents the x264 download limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, powershell
Domain
build-system, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.