diff --git a/textproc/Makefile b/textproc/Makefile --- a/textproc/Makefile +++ b/textproc/Makefile @@ -205,6 +205,7 @@ SUBDIR += fcitx5 SUBDIR += fcitx5-configtool SUBDIR += fcitx5-gtk + SUBDIR += fcitx5-gtk-common SUBDIR += fcitx5-lua SUBDIR += fcitx5-m17n SUBDIR += fcitx5-qt diff --git a/textproc/fcitx5-gtk-common/Makefile b/textproc/fcitx5-gtk-common/Makefile new file mode 100644 --- /dev/null +++ b/textproc/fcitx5-gtk-common/Makefile @@ -0,0 +1,18 @@ +COMMENT= Fcitx support for GTK+ (common files) + +PKGNAMESUFFIX= -common + +MASTERDIR= ${.CURDIR}/../fcitx5-gtk + +RUN_DEPENDS= # empty + +PLIST= ${MASTERDIR}/pkg-plist.common + +FLAVORS= # empty +FLAVOR= # empty + +CMAKE_ON= # empty +CMAKE_OFF= ENABLE_GTK2_IM_MODULE ENABLE_GTK3_IM_MODULE \ + ENABLE_GTK4_IM_MODULE + +.include "${MASTERDIR}/Makefile" diff --git a/textproc/fcitx5-gtk/Makefile b/textproc/fcitx5-gtk/Makefile --- a/textproc/fcitx5-gtk/Makefile +++ b/textproc/fcitx5-gtk/Makefile @@ -4,13 +4,21 @@ CATEGORIES= textproc MAINTAINER= khng@FreeBSD.org -COMMENT= Fcitx support for GTK+ 2/3 +COMMENT?= Fcitx support for GTK+ ${FLAVOR} WWW= https://github.com/fcitx/fcitx5-gtk LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/LICENSES/LGPL-2.1-or-later.txt LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon +RUN_DEPENDS?= fcitx5-gtk-common>=${DISTVERSION}:textproc/fcitx5-gtk-common + +FLAVORS?= gtk3 gtk2 gtk4 +FLAVOR?= ${FLAVORS:[1]} + +gtk2_PKGNAMESUFFIX= 2 +gtk3_PKGNAMESUFFIX= 3 +gtk4_PKGNAMESUFFIX= 4 USES= compiler:c++17-lang gettext-tools cmake gnome kde:5 pkgconfig xorg @@ -20,10 +28,24 @@ USE_GITHUB= yes GH_ACCOUNT= fcitx -USE_GNOME= introspection glib20 gtk20 gtk30 +USE_GNOME= cairo gdkpixbuf2 glib20 introspection USE_KDE= ecm USE_XORG= x11 -CMAKE_OFF= ENABLE_GTK4_IM_MODULE +CMAKE_ON?= BUILD_ONLY_PLUGIN + +.if ${FLAVOR} == gtk3 +CMAKE_OFF+= ENABLE_GTK2_IM_MODULE ENABLE_GTK4_IM_MODULE +USE_GNOME+= gtk30 +.elif ${FLAVOR} == gtk2 +CMAKE_OFF+= ENABLE_GTK3_IM_MODULE ENABLE_GTK4_IM_MODULE +USE_GNOME+= gtk20 +.elif ${FLAVOR} == gtk4 +CMAKE_OFF+= ENABLE_GTK2_IM_MODULE ENABLE_GTK3_IM_MODULE +USE_GNOME+= gtk40 +.endif + +PLIST?= ${PKGDIR}/pkg-plist.${FLAVOR} +PLIST_SUB= VER=${PORTVERSION} .include diff --git a/textproc/fcitx5-gtk/pkg-plist b/textproc/fcitx5-gtk/pkg-plist.common rename from textproc/fcitx5-gtk/pkg-plist rename to textproc/fcitx5-gtk/pkg-plist.common --- a/textproc/fcitx5-gtk/pkg-plist +++ b/textproc/fcitx5-gtk/pkg-plist.common @@ -5,14 +5,8 @@ lib/cmake/Fcitx5GClient/Fcitx5GClientTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/Fcitx5GClient/Fcitx5GClientTargets.cmake lib/girepository-1.0/FcitxG-1.0.typelib -lib/gtk-2.0/%%GTK2_VERSION%%/immodules/im-fcitx5.so -lib/gtk-3.0/%%GTK3_VERSION%%/immodules/im-fcitx5.so lib/libFcitx5GClient.so lib/libFcitx5GClient.so.2 lib/libFcitx5GClient.so.%%VER%% libdata/pkgconfig/Fcitx5GClient.pc share/gir-1.0/FcitxG-1.0.gir -@postexec %%LOCALBASE%%/bin/gtk-query-immodules-3.0 --update-cache -@postexec %%LOCALBASE%%/bin/gtk-query-immodules-2.0 --update-cache -@postunexec %%LOCALBASE%%/bin/gtk-query-immodules-3.0 --update-cache -@postunexec %%LOCALBASE%%/bin/gtk-query-immodules-2.0 --update-cache diff --git a/textproc/fcitx5-gtk/pkg-plist.gtk2 b/textproc/fcitx5-gtk/pkg-plist.gtk2 new file mode 100644 --- /dev/null +++ b/textproc/fcitx5-gtk/pkg-plist.gtk2 @@ -0,0 +1,3 @@ +lib/gtk-2.0/%%GTK2_VERSION%%/immodules/im-fcitx5.so +@postexec %%LOCALBASE%%/bin/gtk-query-immodules-2.0 --update-cache +@postunexec %%LOCALBASE%%/bin/gtk-query-immodules-2.0 --update-cache diff --git a/textproc/fcitx5-gtk/pkg-plist.gtk3 b/textproc/fcitx5-gtk/pkg-plist.gtk3 new file mode 100644 --- /dev/null +++ b/textproc/fcitx5-gtk/pkg-plist.gtk3 @@ -0,0 +1,3 @@ +lib/gtk-3.0/%%GTK3_VERSION%%/immodules/im-fcitx5.so +@postexec %%LOCALBASE%%/bin/gtk-query-immodules-3.0 --update-cache +@postunexec %%LOCALBASE%%/bin/gtk-query-immodules-3.0 --update-cache diff --git a/textproc/fcitx5-gtk/pkg-plist.gtk4 b/textproc/fcitx5-gtk/pkg-plist.gtk4 new file mode 100644 --- /dev/null +++ b/textproc/fcitx5-gtk/pkg-plist.gtk4 @@ -0,0 +1 @@ +lib/gtk-4.0/%%GTK4_VERSION%%/immodules/libim-fcitx5.so