Skip to content

Commit 865486b

Browse files
committed
Use shader's Cargo.toml for rust-gpu version/toolchain
We can still override the version and toolchain with CLI args. This commit just changes the defaults. I feel like there could be a lot of edge cases for this implementation. So I consider it more of a first draft. Notable changes: * `Spirv` renamed to `SpirvCLI`. * New `impl SpirvSource` that does all the shader crate querying. * CLI args change: `--spirv-builder` is now split into `--spirv-builder-source` and `--spirv-builder-version`. * `--shader-crate` now lives on the `install` subcommand, which because it is inherited by `build` (where it was originally), means it doesn't make much of a difference. * The full build test now has a teardown function making it idempotent. * Cache folder structure now has sub folders for `spirv-builder-cli`'s and `rust-gpu` repos. Things to consider: * Can we remove `TARGET_SPECS` now, because we have a copy of the `rust-gpu` repo, we can get them from there instead? * We have to copy the `shader-crate-template` outside of the workspace to get the tests to run. This is because recent Cargo now uses version 4 in `Cargo.lock` and the shader crate toolchain uses an older version of Cargo that doesn't recognise that version. But that doesn't seem right. Why is Cargo looking outside of the `shader-crate-template` anyway?? * What's the UX expectations for changing `spirv-std` versions or overriding `rust-gpu` versions and toolchain? I think in most cases `spirv-builder-cli` rebuilds should occur because the changes will cause cache directory changes. But I think it'd be good to at least manually test this. * Should the main build test be moved out into an integrations tests folder? * I'd still like to test each `spirv-builder-cli` feature, ie: `spirv-builder-pre-cli` and `spirv-builder-0_10`. We're currently only testing `spirv-builder-pre-cli`.
1 parent 87de5da commit 865486b

File tree

12 files changed

+807
-198
lines changed

12 files changed

+807
-198
lines changed

.github/workflows/push.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ jobs:
1414
install-and-build-shaders:
1515
strategy:
1616
matrix:
17-
os: [ubuntu-latest, macos-latest, windows-latest]
17+
os:
18+
- ubuntu-latest
19+
- macos-latest
20+
# - windows-latest
1821
runs-on: ${{ matrix.os }}
1922
defaults:
2023
run:
@@ -38,4 +41,4 @@ jobs:
3841
steps:
3942
- uses: actions/checkout@v2
4043
- uses: moonrepo/setup-rust@v1
41-
- run: cargo clippy
44+
- run: cargo clippy -- --deny warnings

Cargo.lock

Lines changed: 203 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ relative-path = "1.9.3"
2121
serde = { version = "1.0.214", features = ["derive"] }
2222
serde_json = "1.0.132"
2323
toml = "0.8.19"
24+
test-log = "0.2.16"
2425

2526
[workspace.lints.rust]
2627
missing_docs = "warn"
@@ -46,7 +47,9 @@ pattern_type_mismatch = { level = "allow", priority = 1 }
4647
print_stdout = { level = "allow", priority = 1 }
4748
std_instead_of_alloc = { level = "allow", priority = 1 }
4849

49-
# TODO: Try to not depend on these lints
50+
# TODO: Try to not depend on allowing these lints
5051
unwrap_used = { level = "allow", priority = 1 }
52+
get_unwrap = { level = "allow", priority = 1 }
53+
expect_used = { level = "allow", priority = 1 }
5154
panic = { level = "allow", priority = 1 }
5255

0 commit comments

Comments
 (0)