summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/fcitx5.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 59085b8fe9..ca2d8f6827 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -252,6 +252,50 @@ IM module for GTK+3 applications.
@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")