|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
description = "Development environment and build configuration"; |
|
|
|
inputs = { |
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; |
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; |
|
rust-overlay = { |
|
url = "github:oxalica/rust-overlay"; |
|
inputs.nixpkgs.follows = "nixpkgs"; |
|
}; |
|
flake-utils.url = "github:numtide/flake-utils"; |
|
}; |
|
|
|
outputs = { nixpkgs, nixpkgs-unstable, rust-overlay, flake-utils, ... }: |
|
flake-utils.lib.eachDefaultSystem (system: |
|
let |
|
overlays = [ (import rust-overlay) ]; |
|
pkgs = import nixpkgs { |
|
inherit system overlays; |
|
}; |
|
pkgs-unstable = import nixpkgs-unstable { |
|
inherit system overlays; |
|
}; |
|
|
|
rustc-wasm = pkgs.rust-bin.stable.latest.default.override { |
|
targets = [ "wasm32-unknown-unknown" ]; |
|
extensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ]; |
|
}; |
|
|
|
|
|
buildInputs = with pkgs; [ |
|
|
|
openssl |
|
vulkan-loader |
|
mesa |
|
libraw |
|
|
|
|
|
|
|
at-spi2-atk |
|
atkmm |
|
cairo |
|
gdk-pixbuf |
|
glib |
|
gtk3 |
|
harfbuzz |
|
librsvg |
|
libsoup_3 |
|
pango |
|
webkitgtk_4_1 |
|
openssl |
|
]; |
|
|
|
|
|
buildTools = [ |
|
rustc-wasm |
|
pkgs.nodejs |
|
pkgs.nodePackages.npm |
|
pkgs.binaryen |
|
pkgs.wasm-bindgen-cli |
|
pkgs-unstable.wasm-pack |
|
pkgs.pkg-config |
|
pkgs.git |
|
pkgs.gobject-introspection |
|
pkgs-unstable.cargo-tauri |
|
pkgs-unstable.cargo-about |
|
|
|
|
|
pkgs.mold |
|
]; |
|
|
|
devTools = with pkgs; [ |
|
cargo-watch |
|
cargo-nextest |
|
cargo-expand |
|
|
|
|
|
gnuplot |
|
samply |
|
cargo-flamegraph |
|
|
|
]; |
|
in |
|
{ |
|
|
|
devShells.default = pkgs.mkShell { |
|
packages = buildInputs ++ buildTools ++ devTools; |
|
|
|
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; |
|
GIO_MODULE_DIR="${pkgs.glib-networking}/lib/gio/modules/"; |
|
XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS"; |
|
|
|
|
|
shellHook = '' |
|
alias cargo='mold --run cargo' |
|
''; |
|
}; |
|
} |
|
); |
|
} |
|
|