-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EGIT_REPO_URI="https://github.com/qxmpp-project/qxmpp"
-inherit git-r3 qmake-utils
+inherit git-r3 cmake-utils
DESCRIPTION="A cross-platform C++ XMPP client library based on the Qt framework"
HOMEPAGE="https://github.com/qxmpp-project/qxmpp/"
SLOT="0"
KEYWORDS=""
IUSE="debug doc opus +speex test theora vpx"
+RESTRICT="!test? ( test )"
RDEPEND="
dev-qt/qtcore:5
opus? ( media-libs/opus )
speex? ( media-libs/speex )
theora? ( media-libs/libtheora )
- vpx? ( media-libs/libvpx )
+ vpx? ( media-libs/libvpx:= )
"
DEPEND="${RDEPEND}
+ dev-util/cmake
test? ( dev-qt/qttest:5 )
+ doc? ( app-doc/doxygen )
"
-src_prepare(){
- if ! use doc; then
- sed -i \
- -e '/SUBDIRS/s/doc//' \
- -e '/INSTALLS/d' \
- qxmpp.pro || die "sed for removing docs failed"
- fi
- if ! use test; then
- sed -i -e '/SUBDIRS/s/tests//' \
- qxmpp.pro || die "sed for removing tests failed"
- fi
- # There is no point in building examples. Also, they require dev-qt/qtgui
- sed -i -e '/SUBDIRS/s/examples//' \
- qxmpp.pro || die "sed for removing examples failed"
- default_src_prepare
+src_prepare() {
+ # requires network connection, bug #623708
+ sed -e "/qxmppiceconnection/d" \
+ -i tests/CMakeLists.txt || die "failed to drop single test"
+
+ cmake-utils_src_prepare
}
src_configure() {
- eqmake5 "${S}"/qxmpp.pro \
- PREFIX="${EPREFIX}/usr" \
- LIBDIR="$(get_libdir)" \
- QXMPP_USE_OPUS=$(usex opus 1 0) \
- QXMPP_USE_SPEEX=$(usex speex 1 0) \
- QXMPP_USE_THEORA=$(usex theora 1 0) \
- QXMPP_USE_VPX=$(usex vpx 1 0)
+ local mycmakeargs=(
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_TESTS=$(usex test)
+ -DWITH_OPUS=$(usex opus)
+ -DWITH_SPEEX=$(usex speex)
+ -DWITH_THEORA=$(usex theora)
+ -DWITH_VPX=$(usex vpx)
+ )
+
+ cmake-utils_src_configure
}
src_install() {
- emake INSTALL_ROOT="${D}" install
- einstalldocs
+ cmake-utils_src_install
+
if use doc; then
# Use proper path for documentation
mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die "doc mv failed"
fi
}
-
-src_test() {
- MAKEOPTS="-j1" # random tests fail otherwise
- default_src_test
-}