parent
6a3b098681
commit
7d739c4542
|
|
@ -83,6 +83,7 @@
|
|||
pkgs.cargo
|
||||
pkgs.rust-analyzer
|
||||
pkgs.clippy
|
||||
pkgs.rustfmt
|
||||
|
||||
pkgs.git
|
||||
|
||||
|
|
@ -107,7 +108,7 @@
|
|||
args:
|
||||
(import ./pkgs/graphite.nix {
|
||||
pkgs = pkgs // {
|
||||
inherit graphene-raster-nodes-shaders;
|
||||
inherit raster-nodes-shaders;
|
||||
};
|
||||
inherit
|
||||
info
|
||||
|
|
@ -126,7 +127,7 @@
|
|||
dev = true;
|
||||
};
|
||||
#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
|
||||
info
|
||||
pkgs
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ deps.crane.lib.buildPackage (
|
|||
env =
|
||||
common.env
|
||||
// {
|
||||
GRAPHENE_RASTER_NODES_SHADER_PATH = pkgs.graphene-raster-nodes-shaders;
|
||||
RASTER_NODES_SHADER_PATH = pkgs.raster-nodes-shaders;
|
||||
}
|
||||
// (
|
||||
if embeddedResources then
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
}:
|
||||
|
||||
(deps.crane.lib.overrideToolchain (_: deps.rustGPU.toolchain)).buildPackage {
|
||||
pname = "graphene-raster-nodes-shaders";
|
||||
pname = "raster-nodes-shaders";
|
||||
inherit (info) version src;
|
||||
|
||||
cargoVendorDir = deps.crane.lib.vendorMultipleCargoDeps {
|
||||
|
|
@ -25,11 +25,11 @@
|
|||
env = deps.rustGPU.env;
|
||||
|
||||
buildPhase = ''
|
||||
cargo build -r -p graphene-raster-nodes-shaders
|
||||
cargo build -r -p raster-nodes-shaders
|
||||
'';
|
||||
|
||||
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;
|
||||
|
|
@ -13,8 +13,8 @@ license = "Apache-2.0"
|
|||
[features]
|
||||
default = ["gpu", "shader-nodes"]
|
||||
gpu = ["editor/gpu"]
|
||||
native = []
|
||||
shader-nodes = ["graphene-std/shader-nodes", "gpu"]
|
||||
native = []
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "rlib"]
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
@ -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'
|
||||
'';
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ authors = ["Graphite Authors <contact@graphite.rs>"]
|
|||
license = "MIT OR Apache-2.0"
|
||||
|
||||
[features]
|
||||
default = ["wasm", "wgpu", "shader-nodes"]
|
||||
default = ["wasm", "wgpu"]
|
||||
gpu = []
|
||||
wgpu = ["gpu", "graph-craft/wgpu", "graphene-application-io/wgpu"]
|
||||
wasm = [
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
env_logger::builder().filter_level(log::LevelFilter::Debug).init();
|
||||
|
||||
// Skip building the shader if they are provided externally
|
||||
println!("cargo:rerun-if-env-changed=GRAPHENE_RASTER_NODES_SHADER_PATH");
|
||||
if !std::env::var("GRAPHENE_RASTER_NODES_SHADER_PATH").unwrap_or_default().is_empty() {
|
||||
println!("cargo:rerun-if-env-changed=RASTER_NODES_SHADER_PATH");
|
||||
if !std::env::var("RASTER_NODES_SHADER_PATH").unwrap_or_default().is_empty() {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
|
|
@ -49,6 +49,6 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
// needs to be fixed upstream
|
||||
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(())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
|
|
|||
Loading…
Reference in New Issue