aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2024-12-27 09:57:46 +0200
committerEfraim Flashner <efraim@flashner.co.il>2024-12-27 09:57:46 +0200
commit831b94a1efcea8f793afc949b5123a6235c9bb1a (patch)
treea3bd55f625c86de0a5afba910b8cfbc483fa1d6c
parentf3f3cb06b0a852f96a1f76f6168307583e6dfac5 (diff)
downloadguix-831b94a1efcea8f793afc949b5123a6235c9bb1a.tar.gz
guix-831b94a1efcea8f793afc949b5123a6235c9bb1a.zip
gnu: helvum: Use meson-build-system-modules.
* gnu/packages-rust-apps.scm (helvum)[arguments]: Don't install the sources. Use upstream's expected vendor-dir for rust crates. Add meson to imported-modules and modules. Remove custom 'install-extra phase. Add meson's 'configure phase. Replace 'build, 'check and 'install with meson's phases. [native-inputs]: Add meson, ninja. Change-Id: Ia45170ab70ad3c2dcf7abc4a8f05a73bf93917c9
-rw-r--r--gnu/packages/rust-apps.scm81
1 files changed, 37 insertions, 44 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 468468bd3c..ddad50db44 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -50,8 +50,9 @@
(define-module (gnu packages rust-apps)
#:use-module (guix build-system cargo)
- #:use-module (guix build-system pyproject)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system meson)
+ #:use-module (guix build-system pyproject)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -63,6 +64,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-apple)
@@ -93,6 +95,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages ninja)
#:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
#:use-module (gnu packages pcre)
@@ -1167,67 +1170,57 @@ gitoxide CLI.")
(base32 "1q8gkx7djrfdl8fykppsqkxiadsq47v0xhj612nxlrvjz8n77ygn"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-glib" ,rust-glib-0.18)
+ `(#:install-source? #f
+ #:vendor-dir "vendor"
+ #:cargo-inputs (("rust-glib" ,rust-glib-0.18)
("rust-libadwaita" ,rust-libadwaita-0.5)
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-once-cell" ,rust-once-cell-1)
("rust-pipewire" ,rust-pipewire-0.7))
- #:imported-modules (,@%glib-or-gtk-build-system-modules
+ #:imported-modules (,@%meson-build-system-modules
+ ,@%glib-or-gtk-build-system-modules
,@%cargo-build-system-modules)
#:modules ((guix build cargo-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ ((guix build meson-build-system) #:prefix meson:)
(guix build utils))
#:phases
(modify-phases %standard-phases
- (add-before 'install 'install-extra
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (source (assoc-ref inputs "source"))
- (share (string-append out "/share"))
- (hicolor (string-append share "/icons/hicolor")))
- (mkdir-p hicolor)
- (with-directory-excursion hicolor
- (mkdir-p "scalable/apps")
- (install-file
- (string-append source "/data/icons/org.pipewire.Helvum.svg")
- "scalable/apps")
- (mkdir-p "symbolic/apps")
- (install-file
- (string-append
- source "/data/icons/org.pipewire.Helvum-symbolic.svg")
- "symbolic/apps"))
- (with-directory-excursion share
- (mkdir-p "applications")
- (with-directory-excursion "applications"
- (install-file
- (string-append
- source "/data/org.pipewire.Helvum.desktop.in") ".")
- (substitute* "org.pipewire.Helvum.desktop.in"
- (("@icon@") "org.pipewire.Helvum")
- (("Exec=helvum")
- (string-append "Exec="
- (string-append out "/bin/helvum"))))
- (rename-file "org.pipewire.Helvum.desktop.in"
- "org.pipewire.Helvum.desktop"))
- (mkdir-p "metainfo")
- (with-directory-excursion "metainfo"
- (install-file
- (string-append
- source
- "/data/org.pipewire.Helvum.metainfo.xml.in") ".")
- (substitute* "org.pipewire.Helvum.metainfo.xml.in"
- (("@app-id@") "org.pipewire.Helvum"))
- (rename-file "org.pipewire.Helvum.metainfo.xml.in"
- "org.pipewire.Helvum.metainfo.xml"))))))
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(assoc-ref glib-or-gtk:%standard-phases
'generate-gdk-pixbuf-loaders-cache-file))
+ (add-after 'unpack 'prepare-for-build
+ (lambda _
+ (substitute* "meson.build"
+ (("gtk_update_icon_cache: true")
+ "gtk_update_icon_cache: false")
+ (("update_desktop_database: true")
+ "update_desktop_database: false"))
+ (delete-file "Cargo.lock")))
+ ;; Add meson-configure phase here and not before 'configure because
+ ;; the meson 'configure phase changes to a different directory and
+ ;; we need it created before unpacking the crates.
+ (add-before 'unpack-rust-crates 'meson-configure
+ (lambda args
+ (apply (assoc-ref meson:%standard-phases 'configure)
+ #:build-type "debugoptimized"
+ #:configure-flags '()
+ args)))
+ (replace 'build
+ (assoc-ref meson:%standard-phases 'build))
+ (replace 'check
+ (lambda args
+ (apply (assoc-ref meson:%standard-phases 'check)
+ #:test-options '()
+ args)))
+ (replace 'install
+ (assoc-ref meson:%standard-phases 'install))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'install 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
- (native-inputs (list pkg-config clang))
+ (native-inputs (list clang pkg-config meson ninja))
(inputs (list glib gtk libadwaita pipewire))
(home-page "https://gitlab.freedesktop.org/pipewire/helvum")
(synopsis "GTK patchbay for pipewire")