Commit 7e8402ce authored by Florian Klink's avatar Florian Klink
Browse files

wlx-overlay-s: make openvr support optional, disable on aarch64-linux

wlx-overlay-s uses
https://github.com/galister/ovr_overlay_oyasumi/pull/2, which pulls in a
version of ovr_overlay_sys with a build.rs file that doesn't build on
aarch64-linux.

https://github.com/galister/ovr_overlay_oyasumi is a fork of
https://github.com/Raphiiko/ovr_overlay_oyasumi, which is a fork of
https://github.com/TheButlah/ovr_overlay, with the latter not updated in
two years.

Luckily openvr is kinda discouraged, and openxr is the new kid on the
block, and openvr support can be feature-flagged out.

So let's do this, by adding a withOpenVr option to the derivation, that
defaults to false on aarch64-linux, unbreaking it there.

We still keep openvr support for x86_64-linux enabled, to not regress
experience for people already using openvr on x86_64-linux.
parent 6fa86b81
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@
  testers,
  wayland,
  wlx-overlay-s,
  # openvr support is broken on aarch64-linux
  withOpenVr ? !stdenv.hostPlatform.isAarch64,
}:

rustPlatform.buildRustPackage rec {
@@ -37,6 +39,17 @@ rustPlatform.buildRustPackage rec {

  cargoHash = "sha256-em5sWSty2/pZp2jTwBnLUIBgPOcoMpwELwj984XYf+k=";

  # explicitly only add openvr if withOpenVr is set to true.
  buildNoDefaultFeatures = true;
  buildFeatures = [
    "openxr"
    "osc"
    "x11"
    "wayland"
    "wayvr"
  ]
  ++ lib.optional withOpenVr "openvr";

  nativeBuildInputs = [
    makeWrapper
    pkg-config
@@ -52,11 +65,11 @@ rustPlatform.buildRustPackage rec {
    libXext
    libXrandr
    libxkbcommon
    openvr
    openxr-loader
    pipewire
    wayland
  ];
  ]
  ++ lib.optional withOpenVr openvr;

  env.SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";

@@ -79,7 +92,7 @@ rustPlatform.buildRustPackage rec {
    license = lib.licenses.gpl3Only;
    maintainers = with lib.maintainers; [ Scrumplex ];
    platforms = lib.platforms.linux;
    broken = stdenv.hostPlatform.isAarch64;
    broken = stdenv.hostPlatform.isAarch64 && withOpenVr;
    mainProgram = "wlx-overlay-s";
  };
}