Restructure CMake presets and "build_variant"s#5192
Draft
ScottTodd wants to merge 3 commits into
Draft
Conversation
Introduce a base/dev/release preset hierarchy so CI and release builds can use different cmake presets. The "dev" presets omit THEROCK_FLAG_STAMP_LIBRARY_GIT_VERSIONS for ccache friendliness, while "release" presets enable it. New presets: - linux-base: shared Linux build config (RelWithDebInfo, debug info splitting) - linux-dev: inherits linux-base, for CI/development (no stamp) - linux-release: inherits linux-base, adds git version stamping - windows-dev: inherits windows-base, Release build type (no stamp) The plumbing to select between dev and release presets based on build context (CI vs release workflows) is not yet wired — the build variant naming conflates sanitizer mode (release/asan/tsan) with build purpose (CI vs release), and that needs to be resolved first. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…iants Restructure build variants so CI and release workflows use distinct variant keys with different cmake presets. Move family compatibility from per-family build_variants lists to per-variant families allow-lists, centralizing variant configuration. Build variant key changes: - "release" (CI) → "ci" (preset: linux-dev / windows-dev) - "release" (release) → "release" (preset: linux-release / windows-release) - "asan" → "ci_asan" (preset: linux-dev-asan) - "tsan" → "ci_tsan" (preset: linux-dev-tsan) Also renames sanitizer presets to linux-dev-asan / linux-dev-tsan, with linux-release-asan / linux-release-tsan inheriting and adding the stamp flag. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced May 11, 2026
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.
Important
See also #5191 as an alternate approach.
Motivation
Follow-up to #5153 (comment)
This aims to set the
THEROCK_FLAG_STAMP_LIBRARY_GIT_VERSIONSflag value more consistently in our CI/CD workflows:linux-release/windows-releasepresets, used by release (CD) workflowslinux-dev/windows-devpresets, used by CI workflowsTechnical Details
These workflows have been using a top level "build_variant" setting like
build_variant: "release"which traced throughbuild_tools/github_actions/configure_multi_arch_ci.pyandbuild_tools/github_actions/amdgpu_family_matrix.pyto compute a "build config".This splits the "release" build variants to include "ci" and "release" with different cmake presets for each.
Test Plan
Check presets used by CI, trigger a dev release build?
Submission Checklist