From 9411612d7ff48fde461475d84f47dd4f18b39736 Mon Sep 17 00:00:00 2001 From: Timon Date: Wed, 10 Sep 2025 10:20:45 +0000 Subject: [PATCH] Move shader entrypoints to separate crate (#3157) --- Cargo.lock | 7 +++++++ Cargo.toml | 1 + node-graph/graster-nodes/Cargo.toml | 3 --- node-graph/graster-nodes/shaders/Cargo.toml | 3 +++ node-graph/graster-nodes/shaders/build.rs | 3 +-- .../graster-nodes/shaders/entrypoint/Cargo.toml | 13 +++++++++++++ .../graster-nodes/shaders/entrypoint/src/lib.rs | 2 ++ 7 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 node-graph/graster-nodes/shaders/entrypoint/Cargo.toml create mode 100644 node-graph/graster-nodes/shaders/entrypoint/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index b07f82e5..62956752 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2207,6 +2207,13 @@ dependencies = [ "env_logger", ] +[[package]] +name = "graphene-raster-nodes-shaders-entrypoint" +version = "0.1.0" +dependencies = [ + "graphene-raster-nodes", +] + [[package]] name = "graphene-std" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index b22749be..f0eff7d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ members = [ "node-graph/graphene-cli", "node-graph/graster-nodes", "node-graph/graster-nodes/shaders", + "node-graph/graster-nodes/shaders/entrypoint", "node-graph/gstd", "node-graph/gsvg-renderer", "node-graph/interpreted-executor", diff --git a/node-graph/graster-nodes/Cargo.toml b/node-graph/graster-nodes/Cargo.toml index c51c4485..f1617c42 100644 --- a/node-graph/graster-nodes/Cargo.toml +++ b/node-graph/graster-nodes/Cargo.toml @@ -6,9 +6,6 @@ description = "graphene raster data format" authors = ["Graphite Authors "] license = "MIT OR Apache-2.0" -[lib] -crate-type = ["rlib", "dylib"] - [lints] workspace = true diff --git a/node-graph/graster-nodes/shaders/Cargo.toml b/node-graph/graster-nodes/shaders/Cargo.toml index 65a4fed4..643025b9 100644 --- a/node-graph/graster-nodes/shaders/Cargo.toml +++ b/node-graph/graster-nodes/shaders/Cargo.toml @@ -6,6 +6,9 @@ description = "graphene raster data format" authors = ["Graphite Authors "] license = "MIT OR Apache-2.0" +[lib] +crate-type = ["rlib", "dylib"] + [dependencies] [build-dependencies] diff --git a/node-graph/graster-nodes/shaders/build.rs b/node-graph/graster-nodes/shaders/build.rs index 96964e1a..85933171 100644 --- a/node-graph/graster-nodes/shaders/build.rs +++ b/node-graph/graster-nodes/shaders/build.rs @@ -23,7 +23,7 @@ pub fn main() -> Result<(), Box> { } } - let shader_crate = PathBuf::from(concat!(env!("CARGO_MANIFEST_DIR"), "/..")); + let shader_crate = PathBuf::from(concat!(env!("CARGO_MANIFEST_DIR"), "/entrypoint")); println!("cargo:rerun-if-env-changed=RUSTC_CODEGEN_SPIRV_PATH"); let rustc_codegen_spirv_path = std::env::var("RUSTC_CODEGEN_SPIRV_PATH").unwrap_or_default(); @@ -43,7 +43,6 @@ pub fn main() -> Result<(), Box> { let mut builder = backend.to_spirv_builder(shader_crate, "spirv-unknown-naga-wgsl"); builder.print_metadata = MetadataPrintout::DependencyOnly; builder.spirv_metadata = SpirvMetadata::Full; - builder.shader_crate_features.default_features = false; let wgsl_result = builder.build()?; let path_to_spv = wgsl_result.module.unwrap_single(); diff --git a/node-graph/graster-nodes/shaders/entrypoint/Cargo.toml b/node-graph/graster-nodes/shaders/entrypoint/Cargo.toml new file mode 100644 index 00000000..046f2554 --- /dev/null +++ b/node-graph/graster-nodes/shaders/entrypoint/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "graphene-raster-nodes-shaders-entrypoint" +version = "0.1.0" +edition = "2024" +description = "graphene raster nodes shaders entrypoint" +authors = ["Graphite Authors "] +license = "MIT OR Apache-2.0" + +[lib] +crate-type = ["rlib", "dylib"] + +[dependencies] +graphene-raster-nodes = { path = "../..", default-features = false } diff --git a/node-graph/graster-nodes/shaders/entrypoint/src/lib.rs b/node-graph/graster-nodes/shaders/entrypoint/src/lib.rs new file mode 100644 index 00000000..99e0e972 --- /dev/null +++ b/node-graph/graster-nodes/shaders/entrypoint/src/lib.rs @@ -0,0 +1,2 @@ +#![no_std] +pub use graphene_raster_nodes::*;