Repository navigation
Add isolated Windows builds for VS 2022 and VS 2026 - #2397
Open
JATMN (jatmn) wants to merge 4 commits into
Open
JATMN (jatmn) wants to merge 4 commits into
JATMN (jatmn) wants to merge 4 commits into
Conversation
Explain compiler selection and isolated Conan environments without changing existing VS 2022 build defaults. Include Release, Debug, runtime and CTest instructions for native Windows validation.
JATMN (jatmn)
marked this pull request as ready for review
September 29, 2026 18:53
This branch has not been deployed
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
Add an executable Windows build launcher with VS 2022 as the default and explicit
--vs 2026selection. It uses the existing Conan/CMake build recipe and rejects a mismatched active compiler instead of silently switching toolchains.python scripts\build_windows.py python scripts\build_windows.py --vs 2026 --build-type Debug --with-testsRun each command from its matching x64 Native Tools prompt. The launcher checks compiler and prerequisite versions, pins Conan to that prompt's standard
VSINSTALLDIR, and runsconan build. Profiles and remotes are isolated underbuild/windows-vs2022orbuild/windows-vs2026; package sources and binaries use a short per-user, per-checkout, per-compiler store derived from%LOCALAPPDATA%. No username, drive, Visual Studio edition, or installation path is hard-coded.The package workflow uses the repository's shared actor gate before invoking publishing jobs, matching the established pattern in other fork-originated PRs where upload secrets are unavailable.
--with-testsenables CuraEngine's tests without enabling test suites in dependencies built from source. Generated root presets and the caller's environment, profiles, and existing Conan home remain unchanged.VS 2022 preservation: the existing direct Conan/CMake path, recipe minimums, dependencies, compiler defaults, and CI remain unchanged. The new helper requires Conan >=2.24,<3 for both IDEs because older Conan lacks the preset-isolation option; use a separate Python environment if an existing VS 2022 build uses older Conan. Its CMake minimum is 3.23 for VS 2022 and 4.2 for VS 2026.
The README and Windows guide cover prerequisites, helper and manual paths, Release/Debug, runtime DLL setup, tests, and troubleshooting. Empty
OverrideAreaslocals areconstrather thanconstexpr, preserving immutability while allowing MSVC 19.50 Debug builds of the vector-backed type.Reviewed commit:
a8249f4fb0f02e1d78c0eca6df3634b978575596.Type of change
How Has This Been Tested?
Native Windows validation
Environment: Windows x86_64, Visual Studio 2026 Build Tools 18.4.1, MSVC 19.50.35727, Conan 2.24.0, CMake 4.2.3, and Ninja 1.12.0.
conanrun.bat: 31/31 passed, 0 failed (--no-tests=error).CuraEngine.exe helpprinted version and usage and exited 0.conanrun.bat: 31/31 passed, 0 failed (--no-tests=error).CuraEngine.exe helpprinted version and usage and exited 0.--vs 2022from that prompt failed before Conan with the expected compiler-mismatch message.git diff --checkpassed on the reviewed commit.check_actorjob passed; unauthorizedconan-packageandnpm-packagepublishing jobs skipped cleanly instead of attempting anonymous uploads.Commands used for each configuration:
Earlier portable validation
CMakeUserPresets.json.tools.cmake.cmaketoolchain:user_presetsoption; the launcher rejects it before configuration rather than risking preset collisions. The direct VS 2022 path keeps its existing minimum.Windows validation before marking ready
This PR remains a draft because this host has no VS 2022 installation. No VS 2022 native result is claimed, and no compiler was installed as part of validation.
--vs 2022, Release/Debug, runtime smoke, and CTest.--vs 2026, Release/Debug, runtime smoke, and CTest.--vs 2022) is verified, but the reverse direction requires a VS 2022 installation.Checklist