blob: 7caadd61e3cae4b72d82a10531aa7bde1fe97a3c [file] [log] [blame]
{
description = "A Clicks project";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
{ nixpkgs, flake-utils, fenix, ... }:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ fenix.overlays.default ];
};
tauri_libraries = with pkgs;[
webkitgtk
gtk3
cairo
gdk-pixbuf
glib
dbus
openssl_3
librsvg
];
tauri_packages = with pkgs; [
curl
wget
pkg-config
dbus
openssl_3
glib
gtk3
libsoup
webkitgtk
librsvg
];
in
{
devShells.default = pkgs.mkShell {
packages = [
pkgs.nodePackages.pnpm
pkgs.nodejs_22
pkgs.eslint_d
pkgs.cargo-tauri
(pkgs.fenix.stable.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
"rust-analyzer"
])
pkgs.bacon
pkgs.pkg-config
] ++ tauri_packages;
shellHook = ''
export PKG_CONFIG_PATH=${
pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
pkgs.webkitgtk
pkgs.libsoup
pkgs.glib
pkgs.gtk3
pkgs.pango
pkgs.gdk-pixbuf
pkgs.cairo
pkgs.at-spi2-atk
pkgs.harfbuzz
pkgs.zlib
pkgs.gtk-layer-shell
]
}
export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath tauri_libraries}:$LD_LIBRARY_PATH
export 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
'';
};
formatter = pkgs.nixfmt;
}
);
}