nix: build improvements (#5952)

* scripts: allow using existing variable values in generateVersion.sh

* nix: populate versioning variables

* nix: remove unused meson input

* nix: remove unnecessary hyprland-protocols dependency

* Nix: remove nixConfig from flake

It's more annoying than helpful.

* CI/Nix: fix PR build failure

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
This commit is contained in:
André Silva 2024-05-10 23:51:53 +01:00 committed by GitHub
parent 6e594e4416
commit a8ab1b1679
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 32 deletions

View file

@ -4,6 +4,7 @@ on: [push, pull_request, workflow_dispatch]
jobs: jobs:
update-inputs: update-inputs:
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: ./.github/workflows/nix-update-inputs.yml uses: ./.github/workflows/nix-update-inputs.yml
secrets: inherit secrets: inherit

View file

@ -74,9 +74,6 @@
# hyprland-extras # hyprland-extras
xdg-desktop-portal-hyprland xdg-desktop-portal-hyprland
# dependencies
hyprland-protocols
; ;
}); });
@ -97,9 +94,4 @@
nixosModules.default = import ./nix/module.nix inputs; nixosModules.default = import ./nix/module.nix inputs;
homeManagerModules.default = import ./nix/hm-module.nix self; homeManagerModules.default = import ./nix/hm-module.nix self;
}; };
nixConfig = {
extra-substituters = ["https://hyprland.cachix.org"];
extra-trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
};
} }

View file

@ -5,7 +5,6 @@
pkgconf, pkgconf,
makeWrapper, makeWrapper,
cmake, cmake,
meson,
ninja, ninja,
binutils, binutils,
cairo, cairo,
@ -13,7 +12,6 @@
fribidi, fribidi,
git, git,
hyprcursor, hyprcursor,
hyprland-protocols,
hyprlang, hyprlang,
hyprwayland-scanner, hyprwayland-scanner,
jq, jq,
@ -72,22 +70,12 @@ assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been remov
postPatch = '' postPatch = ''
# Fix hardcoded paths to /usr installation # Fix hardcoded paths to /usr installation
sed -i "s#/usr#$out#" src/render/OpenGL.cpp sed -i "s#/usr#$out#" src/render/OpenGL.cpp
# Generate version.h
cp src/version.h.in src/version.h
substituteInPlace src/version.h \
--replace-warn "@HASH@" '${commit}' \
--replace-warn "@BRANCH@" "" \
--replace-warn "@MESSAGE@" "" \
--replace-warn "@DATE@" "${date}" \
--replace-warn "@TAG@" "" \
--replace-warn "@DIRTY@" '${
if commit == ""
then "dirty"
else ""
}'
''; '';
DATE = date;
HASH = commit;
DIRTY = if commit == "" then "dirty" else "";
nativeBuildInputs = lib.concatLists [ nativeBuildInputs = lib.concatLists [
[ [
hyprwayland-scanner hyprwayland-scanner
@ -118,7 +106,6 @@ assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been remov
fribidi fribidi
git git
hyprcursor.dev hyprcursor.dev
hyprland-protocols
hyprlang hyprlang
libGL libGL
libdrm libdrm

View file

@ -1,13 +1,13 @@
#!/bin/sh #!/bin/sh
cp -fr ./src/version.h.in ./src/version.h cp -fr ./src/version.h.in ./src/version.h
HASH=$(git rev-parse HEAD) HASH=${HASH-$(git rev-parse HEAD)}
BRANCH=$(git branch --show-current) BRANCH=${BRANCH-$(git branch --show-current)}
MESSAGE=$(git show ${GIT_COMMIT_HASH} | head -n 5 | tail -n 1 | sed -e 's/#//g' -e 's/\"//g') MESSAGE=${MESSAGE-$(git show | head -n 5 | tail -n 1 | sed -e 's/#//g' -e 's/\"//g')}
DATE=$(git show ${GIT_COMMIT_HASH} --no-patch --format=%cd --date=local) DATE=${DATE-$(git show --no-patch --format=%cd --date=local)}
DIRTY=$(git diff-index --quiet HEAD -- || echo dirty) DIRTY=${DIRTY-$(git diff-index --quiet HEAD -- || echo dirty)}
TAG=$(git describe --tags) TAG=${TAG-$(git describe --tags)}
COMMITS=$(git rev-list --count HEAD) COMMITS=${COMMITS-$(git rev-list --count HEAD)}
sed -i -e "s#@HASH@#${HASH}#" ./src/version.h sed -i -e "s#@HASH@#${HASH}#" ./src/version.h
sed -i -e "s#@BRANCH@#${BRANCH}#" ./src/version.h sed -i -e "s#@BRANCH@#${BRANCH}#" ./src/version.h