AcademySoftwareFoundation / AcademySoftwareFoundation/xstudio
Windows: no build automation, and the dev shell can select an MSVC toolset without ATL
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,cmakeandninjaare not actually onPATH(the guide states they will be). Resolution falls through to whatever else is installed; on my machineninjaresolved to Strawberry Perl's copy, in a directory that also contains a MinGWgcc/ar. code.videolan.orgnow serves an anti-bot challenge page to command-line downloads, so vcpkg'sx264fetch 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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