PORTNAME=	ibus
DISTVERSION=	1.5.31
PORTREVISION=	1
CATEGORIES=	textproc
MASTER_SITES=	https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/

MAINTAINER=	henry.hu.sh@gmail.com
COMMENT=	Intelligent Input Bus for Unix-like systems
WWW=		https://github.com/ibus/ibus

LICENSE=	LGPL21
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \
		${LOCALBASE}/share/unicode/ucd/NamesList.txt:textproc/UCD \
		iso-codes>0:misc/iso-codes \
		bash:shells/bash
LIB_DEPENDS=	libdbus-1.so:devel/dbus
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \
		iso-codes>0:misc/iso-codes \
		setxkbmap:x11/setxkbmap

USES=		compiler cpe gmake gnome libtool localbase pathfix \
		pkgconfig python shebangfix xorg
CPE_VENDOR=	ibus_project
USE_GNOME=	glib20 pygobject3
USE_LDCONFIG=	yes
USE_PYTHON=	py3kplist
SHEBANG_GLOB=	*.sh
USE_XORG=	x11 xi xfixes xtst
GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--with-html-dir=${PREFIX}/share/doc	\
		--with-ucd-dir=${LOCALBASE}/share/unicode/ucd \
		--disable-python2 --disable-python-library \
		--disable-systemd --disable-systemd-services \
		--disable-install-tests

INSTALL_TARGET=	install-strip
TEST_TARGET=	check
TEST_WRKSRC=	${WRKSRC}/src/tests

OPTIONS_DEFINE=	APPINDICATOR ENGINE VAPI GTK2 GTK3 GTK4 GINTRO DCONF XIM EMOJI DOCS NLS WAYLAND
OPTIONS_DEFAULT=	APPINDICATOR GTK3 GTK4 VAPI GINTRO DCONF XIM ENGINE EMOJI WAYLAND
NO_OPTIONS_SORT=	yes
WAYLAND_IMPLIES=	GTK3 GTK4
OPTIONS_SUB=	yes

APPINDICATOR_DESC=	Enable appindicator support
DCONF_DESC=	Use dconf for configuration
EMOJI_DESC=	Install emoji dictionary
ENGINE_DESC=	Install ibus simple engine
GINTRO_DESC=	Install GObject Introspection data
GTK2_DESC=	Install GTK2 input method client
GTK3_DESC=	Install GTK3 input method client
GTK4_DESC=	Install GTK4 input method client
WAYLAND_DESC=	Enable Wayland support
XIM_DESC=	Install XIM server

APPINDICATOR_CONFIGURE_ENABLE=	appindicator
APPINDICATOR_IMPLIES=	GTK3
APPINDICATOR_LIB_DEPENDS=	libdbusmenu-glib.so:devel/libdbusmenu
DCONF_USE=		GNOME=dconf
DCONF_CONFIGURE_ENABLE=	dconf
DCONF_VARS=		GLIB_SCHEMAS=org.freedesktop.ibus.gschema.xml
DOCS_BUILD_DEPENDS=	gtkdocize:textproc/gtk-doc
DOCS_CONFIGURE_ENABLE=	gtk-doc-html
EMOJI_BUILD_DEPENDS=	json-glib>=0:devel/json-glib \
			unicode-emoji>0:misc/unicode-emoji \
			cldr-emoji-annotation>0:misc/cldr-emoji-annotation
EMOJI_CONFIGURE_ON=	--with-unicode-emoji-dir=${LOCALBASE}/share/unicode/emoji \
			--with-emoji-annotation-dir=${LOCALBASE}/share/unicode/cldr/common/annotations
EMOJI_CONFIGURE_ENABLE=	emoji-dict
ENGINE_CONFIGURE_ENABLE=	engine
GINTRO_USE=		GNOME=introspection
GINTRO_CONFIGURE_ENABLE=	introspection
GTK2_USE=		GNOME=cairo,gtk20
GTK2_CONFIGURE_ENABLE=	gtk2
GTK3_LIB_DEPENDS=	libdbus-1.so:devel/dbus \
			libnotify.so:devel/libnotify
GTK3_USE=		GNOME=cairo,gtk30,pango
GTK3_CONFIGURE_ENABLE=	gtk3 libnotify
GTK3_LIBS=		-lX11
GTK3_IMPLIES=		WAYLAND
GTK4_USE=		GNOME=cairo,gtk40
GTK4_LIB_DEPENDS=	libvulkan.so:graphics/vulkan-loader \
			libgraphene-1.0.so:graphics/graphene
GTK4_CONFIGURE_ENABLE=	gtk4
GTK4_IMPLIES=		WAYLAND
NLS_USES=		gettext
NLS_USES_OFF=		gettext-tools
NLS_CONFIGURE_ENABLE=	nls
VAPI_IMPLIES=		GINTRO
VAPI_USES=		vala:build
VAPI_CONFIGURE_ENABLE=	vala
WAYLAND_BUILD_DEPENDS=	wayland>1.14:graphics/wayland
WAYLAND_LIB_DEPENDS=	libwayland-client.so:graphics/wayland \
			libxkbcommon.so:x11/libxkbcommon
WAYLAND_CONFIGURE_ENABLE=	wayland
XIM_CONFIGURE_ENABLE=	xim

.include <bsd.port.pre.mk>

.if ${PORT_OPTIONS:MENGINE} || ${PORT_OPTIONS:MGTK3} || ${PORT_OPTIONS:MDCONF}
PLIST_SUB+=	COMPDIR=""
.else
PLIST_SUB+=	COMPDIR="@comment "
.endif

post-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart
	${INSTALL_DATA} ${PATCHDIR}/ibus.desktop ${STAGEDIR}${PREFIX}/etc/xdg/autostart

.include <bsd.port.post.mk>
