mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-07-07 15:55:00 +00:00
Fix Rust-Analyzer conflicts with build targets and other compile speed issues
This commit is contained in:
parent
212f08c6c8
commit
857bc772de
4 changed files with 40 additions and 37 deletions
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
|
@ -32,10 +32,8 @@
|
|||
"editor.formatOnSave": false
|
||||
},
|
||||
// Rust Analyzer config
|
||||
"rust-analyzer.cargo.target": "wasm32-unknown-unknown",
|
||||
"rust-analyzer.cargo.allTargets": false,
|
||||
"rust-analyzer.check.command": "clippy",
|
||||
"rust-analyzer.cargo.buildScripts.overrideCommand": ["cargo", "check", "--quiet", "--message-format=json", "--all-targets", "-p", "graphite-wasm"], // Build scripts for Tauri aren't compatible with wasm32-unknown-unknown, so this restricts it to just our code entry point
|
||||
"rust-analyzer.diagnostics.disabled": ["unresolved-macro-call"], // Remove when https://github.com/rust-lang/rust-analyzer/issues/6835 is fixed
|
||||
// ESLint config
|
||||
"eslint.format.enable": true,
|
||||
"eslint.workingDirectories": ["./frontend", "./website/other/bezier-rs-demos", "./website"],
|
||||
|
|
34
Cargo.toml
34
Cargo.toml
|
@ -93,30 +93,22 @@ kurbo = { git = "https://github.com/linebender/kurbo.git", features = [
|
|||
"serde",
|
||||
] }
|
||||
|
||||
[profile.dev.package.graphite-editor]
|
||||
opt-level = 1
|
||||
|
||||
[profile.dev.package.graphene-core]
|
||||
opt-level = 1
|
||||
|
||||
[profile.dev.package.graphene-std]
|
||||
opt-level = 1
|
||||
|
||||
[profile.dev.package.interpreted-executor]
|
||||
opt-level = 1 # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large
|
||||
|
||||
[profile.dev.package.autoquant]
|
||||
opt-level = 3
|
||||
|
||||
[profile.dev.package.image]
|
||||
opt-level = 3
|
||||
|
||||
[profile.dev.package.rustc-hash]
|
||||
opt-level = 3
|
||||
|
||||
[profile.dev]
|
||||
opt-level = 1
|
||||
|
||||
[profile.dev.package]
|
||||
graphite-editor = { opt-level = 1 }
|
||||
graphene-core = { opt-level = 1 }
|
||||
graphene-std = { opt-level = 1 }
|
||||
interpreted-executor = { opt-level = 1 } # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large
|
||||
graphite-proc-macros = { opt-level = 3 }
|
||||
autoquant = { opt-level = 3 }
|
||||
image = { opt-level = 3 }
|
||||
rustc-hash = { opt-level = 3 }
|
||||
serde_derive = { opt-level = 3 }
|
||||
specta-macros = { opt-level = 3 }
|
||||
syn = { opt-level = 3 }
|
||||
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
|
||||
|
|
28
shell.nix
28
shell.nix
|
@ -1,8 +1,8 @@
|
|||
# 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 :D
|
||||
# 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
|
||||
# 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
|
||||
|
@ -10,8 +10,10 @@
|
|||
# available regardless of the host system's configuration. This provides
|
||||
# a reproducible development environment across different machines and developers.
|
||||
|
||||
# If you don't need the shell, you can build Graphite using this command:
|
||||
# nix-shell --command "npm start"
|
||||
# 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
|
||||
|
@ -50,25 +52,25 @@ in
|
|||
pkgs.llvm
|
||||
pkgs.gcc-unwrapped.lib
|
||||
pkgs.llvmPackages.libcxxStdenv
|
||||
pkgs.pkg-config
|
||||
|
||||
# For Tauri
|
||||
pkgs.openssl
|
||||
pkgs.glib
|
||||
pkgs.gtk3
|
||||
pkgs.libsoup
|
||||
pkgs.webkitgtk
|
||||
|
||||
pkgs.pkg-config
|
||||
pkgs.openssl
|
||||
# For Raw-rs tests
|
||||
pkgs.libraw
|
||||
|
||||
# Use Mold as a Linke
|
||||
# Use Mold as a linker
|
||||
pkgs.mold
|
||||
];
|
||||
|
||||
|
||||
# Hacky way to run cago through Mold
|
||||
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [pkgs.openssl pkgs.vulkan-loader pkgs.libxkbcommon pkgs.llvmPackages.libcxxStdenv pkgs.gcc-unwrapped.lib pkgs.llvm];
|
||||
# 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'
|
||||
'';
|
||||
}
|
||||
|
||||
|
|
|
@ -29,16 +29,27 @@ You'll likely get faster build times if you manually install this specific versi
|
|||
cargo install -f wasm-bindgen-cli@0.2.92
|
||||
```
|
||||
|
||||
<!-- THESE INSTRUCTIONS ARE HIDDEN UNTIL WE NEED THEM AGAIN FOR TAURI DEVELOPMENT ONCE THAT HAS BEEN MERGED INTO MASTER -->
|
||||
<!--
|
||||
On Linux, you may need to install this set of additional packages if you run into issues:
|
||||
|
||||
<details>
|
||||
<summary>Click to view</summary>
|
||||
|
||||
```sh
|
||||
# On Debian-based (Ubuntu, Mint, etc.) distributions:
|
||||
sudo apt install libgtk-3-dev libsoup2.4-dev libjavascriptcoregtk-4.0-dev libwebkit2gtk-4.0-dev
|
||||
|
||||
# On Fedora-based (RHEL, CentOS, etc.) distributions:
|
||||
sudo dnf install gtk3-devel libsoup-devel javascriptcoregtk4.0-devel webkit2gtk4.0-devel
|
||||
|
||||
# On NixOS or when using the Nix package manager:
|
||||
nix-shell
|
||||
```
|
||||
|
||||
</details>
|
||||
-->
|
||||
|
||||
## Repository
|
||||
|
||||
Clone the project to a convenient location:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue