Add Visual Studio 2026 v143 Windows build route - #593
Draft
Dozi3 wants to merge 5 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Summary
Add an explicit Windows x64 Release build route for Visual Studio 2026 while
retaining the v143 compatibility toolset. The route includes matching
application and dependency presets, propagates the selected generator
instance/platform/toolset into nested dependency builds, adds a guarded clean
build wrapper, and documents the exact toolchain and limitations.
This is additive. Existing VS2019, VS2022, Ninja, ARM64, and CI routes remain
present and are not redirected to the new preset.
Problem and root cause
The existing Windows dependency logic derives a child Visual Studio generator
from the compiler version. That coupling cannot represent selecting v143 from a
Visual Studio 2026 installation, and custom dependency steps such as OpenSSL
also depend on the active developer-shell toolchain and executable paths.
The public tree also contains a stale tracked
src/libslic3r/buildinfo.heventhough the configured build generates the authoritative build-information
header in the binary tree. The tracked copy embeds obsolete data and a local
source path.
What changed
windows-vs2026-v143-x64-releaseconfigure/build presets for theapplication and dependencies.
and toolset to nested CMake dependency projects.
and repository gettext tools explicitly for the new route.
count.
enable long paths only for that generated clone.
scripts/build_windows_vs2026.ps1, including generated-output markers,containment/reparse-point checks, toolchain validation, and a self-test mode.
header.
The new public-source preset explicitly opts out of requiring the untracked
offline payload, retains the online bootstrap, and emits a warning about the
missing offline recovery path.
Commit and review map
The branch is intentionally split into four reviewable commits:
38dade136437— consume generated build information and remove the staletracked header.
649a36bb4b75— make Windows dependencies accept explicit parenttoolchains and authoritative Perl/gettext paths.
ffedc602777b— add the normal VS2026/v143 presets, wrapper, anddocumentation.
a618da97f215— preserve legacy behavior by limitingCL_MPCountto VisualStudio generators, avoiding recursive wx submodule initialization, and
retaining the existing WebView2 install-time contract outside the new
preset.
Compatibility and dependencies
The new route expects:
The wxWidgets pin and dependency-generator propagation are shared build code,
so the repository's hosted legacy/cross-platform checks are important even
though the new preset itself is Windows-only.
Non-goals
SOURCE_DATE_EPOCHhandling.Risks and rollback
The main shared risk is the wxWidgets source pin/submodule declaration and the
generator propagation used by dependency children. The branch deliberately
retains the existing named presets and legacy scripts so the hosted build can
exercise those paths. Rollback is a normal revert of this PR; no existing
preset name or workflow is redirected.
Follow-up series
This is the first and smallest slice of a planned series:
Later slices will be rebased onto the actual merged result and revalidated;
they are not required to review or use this normal build route.
Screenshots/Recordings/Graphs
Not applicable — build-system and documentation changes only.
Tests
Fresh checks on the exact submitted head
Source: clean native Windows checkout at
a618da97f21558be3f698efea2a1f334d90c3b3e, based directly on upstream24b9395c131a9849724c5bf098cba140a207e877.Tooling used for the preset checks: Visual Studio Community 2026 18.8,
VS-bundled CMake 4.3.1-msvc1, PowerShell 7.6.3, and native Strawberry Perl.
scripts/build_windows_vs2026.ps1pwsh -NoProfile -File scripts/build_windows_vs2026.ps1 -SelfTestCMakePresets.json--list-presetsfor the rootwindows-vs2026-v143-x64-releaselisted--list-presetsfordeps/git diff --check 24b9395c131a9849724c5bf098cba140a207e877 a618da97f21558be3f698efea2a1f334d90c3b3eBuild evidence boundary
A clean full VS2026/v143 Release build previously completed on the same Windows
machine from a later combined development snapshot containing this normal route
plus unsubmitted reproducibility work: 28 dependency targets and the
application/install completed successfully, producing 8,499 installed files.
That run is supporting integration evidence only; it is not represented as
an exact-head build pass for this four-commit PR.
An exact-head
-Target All -Freshproduct build, installer/runtime testing,signing, Debug/ARM64/v145 coverage, and another-host build have not been run for
this submitted head. This PR is therefore opened as a draft so hosted checks
and maintainer feedback can run before it is marked ready for review.
Expected hosted checks
This diff touches
deps/**,src/**, and CMake project files, so the currentupstream
Build allpull-request path filter should select it. That workflowuses the repository's existing Windows/legacy build route, providing an
important regression check independent of the new local wrapper. No workflow
or repository setting is changed by this PR.