Skip to content

Document the required ATL and MFC build components - #1

Open
mikemeerschaert wants to merge 2 commits into
OpenTS-Developers:mainfrom
mikemeerschaert:docs/atl-mfc-build-requirements
Open

Document the required ATL and MFC build components#1
mikemeerschaert wants to merge 2 commits into
OpenTS-Developers:mainfrom
mikemeerschaert:docs/atl-mfc-build-requirements

Conversation

@mikemeerschaert

Copy link
Copy Markdown

Summary

A fresh Visual Studio 2022 Build Tools install with only the Desktop development with C++ workload (Microsoft.VisualStudio.Workload.VCTools --includeRecommended) cannot build OpenTS: code/wonline.cpp includes atlbase.h, which requires Microsoft.VisualStudio.Component.VC.ATL, and code/Sun.rc includes afxres.h, which requires Microsoft.VisualStudio.Component.VC.ATLMFC. Neither component is selected by the workload, and docs/BUILDING.md did not mention them. This change documents both components as build requirements.

Classification

Documentation-only. No engine behavior, interface, or compatibility boundary is affected.

Validation

  • Requirement evidence (August 27, 2026; MSVC 19.44.35228, Windows SDK 10.0.26100, CMake 4.4.2): a fresh VS 2022 Build Tools install with only the workload and its recommended components failed to build, first at code/wonline.cpp on the missing atlbase.h and, with ATL added, at code/Sun.rc on the missing afxres.h.
  • python manual/tools/manage.py check: extraction, catalog, route, contract, lifecycle, and source-link checks passed with zero catalog deltas. The site-build step did not run because the machine lacks Node/npm.
  • No engine build was run for this change itself, as it touches only documentation.

Documentation

  • docs/BUILDING.md (owner of build support): adds an ATL and MFC row to the supported-target table, extends the install paragraph with the two components and their unattended-install IDs, and records the evidence in the verification boundary.
  • manual/content/using/build-and-run.md: the install sentence now names both components; toolchain detail remains owned by docs/BUILDING.md, which the page links.

@Metadorius Metadorius left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how it's done in cmake, but in Visual Studio you can ship a project required components file, could supplement this.

@mikemeerschaert

Copy link
Copy Markdown
Author

Good idea, added in 9462abf. There's now a .vsconfig at the repo root with the workload and both components, and docs/BUILDING.md mentions it, so you can grab everything in one step through the installer's import or an unattended --config install.

About the CMake issue you mentioned: I think Visual Studio looks for a .vsconfig near the open solution or folder, so "Open Folder" on the repo root should work. I'm not totally sure whether it also fires for the generated build/OpenTS.sln, I haven't used visual studio in ages (I switched to VS code a long time ago as i mainly do typescript api work now) and I don't want to install it just to test this. Can you please confirm it shows up for the generated solution? if so, we can update the docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants