nix: change build system to meson
flake.nix: change wlroots url to mirror, update version flake.lock: update wlroots & nixpkgs nix/update-inputs.sh: update wlroots url
This commit is contained in:
parent
f58bb0187b
commit
8bd7234d72
5 changed files with 55 additions and 40 deletions
|
|
@ -3,7 +3,7 @@
|
|||
stdenv,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
cmake,
|
||||
meson,
|
||||
ninja,
|
||||
libdrm,
|
||||
libinput,
|
||||
|
|
@ -27,7 +27,7 @@ stdenv.mkDerivation {
|
|||
src = ../.;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
|
@ -48,33 +48,14 @@ stdenv.mkDerivation {
|
|||
]
|
||||
++ lib.optional enableXWayland xwayland;
|
||||
|
||||
cmakeFlags =
|
||||
["-DCMAKE_BUILD_TYPE=Release"]
|
||||
++ lib.optional (!enableXWayland) "-DNO_XWAYLAND=true";
|
||||
mesonBuildType = "release";
|
||||
|
||||
# enables building with nix-supplied wlroots instead of submodule
|
||||
prePatch = ''
|
||||
sed -Ei 's/"\.\.\/wlroots\/include\/([a-zA-Z0-9./_-]+)"/<\1>/g' src/includes.hpp
|
||||
'';
|
||||
postPatch = ''
|
||||
make protocols
|
||||
'';
|
||||
mesonFlags = lib.optional (!enableXWayland) "-DNO_XWAYLAND=true";
|
||||
|
||||
postBuild = ''
|
||||
pushd ../hyprctl
|
||||
make all
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
pushd ..
|
||||
install -Dm644 ./example/hyprland.desktop -t $out/share/wayland-sessions
|
||||
install -Dm755 ./build/Hyprland -t $out/bin
|
||||
install -Dm755 ./hyprctl/hyprctl -t $out/bin
|
||||
install -Dm644 ./assets/* -t $out/share/hyprland
|
||||
install -Dm644 ./example/hyprland.conf -t $out/share/hyprland
|
||||
popd
|
||||
'';
|
||||
patches = [
|
||||
# make meson use the provided wlroots instead of the git submodule
|
||||
./meson-build.patch
|
||||
];
|
||||
|
||||
passthru.providedSessions = ["hyprland"];
|
||||
|
||||
|
|
|
|||
36
nix/meson-build.patch
Normal file
36
nix/meson-build.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
diff --git a/meson.build b/meson.build
|
||||
index 22ee4bf..5528613 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -2,16 +2,10 @@ project('Hyprland', 'cpp', 'c',
|
||||
version : '0.1',
|
||||
default_options : ['warning_level=3', 'cpp_std=c++20', 'default_library=static'])
|
||||
|
||||
-wlroots = subproject('wlroots', default_options: ['examples=false'])
|
||||
-have_xwlr = wlroots.get_variable('features').get('xwayland')
|
||||
+wlroots = dependency('wlroots', version: '>=0.16.0')
|
||||
xcb_dep = dependency('xcb', required: get_option('xwayland'))
|
||||
|
||||
-if get_option('xwayland').enabled() and not have_xwlr
|
||||
- error('Cannot enable Xwayland in Hyprland: wlroots has been built without Xwayland support')
|
||||
-endif
|
||||
-have_xwayland = xcb_dep.found() and have_xwlr
|
||||
-
|
||||
-if not have_xwayland
|
||||
+if not xcb_dep.found()
|
||||
add_project_arguments('-DNO_XWAYLAND', language: 'cpp')
|
||||
endif
|
||||
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 5d64188..a676333 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -7,7 +7,7 @@ executable('Hyprland', src,
|
||||
server_protos,
|
||||
dependency('wayland-server'),
|
||||
dependency('wayland-client'),
|
||||
- wlroots.get_variable('wlroots'),
|
||||
+ wlroots,
|
||||
dependency('cairo'),
|
||||
dependency('pango'),
|
||||
dependency('pangocairo'),
|
||||
|
|
@ -10,7 +10,7 @@ if [ $SUB_REV != $CRT_REV ]; then
|
|||
nix flake lock --update-input nixpkgs
|
||||
|
||||
# update wlroots to submodule revision
|
||||
nix flake lock --override-input wlroots "gitlab:wlroots/wlroots/$SUB_REV?host=gitlab.freedesktop.org"
|
||||
nix flake lock --override-input wlroots "github:ThatOneCalculator/wlroots-mirror/$SUB_REV"
|
||||
|
||||
# remove "dirty" mark from lockfile
|
||||
jq < flake.lock 'del(.nodes.wlroots.original.rev)' | sponge flake.lock
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue