gnu: Add fcitx5-gtk4.

* gnu/packages/fcitx5.scm (fcitx5-gtk4): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Zhu Zihao 2022-03-21 09:16:38 +08:00 committed by Ludovic Courtès
parent ef3cae59a2
commit 287b98031f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -252,6 +252,50 @@ (define (split-immodule gtk-version output)
@end table")
(license license:lgpl2.1+)))
;; XXX: This package is separated from fcitx5-gtk for following reasons.
;; 1. GTK4 has a lot more dependencies, some of which maybe unavailable on
;; platforms other than x86_64. See <https://issues.guix.gnu.org/53648>.
;; 2. GTK4 now propagates pango@1.50, it will conflict with GTK3 and GTK2
;; (propagates pango@1.48) if they're all in the inputs of same package.
;; See <https://issues.guix.gnu.org/54261>.
(define-public fcitx5-gtk4
(package
(inherit fcitx5-gtk)
(name "fcitx5-gtk4")
(arguments
(list
#:tests? #f ;No test
#:configure-flags
#~(list (string-append "-DCMAKE_CXX_FLAGS=-I"
#$(this-package-input "fcitx5-gtk")
"/include/Fcitx5/GClient")
"-DENABLE_GTK2_IM_MODULE=OFF"
"-DENABLE_GTK3_IM_MODULE=OFF")
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'fix-gclient
(lambda* (#:key inputs #:allow-other-keys)
(define gclient
(search-input-file inputs "lib/libFcitx5GClient.so"))
;; Force cmake search libFcitx5GClient.so in library search
;; path instead of compiling again.
(substitute* "gtk4/CMakeLists.txt"
(("Fcitx5::GClient")
gclient))))
(add-before 'build 'enter-gtk4-subdirectory
(lambda _
(chdir "gtk4")))
(add-after 'install 'leave-gtk4-subdirectory
(lambda _
(chdir ".."))))))
(inputs
(modify-inputs (package-inputs fcitx5-gtk)
(delete "gtk+")
(prepend fcitx5-gtk gtk)))
(outputs '("out"))
(synopsis "GTK4 IM module for Fcitx 5")
(description "Fcitx5-gtk4 provides IM module for GTK4 applications.")))
(define-public fcitx5-qt
(package
(name "fcitx5-qt")