Unverified Commit 0c5d185a authored by seth's avatar seth
Browse files

niri: allow configuration of build features

parent 6a2a5084
Loading
Loading
Loading
Loading
+38 −19
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
  lib,
  clang,
  dbus,
  eudev,
  fetchFromGitHub,
  libdisplay-info,
  libglvnd,
@@ -16,6 +17,10 @@
  seatd,
  systemd,
  wayland,
  withDbus ? true,
  withDinit ? false,
  withScreencastSupport ? true,
  withSystemd ? true,
}:

rustPlatform.buildRustPackage rec {
@@ -51,24 +56,38 @@ rustPlatform.buildRustPackage rec {
    rustPlatform.bindgenHook
  ];

  buildInputs = [
    dbus
  buildInputs =
    [
      libdisplay-info
      libglvnd # For libEGL
      libinput
      libxkbcommon
      mesa # For libgbm
      pango
    pipewire
      seatd
    systemd # Also includes libudev
      wayland # For libwayland-client
  ];
    ]
    ++ lib.optional (withDbus || withScreencastSupport || withSystemd) dbus
    ++ lib.optional withScreencastSupport pipewire
    ++ lib.optional withSystemd systemd # Includes libudev
    ++ lib.optional (!withSystemd) eudev; # Use an alternative libudev implementation when building w/o systemd

  buildFeatures =
    lib.optional withDbus "dbus"
    ++ lib.optional withDinit "dinit"
    ++ lib.optional withScreencastSupport "xdp-gnome-screencast"
    ++ lib.optional withSystemd "systemd";
  buildNoDefaultFeatures = true;

  postInstall = ''
    install -Dm0755 ./resources/niri-session -t $out/bin
  postInstall =
    ''
      install -Dm0644 resources/niri.desktop -t $out/share/wayland-sessions
    ''
    + lib.optionalString withDbus ''
      install -Dm0644 resources/niri-portals.conf -t $out/share/xdg-desktop-portal
    ''
    + lib.optionalString withSystemd ''
      install -Dm0755 resources/niri-session -t $out/bin
      install -Dm0644 resources/niri{-shutdown.target,.service} -t $out/share/systemd/user
    '';