File: flake.nix

package info (click to toggle)
rust-tiny-dfr 0.3.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 408 kB
  • sloc: sh: 8; makefile: 4
file content (54 lines) | stat: -rw-r--r-- 1,742 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
  description = "The most basic dynamic function row daemon possible";
  inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; };
  outputs = { self, nixpkgs }:
    let
      supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
      forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
      pkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
    in rec {
      packages = forAllSystems (system:
        let pkgs = pkgsFor.${system};
        in {
          default = pkgs.rustPlatform.buildRustPackage {
            pname = "tiny-dfr";
            version = "0.3.5";
            src = ./.;
            cargoLock = { lockFile = ./Cargo.lock; };
            nativeBuildInputs = [ pkgs.pkg-config ];
            buildInputs = [
              pkgs.cairo
              pkgs.libinput
              pkgs.freetype
              pkgs.fontconfig
              pkgs.glib
              pkgs.pango
              pkgs.gdk-pixbuf
              pkgs.libxml2
              pkgs.librsvg
            ];

            postConfigure = ''
              substituteInPlace etc/systemd/system/tiny-dfr.service \
                  --replace-fail /usr/bin $out/bin
              substituteInPlace src/*.rs --replace-quiet /usr/share $out/share
            '';

            postInstall = ''
              cp -R etc $out/lib
              cp -R share $out
            '';
          };
        });

      devShells = forAllSystems (system:
        let pkgs = pkgsFor.${system};
        in {
          default = pkgs.mkShell {
            inputsFrom = [ packages.${system}.default ];
            packages = [ pkgs.rustfmt pkgs.rust-analyzer ];
            RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
          };
        });
    };
}