mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-07-10 01:04:59 +00:00

* Start integrating vello into render pipeline Cache vello render creation Implement viewport navigation Close vello path Add transform parameter to vello render pass * Fix render node types * Fix a bunch of bugs in the path translation * Avoid panic on empty document * Fix rendering of holes * Implement image rendering * Implement graph recompilation afer editor api change * Implement preferences toggle for using vello as the renderer * Make surface creation optional * Feature gate vello usages * Implement skeleton for radial gradient * Rename vello preference * Fix some gradients * Only update monitor nodes on graph recompile * Fix warnings + remove dead code * Update everything except for thumbnails after a node graph evaluation * Fix missing click targets for Image frames * Improve perfamance by removing unecessary widget updates * Fix node graph paning * Fix thumbnail loading * Implement proper hash for vector modification * Fix test and warnings * Code review * Fix dep * Remove warning --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
77 lines
2.4 KiB
Nix
77 lines
2.4 KiB
Nix
# 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 = [
|
|
rustc-wasm
|
|
pkgs.nodejs
|
|
pkgs.cargo
|
|
pkgs.cargo-watch
|
|
pkgs.cargo-nextest
|
|
pkgs.cargo-expand
|
|
pkgs.wasm-pack
|
|
pkgs.binaryen
|
|
pkgs.wasm-bindgen-cli
|
|
pkgs.vulkan-loader
|
|
pkgs.libxkbcommon
|
|
pkgs.llvm
|
|
pkgs.gcc-unwrapped.lib
|
|
pkgs.llvmPackages.libcxxStdenv
|
|
pkgs.pkg-config
|
|
|
|
# For Tauri
|
|
pkgs.openssl
|
|
pkgs.glib
|
|
pkgs.gtk3
|
|
pkgs.libsoup
|
|
pkgs.webkitgtk
|
|
|
|
# For Raw-rs tests
|
|
pkgs.libraw
|
|
|
|
# Use Mold as a linker
|
|
pkgs.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'
|
|
'';
|
|
}
|