Post refactor fixup (#3395)

* fixup

* fix feature deps for native
This commit is contained in:
Timon 2025-11-18 15:48:45 +00:00 committed by GitHub
parent 6a3b098681
commit 7d739c4542
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 13 additions and 158 deletions

View File

@ -83,6 +83,7 @@
pkgs.cargo pkgs.cargo
pkgs.rust-analyzer pkgs.rust-analyzer
pkgs.clippy pkgs.clippy
pkgs.rustfmt
pkgs.git pkgs.git
@ -107,7 +108,7 @@
args: args:
(import ./pkgs/graphite.nix { (import ./pkgs/graphite.nix {
pkgs = pkgs // { pkgs = pkgs // {
inherit graphene-raster-nodes-shaders; inherit raster-nodes-shaders;
}; };
inherit inherit
info info
@ -126,7 +127,7 @@
dev = true; dev = true;
}; };
#TODO: graphene-cli = import ./pkgs/graphene-cli.nix { inherit info pkgs inputs deps libs tools; }; #TODO: graphene-cli = import ./pkgs/graphene-cli.nix { inherit info pkgs inputs deps libs tools; };
graphene-raster-nodes-shaders = import ./pkgs/graphene-raster-nodes-shaders.nix { raster-nodes-shaders = import ./pkgs/raster-nodes-shaders.nix {
inherit inherit
info info
pkgs pkgs

View File

@ -78,7 +78,7 @@ deps.crane.lib.buildPackage (
env = env =
common.env common.env
// { // {
GRAPHENE_RASTER_NODES_SHADER_PATH = pkgs.graphene-raster-nodes-shaders; RASTER_NODES_SHADER_PATH = pkgs.raster-nodes-shaders;
} }
// ( // (
if embeddedResources then if embeddedResources then

View File

@ -9,7 +9,7 @@
}: }:
(deps.crane.lib.overrideToolchain (_: deps.rustGPU.toolchain)).buildPackage { (deps.crane.lib.overrideToolchain (_: deps.rustGPU.toolchain)).buildPackage {
pname = "graphene-raster-nodes-shaders"; pname = "raster-nodes-shaders";
inherit (info) version src; inherit (info) version src;
cargoVendorDir = deps.crane.lib.vendorMultipleCargoDeps { cargoVendorDir = deps.crane.lib.vendorMultipleCargoDeps {
@ -25,11 +25,11 @@
env = deps.rustGPU.env; env = deps.rustGPU.env;
buildPhase = '' buildPhase = ''
cargo build -r -p graphene-raster-nodes-shaders cargo build -r -p raster-nodes-shaders
''; '';
installPhase = '' installPhase = ''
cp target/spirv-builder/spirv-unknown-naga-wgsl/release/deps/graphene_raster_nodes_shaders_entrypoint.wgsl $out cp target/spirv-builder/spirv-unknown-naga-wgsl/release/deps/raster_nodes_shaders_entrypoint.wgsl $out
''; '';
doCheck = false; doCheck = false;

View File

@ -13,8 +13,8 @@ license = "Apache-2.0"
[features] [features]
default = ["gpu", "shader-nodes"] default = ["gpu", "shader-nodes"]
gpu = ["editor/gpu"] gpu = ["editor/gpu"]
native = []
shader-nodes = ["graphene-std/shader-nodes", "gpu"] shader-nodes = ["graphene-std/shader-nodes", "gpu"]
native = []
[lib] [lib]
crate-type = ["cdylib", "rlib"] crate-type = ["cdylib", "rlib"]

View File

@ -1,60 +0,0 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
};
outputs =
{
self,
nixpkgs,
flake-utils,
rust-overlay,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
toolchain = pkgs.rust-bin.stable.latest.default.override {
extensions = [
"rust-src"
"clippy"
"rust-analyzer"
];
};
buildInputs = with pkgs; [
llvm
];
in
{
devShells.default = pkgs.mkShell {
stdenv = pkgs.clangStdenv;
packages = with pkgs; [
bacon
valgrind
kcachegrind
cargo-flamegraph
];
nativeBuildInputs = with pkgs; [
lld
toolchain
llvm
cargo
];
inherit buildInputs;
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
};
}
);
}

View File

@ -1,86 +0,0 @@
# This is a helper file for people using NixOS as their operating system.
# If you don't know what this file does, you can safely ignore it.
# If you are using Nix as your package manager, you can run 'nix-shell'
# in the root directory of the project and Nix will open a bash shell
# with all the packages needed to build and run Graphite installed.
# A shell.nix file is used in the Nix ecosystem to define a development
# environment with specific dependencies. When you enter a Nix shell using
# this file, it ensures that all the specified tools and libraries are
# available regardless of the host system's configuration. This provides
# a reproducible development environment across different machines and developers.
# You can enter the Nix shell and run Graphite like normal with:
# > npm start
# Or you can run it like this without needing to first enter the Nix shell:
# > nix-shell --command "npm start"
let
# Get oxalica's Rust overlay for better Rust integration
rust-overlay-source = builtins.fetchGit {
url = "https://github.com/oxalica/rust-overlay";
};
# Import it so we can use it in Nix
rust-overlay = import rust-overlay-source;
# Import system packages overlaid with the Rust overlay
pkgs = import <nixpkgs> {
overlays = [ rust-overlay ];
};
# Define the rustc we need
rustc-wasm = pkgs.rust-bin.stable.latest.default.override {
targets = [ "wasm32-unknown-unknown" ];
# wasm-pack needs this
extensions = [
"rust-src"
"rust-analyzer"
"clippy"
];
};
in
# Make a shell with the dependencies we need
pkgs.mkShell {
packages = with pkgs; [
rustc-wasm
nodejs
cargo
cargo-watch
cargo-nextest
cargo-expand
wasm-pack
binaryen
wasm-bindgen-cli
vulkan-loader
libxkbcommon
llvm
gcc-unwrapped.lib
llvmPackages.libcxxStdenv
pkg-config
# used for profiling
gnuplot
samply
cargo-flamegraph
# For Rawkit tests
libraw
# Use Mold as a linker
mold
];
# Hacky way to run Cargo through Mold
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
pkgs.openssl
pkgs.vulkan-loader
pkgs.libxkbcommon
pkgs.llvmPackages.libcxxStdenv
pkgs.gcc-unwrapped.lib
pkgs.llvm
pkgs.libraw
];
shellHook = ''
alias cargo='mold --run cargo'
'';
}

View File

@ -7,7 +7,7 @@ authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
[features] [features]
default = ["wasm", "wgpu", "shader-nodes"] default = ["wasm", "wgpu"]
gpu = [] gpu = []
wgpu = ["gpu", "graph-craft/wgpu", "graphene-application-io/wgpu"] wgpu = ["gpu", "graph-craft/wgpu", "graphene-application-io/wgpu"]
wasm = [ wasm = [

View File

@ -6,8 +6,8 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::builder().filter_level(log::LevelFilter::Debug).init(); env_logger::builder().filter_level(log::LevelFilter::Debug).init();
// Skip building the shader if they are provided externally // Skip building the shader if they are provided externally
println!("cargo:rerun-if-env-changed=GRAPHENE_RASTER_NODES_SHADER_PATH"); println!("cargo:rerun-if-env-changed=RASTER_NODES_SHADER_PATH");
if !std::env::var("GRAPHENE_RASTER_NODES_SHADER_PATH").unwrap_or_default().is_empty() { if !std::env::var("RASTER_NODES_SHADER_PATH").unwrap_or_default().is_empty() {
return Ok(()); return Ok(());
} }
@ -49,6 +49,6 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
// needs to be fixed upstream // needs to be fixed upstream
let path_to_wgsl = path_to_spv.with_extension("wgsl"); let path_to_wgsl = path_to_spv.with_extension("wgsl");
println!("cargo::rustc-env=GRAPHENE_RASTER_NODES_SHADER_PATH={}", path_to_wgsl.display()); println!("cargo::rustc-env=RASTER_NODES_SHADER_PATH={}", path_to_wgsl.display());
Ok(()) Ok(())
} }

View File

@ -1 +1 @@
pub const WGSL_SHADER: &str = include_str!(env!("GRAPHENE_RASTER_NODES_SHADER_PATH")); pub const WGSL_SHADER: &str = include_str!(env!("RASTER_NODES_SHADER_PATH"));