hyprland: build wlroots form submodules
This commit is contained in:
parent
dfd8445b59
commit
b900e33ee3
4 changed files with 47 additions and 82 deletions
|
@ -4,6 +4,7 @@
|
|||
, pkg-config
|
||||
, makeWrapper
|
||||
, meson
|
||||
, cmake
|
||||
, ninja
|
||||
, binutils
|
||||
, cairo
|
||||
|
@ -21,15 +22,19 @@
|
|||
, mesa
|
||||
, pango
|
||||
, pciutils
|
||||
, python3
|
||||
, systemd
|
||||
, tomlplusplus
|
||||
, udis86-hyprland
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wayland-scanner
|
||||
, wlroots-hyprland
|
||||
, xcbutilwm
|
||||
, xwayland
|
||||
, hwdata
|
||||
, seatd
|
||||
, libdisplay-info
|
||||
, libliftoff
|
||||
, xorg
|
||||
, debug ? false
|
||||
, enableXWayland ? true
|
||||
, legacyRenderer ? false
|
||||
|
@ -44,24 +49,17 @@ assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been remov
|
|||
assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed.";
|
||||
assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
|
||||
|
||||
let
|
||||
wlr = wlroots-hyprland.override { inherit enableXWayland; };
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hyprland" + lib.optionalString debug "-debug";
|
||||
version = "0.39.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprwm";
|
||||
repo = finalAttrs.pname;
|
||||
fetchSubmodules = true;
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Urb/njWiHYUudXpmK8EKl9Z58esTIG0PxXw5LuM2r5g=";
|
||||
hash = "sha256-7L5rqQRYH2iyyP5g3IdXJSlATfgnKhuYMf65E48MVKw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# make meson use the provided dependencies instead of the git submodules
|
||||
"${finalAttrs.src}/nix/patches/meson-build.patch"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix hardcoded paths to /usr installation
|
||||
sed -i "s#/usr#$out#" src/render/OpenGL.cpp
|
||||
|
@ -69,12 +67,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
# Generate version.h
|
||||
cp src/version.h.in src/version.h
|
||||
substituteInPlace src/version.h \
|
||||
--replace "@HASH@" '${finalAttrs.src.rev}' \
|
||||
--replace "@BRANCH@" "" \
|
||||
--replace "@MESSAGE@" "" \
|
||||
--replace "@DATE@" "2024-04-16" \
|
||||
--replace "@TAG@" "" \
|
||||
--replace "@DIRTY@" ""
|
||||
--replace-fail "@HASH@" '${finalAttrs.src.rev}' \
|
||||
--replace-fail "@BRANCH@" "" \
|
||||
--replace-fail "@MESSAGE@" "" \
|
||||
--replace-fail "@DATE@" "2024-04-16" \
|
||||
--replace-fail "@TAG@" "" \
|
||||
--replace-fail "@DIRTY@" ""
|
||||
'';
|
||||
|
||||
depsBuildBuild = [
|
||||
|
@ -89,6 +87,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
ninja
|
||||
pkg-config
|
||||
wayland-scanner
|
||||
cmake # for subproject udis86
|
||||
python3
|
||||
];
|
||||
|
||||
outputs = [
|
||||
|
@ -97,36 +97,40 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
"dev"
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
wlr.buildInputs ++ [
|
||||
cairo
|
||||
git
|
||||
hyprcursor
|
||||
hyprland-protocols
|
||||
hyprlang
|
||||
libGL
|
||||
libdrm
|
||||
libinput
|
||||
libxkbcommon
|
||||
mesa
|
||||
udis86-hyprland
|
||||
wayland
|
||||
wayland-protocols
|
||||
pango
|
||||
pciutils
|
||||
tomlplusplus
|
||||
wlr
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ]
|
||||
++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
|
||||
++ lib.optionals withSystemd [ systemd ];
|
||||
buildInputs = [
|
||||
cairo
|
||||
git
|
||||
hyprcursor
|
||||
hyprland-protocols
|
||||
hyprlang
|
||||
libGL
|
||||
libdrm
|
||||
libinput
|
||||
libxkbcommon
|
||||
mesa
|
||||
wayland
|
||||
wayland-protocols
|
||||
pango
|
||||
pciutils
|
||||
tomlplusplus
|
||||
# for subproject wlroots-hyprland
|
||||
hwdata
|
||||
seatd
|
||||
libliftoff
|
||||
libdisplay-info
|
||||
xorg.xcbutilerrors
|
||||
xorg.xcbutilrenderutil
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ]
|
||||
++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
|
||||
++ lib.optionals withSystemd [ systemd ];
|
||||
|
||||
mesonBuildType =
|
||||
if debug
|
||||
then "debug"
|
||||
else "release";
|
||||
|
||||
mesonAutoFeatures = "disabled";
|
||||
mesonAutoFeatures = "enabled";
|
||||
|
||||
mesonFlags = [
|
||||
(lib.mesonEnable "xwayland" enableXWayland)
|
||||
|
@ -135,7 +139,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
];
|
||||
|
||||
postInstall = ''
|
||||
ln -s ${wlr}/include/wlr $dev/include/hyprland/wlroots
|
||||
${lib.optionalString wrapRuntimeDeps ''
|
||||
wrapProgram $out/bin/Hyprland \
|
||||
--suffix PATH : ${lib.makeBinPath [binutils pciutils stdenv.cc]}
|
||||
|
@ -150,6 +153,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ wozeparrot fufexan ];
|
||||
mainProgram = "Hyprland";
|
||||
platforms = wlr.meta.platforms;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
{ udis86
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
udis86.overrideAttrs (old: {
|
||||
version = "unstable-2022-10-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "canihavesomecoffee";
|
||||
repo = "udis86";
|
||||
rev = "5336633af70f3917760a6d441ff02d93477b0c86";
|
||||
hash = "sha256-HifdUQPGsKQKQprByeIznvRLONdOXeolOsU5nkwIv3g=";
|
||||
};
|
||||
|
||||
patches = [ ];
|
||||
})
|
|
@ -1,20 +0,0 @@
|
|||
{ fetchFromGitHub
|
||||
, wlroots
|
||||
, enableXWayland ? true
|
||||
}:
|
||||
wlroots.overrideAttrs
|
||||
(old: {
|
||||
inherit enableXWayland;
|
||||
version = "0.18.0-dev";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprwm";
|
||||
repo = "wlroots-hyprland";
|
||||
rev = "611a4f24cd2384378f6e500253983107c6656c64";
|
||||
hash = "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=";
|
||||
};
|
||||
|
||||
patches = [ ]; # don't inherit old.patches
|
||||
|
||||
pname = "${old.pname}-hyprland";
|
||||
})
|
|
@ -5561,10 +5561,7 @@ with pkgs;
|
|||
hypr = callPackage ../applications/window-managers/hyprwm/hypr {
|
||||
cairo = cairo.override { xcbSupport = true; }; };
|
||||
|
||||
hyprland = callPackage ../applications/window-managers/hyprwm/hyprland {
|
||||
wlroots-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { };
|
||||
udis86-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { };
|
||||
};
|
||||
hyprland = callPackage ../applications/window-managers/hyprwm/hyprland { };
|
||||
|
||||
hyprland-autoname-workspaces = callPackage ../applications/misc/hyprland-autoname-workspaces { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue