wedge/flake.nix
2023-01-02 01:34:09 -06:00

63 lines
1.7 KiB
Nix

{
inputs = {
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, flake-utils, fenix }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ fenix.overlays.default ];
};
rustc = pkgs.fenix.default.rustc;
cargo = pkgs.fenix.default.cargo;
neededLibs = with pkgs;
(with xorg; [ libX11 libXcursor libXrandr libXi ])
++ [ vulkan-loader wayland wayland-protocols libxkbcommon ];
flakePkgs = { wedge = pkgs.callPackage ./. { inherit rustc cargo; }; };
in rec {
packages = flake-utils.lib.flattenTree flakePkgs;
defaultPackage = packages.wedge;
devShell = pkgs.mkShell {
inputsFrom = with packages; [ wedge ];
shellHook = ''
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${
pkgs.lib.makeLibraryPath neededLibs
}"
'';
packages = (with pkgs; [
cargo-watch
cargo-deny
cargo-edit
sqlx-cli
sqlite
wasm-pack
(with pkgs.fenix;
combine [
rustc
cargo
targets.wasm32-unknown-unknown.latest.rust-std
])
]);
PKG_CONFIG_PATH = with pkgs;
lib.concatStringsSep ":" [
"${fontconfig.dev}/lib/pkgconfig"
"${xorg.libX11.dev}/lib/pkgconfig"
"${xorg.libXcursor.dev}/lib/pkgconfig"
"${xorg.libXi.dev}/lib/pkgconfig"
"${xorg.libXrandr.dev}/lib/pkgconfig"
];
};
});
}