Files
flare/flake.nix
2023-08-19 12:51:08 +02:00

66 lines
2.7 KiB
Nix

{
description = "Chat with your friends on Signal";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils, ... }@inputs:
(flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs {
inherit system;
};
name = "flare";
in
rec {
packages.default =
with pkgs;
stdenv.mkDerivation rec {
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"curve25519-dalek-3.2.1" = "sha256-0hFRhn920tLBpo6ZNCl6DYtTMHMXY/EiDvuhOPVjvC0=";
"libsignal-protocol-0.1.0" = "sha256-VQwrGTNZnlDK5p8ZleAZYtbzDiVTHxc93/CRlCUjWtE=";
"libsignal-service-0.1.0" = "sha256-1ub0IPSvGhZ2tsC6IolusJ1NSWy+5SXSx8qlIdPngTE=";
"presage-0.6.0-dev" = "sha256-4isKBn/4yHoAYsYbBTULK/veZmaecU7t+PvE4Y0oNgk=";
};
};
src = ./.;
buildInputs = with pkgs; [ libadwaita protobuf libsecret gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gtksourceview5 libspelling ];
nativeBuildInputs = with pkgs; [ appstream-glib blueprint-compiler desktop-file-utils meson ninja pkg-config wrapGAppsHook4 rustPlatform.cargoSetupHook cargo rustc ];
inherit name;
};
devShells.default =
let
run = pkgs.writeShellScriptBin "run" ''
export GSETTINGS_SCHEMA_DIR=${pkgs.gtk4}/share/gsettings-schemas/${pkgs.gtk4.name}/glib-2.0/schemas/:./build/data/
meson compile -C build && ./build/target/debug/${name}
'';
check = pkgs.writeShellScriptBin "check" ''
cargo clippy
'';
i18n = pkgs.writeShellScriptBin "i18n" ''
meson compile flare-pot -C build
meson compile flare-update-po -C build
'';
in
with pkgs;
pkgs.mkShell {
src = ./.;
buildInputs = self.packages.${system}.default.buildInputs;
nativeBuildInputs = with pkgs; self.packages.${system}.default.nativeBuildInputs ++ [ run check i18n ];
shellHook = ''
meson setup -Dprofile=development build
'';
};
apps.default = {
type = "app";
inherit name;
program = "${self.packages.${system}.default}/bin/${name}";
};
})
);
}