forked from mirrors/nixpkgs
wlroots: deduplicate builders
This commit is contained in:
parent
7229e41065
commit
ead322b582
|
@ -1,64 +0,0 @@
|
|||
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner
|
||||
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
|
||||
, libcap, mesa, xorg
|
||||
, libpng, ffmpeg_4, seatd
|
||||
|
||||
, enableXWayland ? true, xwayland ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wlroots";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "wlroots";
|
||||
rev = version;
|
||||
sha256 = "1sshp3lvlkl1i670kxhwsb4xzxl8raz6769kqvgmxzcb63ns9ay1";
|
||||
};
|
||||
|
||||
# $out for the library and $examples for the example programs (in examples):
|
||||
outputs = [ "out" "examples" ];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
|
||||
|
||||
buildInputs = [
|
||||
libGL wayland wayland-protocols libinput libxkbcommon pixman
|
||||
xorg.xcbutilwm xorg.libX11 libcap xorg.xcbutilimage xorg.xcbutilerrors mesa
|
||||
libpng ffmpeg_4 xorg.xcbutilrenderutil seatd
|
||||
]
|
||||
++ lib.optional enableXWayland xwayland
|
||||
;
|
||||
|
||||
mesonFlags =
|
||||
lib.optional (!enableXWayland) "-Dxwayland=disabled"
|
||||
;
|
||||
|
||||
postFixup = ''
|
||||
# Install ALL example programs to $examples:
|
||||
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
|
||||
# screenshot output-layout multi-pointer rotation tablet touch pointer
|
||||
# simple
|
||||
mkdir -p $examples/bin
|
||||
cd ./examples
|
||||
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
|
||||
cp "$binary" "$examples/bin/wlroots-$binary"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modular Wayland compositor library";
|
||||
longDescription = ''
|
||||
Pluggable, composable, unopinionated modules for building a Wayland
|
||||
compositor; or about 50,000 lines of code you were going to write anyway.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
{ lib, stdenv, fetchFromGitLab, meson, ninja, pkg-config, wayland-scanner
|
||||
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
|
||||
,libcap, mesa, xorg
|
||||
, libpng, ffmpeg_4, seatd, vulkan-loader, glslang
|
||||
, nixosTests
|
||||
|
||||
, enableXWayland ? true, xwayland ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wlroots";
|
||||
version = "0.15.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "wlroots";
|
||||
repo = "wlroots";
|
||||
rev = version;
|
||||
sha256 = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
|
||||
};
|
||||
|
||||
# $out for the library and $examples for the example programs (in examples):
|
||||
outputs = [ "out" "examples" ];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang ];
|
||||
|
||||
buildInputs = [
|
||||
libGL wayland wayland-protocols libinput libxkbcommon pixman
|
||||
xorg.xcbutilwm xorg.libX11 libcap xorg.xcbutilimage xorg.xcbutilerrors mesa
|
||||
libpng ffmpeg_4 xorg.xcbutilrenderutil seatd vulkan-loader
|
||||
]
|
||||
++ lib.optional enableXWayland xwayland
|
||||
;
|
||||
|
||||
mesonFlags =
|
||||
lib.optional (!enableXWayland) "-Dxwayland=disabled"
|
||||
;
|
||||
|
||||
postFixup = ''
|
||||
# Install ALL example programs to $examples:
|
||||
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
|
||||
# screenshot output-layout multi-pointer rotation tablet touch pointer
|
||||
# simple
|
||||
mkdir -p $examples/bin
|
||||
cd ./examples
|
||||
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
|
||||
cp "$binary" "$examples/bin/wlroots-$binary"
|
||||
done
|
||||
'';
|
||||
|
||||
# Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots):
|
||||
passthru.tests.tinywl = nixosTests.tinywl;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modular Wayland compositor library";
|
||||
longDescription = ''
|
||||
Pluggable, composable, unopinionated modules for building a Wayland
|
||||
compositor; or about 50,000 lines of code you were going to write anyway.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
124
pkgs/development/libraries/wlroots/default.nix
Normal file
124
pkgs/development/libraries/wlroots/default.nix
Normal file
|
@ -0,0 +1,124 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wayland-scanner
|
||||
, libGL
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, libinput
|
||||
, libxkbcommon
|
||||
, pixman
|
||||
, libcap
|
||||
, mesa
|
||||
, xorg
|
||||
, libpng
|
||||
, ffmpeg_4
|
||||
, hwdata
|
||||
, seatd
|
||||
, vulkan-loader
|
||||
, glslang
|
||||
, nixosTests
|
||||
|
||||
, enableXWayland ? true
|
||||
, xwayland ? null
|
||||
}:
|
||||
|
||||
let
|
||||
generic = { version, hash, extraBuildInputs ? [ ], extraNativeBuildInputs ? [ ], extraPatch ? "" }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wlroots";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "wlroots";
|
||||
repo = "wlroots";
|
||||
rev = version;
|
||||
inherit hash;
|
||||
};
|
||||
|
||||
postPatch = extraPatch;
|
||||
|
||||
# $out for the library and $examples for the example programs (in examples):
|
||||
outputs = [ "out" "examples" ];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]
|
||||
++ extraNativeBuildInputs;
|
||||
|
||||
buildInputs = [
|
||||
ffmpeg_4
|
||||
libGL
|
||||
libcap
|
||||
libinput
|
||||
libpng
|
||||
libxkbcommon
|
||||
mesa
|
||||
pixman
|
||||
seatd
|
||||
vulkan-loader
|
||||
wayland
|
||||
wayland-protocols
|
||||
xorg.libX11
|
||||
xorg.xcbutilerrors
|
||||
xorg.xcbutilimage
|
||||
xorg.xcbutilrenderutil
|
||||
xorg.xcbutilwm
|
||||
]
|
||||
++ lib.optional enableXWayland xwayland
|
||||
++ extraBuildInputs;
|
||||
|
||||
mesonFlags =
|
||||
lib.optional (!enableXWayland) "-Dxwayland=disabled"
|
||||
;
|
||||
|
||||
postFixup = ''
|
||||
# Install ALL example programs to $examples:
|
||||
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
|
||||
# screenshot output-layout multi-pointer rotation tablet touch pointer
|
||||
# simple
|
||||
mkdir -p $examples/bin
|
||||
cd ./examples
|
||||
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
|
||||
cp "$binary" "$examples/bin/wlroots-$binary"
|
||||
done
|
||||
'';
|
||||
|
||||
# Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots):
|
||||
passthru.tests.tinywl = nixosTests.tinywl;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A modular Wayland compositor library";
|
||||
longDescription = ''
|
||||
Pluggable, composable, unopinionated modules for building a Wayland
|
||||
compositor; or about 50,000 lines of code you were going to write anyway.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
rec {
|
||||
wlroots_0_14 = generic {
|
||||
version = "0.14.1";
|
||||
hash = "sha256-wauk7TCL/V7fxjOZY77KiPbfydIc9gmOiYFOuum4UOs=";
|
||||
};
|
||||
|
||||
wlroots_0_15 = generic {
|
||||
version = "0.15.1";
|
||||
hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
|
||||
extraBuildInputs = [ vulkan-loader ];
|
||||
extraNativeBuildInputs = [ glslang ];
|
||||
};
|
||||
|
||||
wlroots = wlroots_0_15;
|
||||
}
|
|
@ -29397,9 +29397,10 @@ with pkgs;
|
|||
electron = electron_17;
|
||||
};
|
||||
|
||||
wlroots = wlroots_0_15;
|
||||
wlroots_0_14 = callPackage ../development/libraries/wlroots/0.14.nix { };
|
||||
wlroots_0_15 = callPackage ../development/libraries/wlroots/0.15.nix { };
|
||||
inherit (callPackages ../development/libraries/wlroots {})
|
||||
wlroots_0_14
|
||||
wlroots_0_15
|
||||
wlroots;
|
||||
|
||||
sway-unwrapped = callPackage ../applications/window-managers/sway { };
|
||||
sway = callPackage ../applications/window-managers/sway/wrapper.nix { };
|
||||
|
|
Loading…
Reference in a new issue