# Template file for 'fcitx'
pkgname=fcitx
version=4.2.9.9
revision=1
build_style=cmake
build_helper=gir
configure_args="-DSYSCONFDIR=/etc -DFORCE_OPENCC=OFF -DFORCE_PRESAGE=OFF
 -DENABLE_GTK2_IM_MODULE=ON -DENABLE_GTK3_IM_MODULE=ON -DENABLE_QT=OFF
 -DFORCE_ENCHANT=ON -DENABLE_TEST=ON -DENABLE_GIR=$(vopt_if gir ON OFF)
 -DENCHANT_INCLUDE_DIR=${XBPS_CROSS_BASE}/usr/include/enchant-2/
 -DENCHANT_LIBRARIES=${XBPS_CROSS_BASE}/usr/lib/libenchant-2.so"
hostmakedepends="pkg-config doxygen extra-cmake-modules glib-devel"
makedepends="iso-codes gettext-devel enchant2-devel libxml2-devel
 json-c-devel opencc-devel
 libxkbfile-devel icu-devel dbus-devel gtk+-devel gtk+3-devel"
depends="fcitx5-icons fcitx5-chinese-addons-icons"
short_desc="Flexible Context-aware Input Tool with eXtension"
maintainer="Đoàn Trần Công Danh <congdanhqx@gmail.com>"
license="GPL-2.0-or-later, LGPL-2.1-or-later, MIT"
homepage="https://fcitx-im.org/"
_en_dict=20121020
_pytable=20121124
_pystroke=20121124
distfiles="http://download.fcitx-im.org/fcitx/fcitx-${version}.tar.xz
 https://download.fcitx-im.org/data/en_dict-${_en_dict}.tar.gz
 http://download.fcitx-im.org/data/py_table-${_pytable}.tar.gz
 http://download.fcitx-im.org/data/py_stroke-${_pystroke}.tar.gz
 http://download.fcitx-im.org/data/pinyin.tar.gz
 http://download.fcitx-im.org/data/table.tar.gz
 "
checksum="307bddeabbec383eb27c4ea222d9f71d8d9011d7942f4010368e5bc3ca7440a1
 c44a5d7847925eea9e4d2d04748d442cd28dd9299a0b572ef7d91eac4f5a6ceb
 42146ac97de6c13d55f9e99ed873915f4c66739e9c11532a34556badf9792c04
 8eb128a9bfa43952e67cf2fcee1fd134c6f4cfd317bc2f6c38a615f5eb64e248
 583829b24a758c087c08de4a69480d0bf5946354fe77db360d6d7f467c2bd8e1
 6196053c724125e3ae3d8bd6b2f9172d0c83b65b0d410d3cde63b7a8d6ab87b7"
skip_extraction="
 en_dict-${_en_dict}.tar.gz
 py_table-${_pytable}.tar.gz
 py_stroke-${_pystroke}.tar.gz
 pinyin.tar.gz
 table.tar.gz"
lib32disabled=yes

# Warning: do NOT enable backtrace for musl, do NOT add libexecinfo-devel
case "$XBPS_TARGET_MACHINE" in
	*-musl) configure_args+=" -DENABLE_BACKTRACE=OFF";;
esac

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" fcitx"
fi

build_options="gir"
build_options_default="gir"

post_extract() {
	local _src="$XBPS_SRCDISTDIR/fcitx-$version"
	cp "$_src/en_dict-${_en_dict}.tar.gz" src/module/spell/dict
	cp "$_src/py_table-${_pytable}.tar.gz" \
		"$_src/py_stroke-${_pystroke}.tar.gz" \
		src/module/pinyin-enhance/data
	cp "$_src/pinyin.tar.gz" src/im/pinyin/data
	cp "$_src/table.tar.gz" src/im/table/data
}

pre_configure() {
	# include FcitxMacro.cmake without invoking fcitx4-config
	vsed -i -e 's;INCLUDE(${FCITX4_PREFIX}/share/cmake/fcitx;INCLUDE(${CMAKE_CURRENT_LIST_DIR};' \
		cmake/FcitxConfig.cmake

	if [ "$CROSS_BUILD" ]; then
		# use host binaries
		vsed -i -e 's;${PROJECT_BINARY_DIR}/tools/dev;/usr/lib/fcitx/libexec;' \
			cmake/FcitxMacro.cmake
		vsed -i -e 's;${PROJECT_BINARY_DIR}/src/module/spell/dict;/usr/lib/fcitx/libexec;' \
			src/module/spell/dict/CMakeLists.txt
		vsed -i -e 's;${PROJECT_BINARY_DIR}/tools/cli;/usr/bin;' \
			src/im/pinyin/data/CMakeLists.txt \
			src/im/table/data/CMakeLists.txt
	fi
}

pre_build() {
	LDFLAGS+=" -Wl,--rpath-link=$wrksrc/build/src/lib/fcitx-utils"
}

post_install() {
	find $DESTDIR/usr/share/icons -depth \
		-name 'fcitx-kbd.*' -prune -o \
		-name 'fcitx-vk-active.*' -prune -o \
		-name 'fcitx-vk-inactive.*' -prune -o \
		-type f -delete
}

libfcitx_package() {
	short_desc+=" - shared libraries"
	pkg_install() {
		vmove "usr/lib/*.so.*"
		vmove "usr/lib/fcitx/fcitx-*.so"
		vmove usr/lib/fcitx/libexec
		if [ "$build_option_gir" ]; then
			vmove usr/lib/girepository-1.0
		fi
		vlicense COPYING.LIBS
		vlicense COPYING.MIT
	}
}
fcitx-devel_package() {
	depends="libfcitx>=${version}_${revision} glib-devel"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/bin/fcitx4-config
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
		vmove usr/share/cmake
		if [ "$build_option_gir" ]; then
			vmove usr/share/gir-1.0
		fi
	}
}
libfcitx-gtk_package() {
	short_desc+=" - GTK2 IM module"
	pkg_install() {
		vmove usr/lib/gtk-2.0
	}
}
libfcitx-gtk3_package() {
	short_desc+=" - GTK3 IM module"
	pkg_install() {
		vmove usr/lib/gtk-3.0
	}
}
