Skip to content

build(cmake): restore copy_shaders fast deployment#1756

Merged
doodlum merged 1 commit into
community-shaders:devfrom
alandtse:feature/fast-shader-iteration
Jan 24, 2026
Merged

build(cmake): restore copy_shaders fast deployment#1756
doodlum merged 1 commit into
community-shaders:devfrom
alandtse:feature/fast-shader-iteration

Conversation

@alandtse
Copy link
Copy Markdown
Collaborator

@alandtse alandtse commented Jan 24, 2026

Restores lightweight COPY_SHADERS target for rapid shader development:

  • Deploys only shaders without building DLL or running tests
  • Preserves existing full deployment behavior as DEPLOY_ALL target

Development docs:

  • docs/development/README.md: Development documentation index
  • docs/development/shader-workflow.md: Deployment workflow guide
  • docs/development/vscode-setup.md: IDE setup with auto-deploy example

AI instruction updates:

  • Update .claude/CLAUDE.md with new target names and references
  • Update .github/copilot-instructions.md with fast deployment command

Usage: cmake --build build/ALL-WITH-AUTO-DEPLOYMENT --target COPY_SHADERS

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

Summary by CodeRabbit

Release Notes

  • New Features

    • Added COPY_SHADERS deployment target for fast, shader-only iteration.
    • Added DEPLOY_ALL target for comprehensive deployment including DLL builds and tests.
  • Documentation

    • New development guides: shader workflow, VSCode setup, and quick reference for build commands.
    • Updated deployment instructions for two-step workflow distinction.

✏️ Tip: You can customize this high-level summary in your review settings.

Restores lightweight COPY_SHADERS target for rapid shader development:
- Deploys only shaders without building DLL or running tests
- Preserves existing full deployment behavior as DEPLOY_ALL target

Development docs:
- docs/development/README.md: Development documentation index
- docs/development/shader-workflow.md: Deployment workflow guide
- docs/development/vscode-setup.md: IDE setup with auto-deploy example

AI instruction updates:
- Update .claude/CLAUDE.md with new target names and references
- Update .github/copilot-instructions.md with fast deployment command

Usage:
  cmake --build build/ALL-WITH-AUTO-DEPLOYMENT --target COPY_SHADERS

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Copilot AI review requested due to automatic review settings January 24, 2026 12:31
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jan 24, 2026

📝 Walkthrough

Walkthrough

This PR restructures the shader deployment workflow by introducing two distinct build targets: COPY_SHADERS for fast shader-only deployment and DEPLOY_ALL for full deployment with DLL builds and tests. It adds a Windows Robocopy wrapper for consistent exit code handling, reworks deployment stamps from a single consolidated stamp to multiple shader-related stamps, and provides comprehensive development documentation for VSCode setup and shader iteration.

Changes

Cohort / File(s) Summary
Build System Deployment Logic
CMakeLists.txt
Introduces Windows Robocopy wrapper, adds public build targets COPY_SHADERS (fast shader-only deploy) and DEPLOY_ALL (full deployment with DLLs, tests), replaces single shader deployment stamp with distinct incremental and full shader stamps, adjusts shader test execution to run before DEPLOY_ALL rather than COPY_SHADERS
Build Instruction Updates
.claude/CLAUDE.md, .github/copilot-instructions.md
Documents the two-step deployment workflow with new fast shader deployment path (COPY_SHADERS via ALL-WITH-AUTO-DEPLOYMENT) and full deployment option (DEPLOY_ALL), clarifies distinction between shader-only and full deployment iterations
Development Documentation
docs/development/README.md, docs/development/shader-workflow.md, docs/development/vscode-setup.md
New documentation files covering development quick-start, build targets comparison table, shader deployment workflow details, and VSCode configuration for auto-deploying shaders on save with near-instant iteration

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • doodlum

Poem

🐰 Two paths now bloom in CMake's design,
One swift and light—just shaders aligned,
One full and deep—DLLs, tests, and all,
Fast iteration answers the dev's call!
Robocopy exits now behave,
A rabbit's gift for those who crave.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly describes the main change: restoring a fast COPY_SHADERS deployment target. It accurately reflects the primary objective of the PR and is specific enough to convey the key change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Using provided base ref: 44eb788
Using base ref: 44eb788
Base commit date: 2026-01-19T23:55:15Z (Monday, January 19, 2026 11:55 PM)
No actionable suggestions for changed features.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR restores a fast, shader-only deployment path via a COPY_SHADERS CMake target and documents a recommended developer workflow around it, while keeping the full deployment flow under a new DEPLOY_ALL target. It also updates AI-facing instructions so automated tools use the new fast deployment path where appropriate.

Changes:

  • Introduces Windows-only incremental shader-only deployment commands (*_shaders_only.stamp, SHADER_ONLY_HASHES) and a new COPY_SHADERS custom target, and refactors full deployment into a DEPLOY_ALL target that also runs shader tests.
  • Adds focused development documentation under docs/development/ describing shader workflows, VSCode auto-deploy setup, and common commands.
  • Updates .claude/CLAUDE.md and .github/copilot-instructions.md to reference the new fast deployment target and directory layout.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
CMakeLists.txt Refactors automatic deployment: centralizes robocopy wrapper creation, splits shader-only vs full shader deploy steps, adds COPY_SHADERS (fast shader-only) and DEPLOY_ALL (full deploy + tests) targets, and wires shader tests to DEPLOY_ALL instead of COPY_SHADERS.
docs/development/vscode-setup.md New doc describing VSCode setup and optional RunOnSave configuration that invokes COPY_SHADERS on HLSL saves against the ALL-WITH-AUTO-DEPLOYMENT build tree.
docs/development/shader-workflow.md New doc outlining fast vs full shader deployment workflows, requirements for AUTO_PLUGIN_DEPLOYMENT, and behavior of COPY_SHADERS vs DEPLOY_ALL.
docs/development/README.md New development doc index with quick links for fast shader deployment, full auto-deployment builds, shader tests, and a summary table of key build targets.
.github/copilot-instructions.md Adds a “fast shader deployment” command for AI usage pointing to the new COPY_SHADERS target and associated developer docs.
.claude/CLAUDE.md Updates custom CMake target section to describe using COPY_SHADERS and DEPLOY_ALL from the ALL-WITH-AUTO-DEPLOYMENT build directory instead of the older COPY_SHADERS behavior.

Comment on lines +19 to +22
- `ALL-WITH-AUTO-DEPLOYMENT` - Build + deploy to game directory
- `Dev` - Fast iteration preset (recommended for development)

See `CMakePresets.json` for all available presets.
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

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

This "Build Presets" section calls out an ALL-WITH-AUTO-DEPLOYMENT preset and then says to "See CMakePresets.json for all available presets", but that file does not define an ALL-WITH-AUTO-DEPLOYMENT build preset (the only reference is a configure preset in CMakeUserPresets.json.template). To avoid confusing new contributors, it would be better to either (a) explicitly mention that ALL-WITH-AUTO-DEPLOYMENT comes from a user CMakeUserPresets file, or (b) adjust the wording so this section and the file reference accurately reflect where each preset is defined.

Suggested change
- `ALL-WITH-AUTO-DEPLOYMENT` - Build + deploy to game directory
- `Dev` - Fast iteration preset (recommended for development)
See `CMakePresets.json` for all available presets.
- `ALL-WITH-AUTO-DEPLOYMENT` - Build + deploy to game directory (defined in user `CMakeUserPresets.json`)
- `Dev` - Fast iteration preset (recommended for development)
See `CMakePresets.json` for built-in presets, and your local `CMakeUserPresets.json` (created from `CMakeUserPresets.json.template`) for optional user presets such as `ALL-WITH-AUTO-DEPLOYMENT`.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown

✅ A pre-release build is available for this PR:
Download

@doodlum doodlum merged commit 4297ef2 into community-shaders:dev Jan 24, 2026
22 checks passed
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.

3 participants