mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 10:25:58 +01:00
commit
bd41776a5a
7 changed files with 83 additions and 42 deletions
26
.github/workflows/version-update.sh
vendored
Normal file
26
.github/workflows/version-update.sh
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
name: "Nix & Meson: update version"
|
||||||
|
|
||||||
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Clone repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Update flake and meson version
|
||||||
|
run: |
|
||||||
|
REGEX="([0-9]+(\.[0-9a-zA-Z]+)+)"
|
||||||
|
|
||||||
|
CRT_REV=$(git show-ref --tags --head --abbrev | head -n 1 | head -c 7)
|
||||||
|
TAG_REV=$(git show-ref --tags --abbrev | tail -n 1 | head -c 7)
|
||||||
|
CRT_VER=$(sed -nEe "/$REGEX/{p;q;}" meson.build | awk -F\' '{print $2}')
|
||||||
|
VERSION=$(git show-ref --tags --abbrev | tail -n 1 | tail -c +20)
|
||||||
|
|
||||||
|
if [[ $TAG_REV = $CRT_REV ]] || [[ $CRT_VER != $VERSION ]]; then
|
||||||
|
sed -Ei "s/$REGEX/$VERSION/g" meson.build
|
||||||
|
sed -Ei "s/$REGEX/$VERSION/g" flake.nix
|
||||||
|
fi
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: "[gha] bump flake and meson version"
|
20
flake.lock
20
flake.lock
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1654593855,
|
"lastModified": 1655221618,
|
||||||
"narHash": "sha256-c+SyXvj7THre87OyIdZfRVR+HhI/g1ZDrQ3VUtTuHkU=",
|
"narHash": "sha256-ht8HRFthDKzYt+il+sGgkBwrv+Ex2l8jdGVpsrPfFME=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "033bd4fa9a8fbe0c68a88e925d9a884161044b25",
|
"rev": "6616de389ed55fba6eeba60377fc04732d5a207c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -25,19 +25,17 @@
|
||||||
"wlroots": {
|
"wlroots": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"host": "gitlab.freedesktop.org",
|
|
||||||
"lastModified": 1654618691,
|
"lastModified": 1654618691,
|
||||||
"narHash": "sha256-8y3u8CoigjoZOVbA2wCWBHlDNEakv0AVxU46/cOC00s=",
|
"narHash": "sha256-8y3u8CoigjoZOVbA2wCWBHlDNEakv0AVxU46/cOC00s=",
|
||||||
"owner": "wlroots",
|
"owner": "ThatOneCalculator",
|
||||||
"repo": "wlroots",
|
"repo": "wlroots-mirror",
|
||||||
"rev": "b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc",
|
"rev": "b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc",
|
||||||
"type": "gitlab"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"host": "gitlab.freedesktop.org",
|
"owner": "ThatOneCalculator",
|
||||||
"owner": "wlroots",
|
"repo": "wlroots-mirror",
|
||||||
"repo": "wlroots",
|
"type": "github"
|
||||||
"type": "gitlab"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
wlroots = {
|
wlroots = {
|
||||||
url = "gitlab:wlroots/wlroots?host=gitlab.freedesktop.org";
|
url = "github:ThatOneCalculator/wlroots-mirror";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
src = inputs.wlroots;
|
src = inputs.wlroots;
|
||||||
});
|
});
|
||||||
hyprland = prev.callPackage ./nix/default.nix {
|
hyprland = prev.callPackage ./nix/default.nix {
|
||||||
version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101"));
|
version = "0.5.0beta" + "+date=" + (mkDate (self.lastModifiedDate or "19700101"));
|
||||||
wlroots = wlroots-hyprland;
|
wlroots = wlroots-hyprland;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('Hyprland', 'cpp', 'c',
|
project('Hyprland', 'cpp', 'c',
|
||||||
version : '0.1',
|
version : '0.5.0beta',
|
||||||
default_options : ['warning_level=3', 'cpp_std=c++20', 'default_library=static'])
|
default_options : ['warning_level=3', 'cpp_std=c++20', 'default_library=static'])
|
||||||
|
|
||||||
wlroots = subproject('wlroots', default_options: ['examples=false'])
|
wlroots = subproject('wlroots', default_options: ['examples=false'])
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
stdenv,
|
stdenv,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
cmake,
|
meson,
|
||||||
ninja,
|
ninja,
|
||||||
libdrm,
|
libdrm,
|
||||||
libinput,
|
libinput,
|
||||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation {
|
||||||
src = ../.;
|
src = ../.;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
];
|
];
|
||||||
|
@ -48,33 +48,14 @@ stdenv.mkDerivation {
|
||||||
]
|
]
|
||||||
++ lib.optional enableXWayland xwayland;
|
++ lib.optional enableXWayland xwayland;
|
||||||
|
|
||||||
cmakeFlags =
|
mesonBuildType = "release";
|
||||||
["-DCMAKE_BUILD_TYPE=Release"]
|
|
||||||
++ lib.optional (!enableXWayland) "-DNO_XWAYLAND=true";
|
|
||||||
|
|
||||||
# enables building with nix-supplied wlroots instead of submodule
|
mesonFlags = lib.optional (!enableXWayland) "-DNO_XWAYLAND=true";
|
||||||
prePatch = ''
|
|
||||||
sed -Ei 's/"\.\.\/wlroots\/include\/([a-zA-Z0-9./_-]+)"/<\1>/g' src/includes.hpp
|
|
||||||
'';
|
|
||||||
postPatch = ''
|
|
||||||
make protocols
|
|
||||||
'';
|
|
||||||
|
|
||||||
postBuild = ''
|
patches = [
|
||||||
pushd ../hyprctl
|
# make meson use the provided wlroots instead of the git submodule
|
||||||
make all
|
./meson-build.patch
|
||||||
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
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru.providedSessions = ["hyprland"];
|
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
|
nix flake lock --update-input nixpkgs
|
||||||
|
|
||||||
# update wlroots to submodule revision
|
# 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
|
# remove "dirty" mark from lockfile
|
||||||
jq < flake.lock 'del(.nodes.wlroots.original.rev)' | sponge flake.lock
|
jq < flake.lock 'del(.nodes.wlroots.original.rev)' | sponge flake.lock
|
||||||
|
|
Loading…
Reference in a new issue