1{ stdenv
2, lib
3, fetchFromGitHub
4, fetchpatch
5, cmake
6, pkg-config
7, wayland-scanner
8, wrapQtAppsHook
9, qtbase
10, qtquick3d
11, qwlroots
12, wayland
13, wayland-protocols
14, wlr-protocols
15, pixman
16, libdrm
17, nixos-artwork
18}:
19
20stdenv.mkDerivation (finalAttrs: {
21 pname = "waylib";
22 version = "0.1.1";
23
24 src = fetchFromGitHub {
25 owner = "vioken";
26 repo = "waylib";
27 rev = finalAttrs.version;
28 hash = "sha256-3IdrChuXQyQGhJ/7kTqmkV0PyuSNP53Y0Po01Fc9Qi0=";
29 };
30
31 patches = [
32 (fetchpatch {
33 name = "fix-build-on-qt-6_7.patch";
34 url = "https://github.com/vioken/waylib/commit/09875ebedb074089ec57e71cbc8d8011f555be70.patch";
35 hash = "sha256-ulXlLxn7TOlXSl4N5mjXCy3PJhxVeyDwbwKeV9J/FSI=";
36 })
37 ];
38
39 postPatch = ''
40 substituteInPlace examples/tinywl/OutputDelegate.qml \
41 --replace "/usr/share/wallpapers/deepin/desktop.jpg" \
42 "${nixos-artwork.wallpapers.simple-blue}/share/backgrounds/nixos/nix-wallpaper-simple-blue.png"
43 '';
44
45 nativeBuildInputs = [
46 cmake
47 pkg-config
48 wayland-scanner
49 wrapQtAppsHook
50 ];
51
52 buildInputs = [
53 qtbase
54 qtquick3d
55 wayland
56 wayland-protocols
57 wlr-protocols
58 pixman
59 libdrm
60 ];
61
62 propagatedBuildInputs = [
63 qwlroots
64 ];
65
66 cmakeFlags = [
67 (lib.cmakeBool "INSTALL_TINYWL" true)
68 ];
69
70 strictDeps = true;
71
72 outputs = [ "out" "dev" "bin" ];
73
74 meta = {
75 description = "A wrapper for wlroots based on Qt";
76 homepage = "https://github.com/vioken/waylib";
77 license = with lib.licenses; [ gpl3Only lgpl3Only asl20 ];
78 outputsToInstall = [ "out" ];
79 platforms = lib.platforms.linux;
80 maintainers = with lib.maintainers; [ rewine ];
81 };
82})
83