mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-22 14:09:48 +01:00
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:
parent
14942bca60
commit
27211c71e9
5 changed files with 29 additions and 11 deletions
|
@ -43,10 +43,6 @@ xcb_xfixes_dep = dependency('xcb-xfixes', required: get_option('xwayland'))
|
|||
|
||||
gio_dep = dependency('gio-2.0', required: true)
|
||||
|
||||
cmake = import('cmake')
|
||||
udis = cmake.subproject('udis86')
|
||||
udis86 = udis.dependency('libudis86')
|
||||
|
||||
if not xcb_dep.found()
|
||||
add_project_arguments('-DNO_XWAYLAND', language: 'cpp')
|
||||
endif
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = [];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
|
@ -31,7 +31,11 @@ executable(
|
|||
backtrace_dep,
|
||||
epoll_dep,
|
||||
gio_dep,
|
||||
udis86,
|
||||
|
||||
# Try to find canihavesomecoffee's udis86 using pkgconfig
|
||||
# vmt/udis86 does not provide a .pc file and won't be detected this way
|
||||
# Falls back to using the subproject through udis86.wrap
|
||||
dependency('udis86'),
|
||||
|
||||
dependency('pixman-1'),
|
||||
dependency('gl', 'opengl'),
|
||||
|
|
5
subprojects/udis86.wrap
Normal file
5
subprojects/udis86.wrap
Normal file
|
@ -0,0 +1,5 @@
|
|||
[wrap-file]
|
||||
method = cmake
|
||||
|
||||
[provide]
|
||||
udis86 = libudis86_dep
|
Loading…
Reference in a new issue