Meson: try to find udis86 through pkgconfig, fallback to subproject

Only the fork provides a .pc file, so there's no risk of linking the wrong
lib version. If pkg-config can't find it (most cases), fall back to using
the subproject through the wrap file.
This commit is contained in:
Mihai Fufezan 2024-09-22 21:20:35 +03:00
parent 14942bca60
commit 27211c71e9
5 changed files with 29 additions and 11 deletions

View file

@ -6,7 +6,6 @@
pkgconf,
makeWrapper,
meson,
cmake,
ninja,
aquamarine,
binutils,
@ -17,7 +16,6 @@
hyprlang,
hyprutils,
hyprwayland-scanner,
jq,
libGL,
libdrm,
libexecinfo,
@ -27,9 +25,9 @@
mesa,
pango,
pciutils,
python3,
systemd,
tomlplusplus,
udis86-hyprland,
wayland,
wayland-protocols,
wayland-scanner,
@ -96,13 +94,10 @@ in
nativeBuildInputs = [
hyprwayland-scanner
jq
makeWrapper
meson
cmake
ninja
pkg-config
python3 # for udis86
];
outputs = [
@ -129,6 +124,7 @@ in
pango
pciutils
tomlplusplus
udis86-hyprland
wayland
wayland-protocols
wayland-scanner

View file

@ -26,6 +26,7 @@ in {
inputs.hyprlang.overlays.default
inputs.hyprutils.overlays.default
inputs.hyprwayland-scanner.overlays.default
self.overlays.udis86
# Hyprland packages themselves
(final: prev: let
@ -64,4 +65,20 @@ in {
hyprland-extras = lib.composeManyExtensions [
inputs.xdph.overlays.xdg-desktop-portal-hyprland
];
# udis86 from nixpkgs is too old, and also does not provide a .pc file
# this version is the one used in the git submodule, and allows us to
# fetch the source without '?submodules=1'
udis86 = final: prev: {
udis86-hyprland = prev.udis86.overrideAttrs (self: super: {
src = final.fetchFromGitHub {
owner = "canihavesomecoffee";
repo = "udis86";
rev = "5336633af70f3917760a6d441ff02d93477b0c86";
hash = "sha256-HifdUQPGsKQKQprByeIznvRLONdOXeolOsU5nkwIv3g=";
};
patches = [];
});
};
}