175 lines
3.9 KiB
Bash
175 lines
3.9 KiB
Bash
# Copyright 1999-2018 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=6
|
|
|
|
inherit gnome2-utils scons-utils toolchain-funcs
|
|
|
|
DESCRIPTION="An elegant, secure, adaptable and intuitive XMPP Client"
|
|
HOMEPAGE="https://www.swift.im/"
|
|
|
|
if [[ ${PV} = "9999" ]] ; then
|
|
EGIT_REPO_URI="https://github.com/swift/swift.git"
|
|
EGIT_BRANCH="swift-4.x"
|
|
inherit git-r3
|
|
KEYWORDS=""
|
|
else
|
|
RESTRICT="mirror"
|
|
SRC_URI="https://swift.im/downloads/releases/swift-${PV}/swift-${PV}.tar.gz"
|
|
KEYWORDS="~amd64 ~x86"
|
|
fi
|
|
|
|
LICENSE="BSD BSD-1 CC-BY-3.0 GPL-3 OFL-1.1"
|
|
SLOT="0/4"
|
|
IUSE="client expat examples experimental ft gconf hunspell lua icu idn test tools unbound zeroconf"
|
|
REQUIRED_USE="ft? ( experimental )
|
|
gconf? ( client )
|
|
hunspell? ( client )"
|
|
|
|
RDEPEND="dev-lang/lua:=
|
|
dev-libs/boost:=
|
|
dev-libs/openssl:0=
|
|
sys-libs/zlib:=
|
|
expat? ( dev-libs/expat )
|
|
!expat? ( dev-libs/libxml2:2 )
|
|
experimental? ( dev-db/sqlite:3 )
|
|
client? ( dev-qt/qtcore:5
|
|
dev-qt/qtdbus:5
|
|
dev-qt/qtgui:5
|
|
dev-qt/qtmultimedia:5
|
|
dev-qt/qtnetwork:5
|
|
dev-qt/qtsvg:5
|
|
dev-qt/qtwidgets:5
|
|
dev-qt/qtwebkit:5
|
|
dev-qt/qtx11extras:5 )
|
|
ft? ( net-libs/libnatpmp
|
|
net-libs/miniupnpc:= )
|
|
hunspell? ( app-text/hunspell:= )
|
|
icu? ( dev-libs/icu:= )
|
|
gconf? ( gnome-base/gconf:2 )
|
|
idn? ( net-dns/libidn:= )
|
|
unbound? ( net-dns/unbound
|
|
net-libs/ldns )
|
|
zeroconf? ( net-dns/avahi )"
|
|
|
|
DEPEND="${RDEPEND}
|
|
>=dev-util/scons-3.0.1-r3
|
|
client? ( dev-qt/linguist-tools:5 )"
|
|
|
|
DOCS=(
|
|
"DEVELOPMENT.md"
|
|
"README.md"
|
|
"Swiften/ChangeLog.md"
|
|
)
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
# Hack for finding qt system libs
|
|
#mkdir "${T}"/qt || die
|
|
#ln -s "${EPREFIX%/}"/usr/$(get_libdir)/qt5/bin "${T}"/qt/bin || die
|
|
#ln -s "${EPREFIX%/}"/usr/$(get_libdir)/qt5 "${T}"/qt/lib || die
|
|
#ln -s "${EPREFIX%/}"/usr/include/qt5 "${T}"/qt/include || die
|
|
|
|
# Remove parts of Swift, which a user don't want to compile
|
|
! use client && rm -fr Swift Slimber
|
|
! use lua && rm -fr Sluift
|
|
! use tools && rm -fr SwiftTools
|
|
! use zeroconf && rm -fr Limber
|
|
|
|
# Remove '3rdParty', as the system libs should be used
|
|
rm -fr 3rdParty || die
|
|
}
|
|
|
|
src_configure() {
|
|
use client && local QT_SELECT=qt5
|
|
MYSCONS=(
|
|
ar="$(tc-getAR)"
|
|
allow_warnings="yes"
|
|
assertions="no"
|
|
build_examples="yes"
|
|
boost_bundled_enable="false"
|
|
boost_force_bundled="false"
|
|
cc="$(tc-getCC)"
|
|
ccache="no"
|
|
ccflags="${CFLAGS}"
|
|
coverage="no"
|
|
cxx="$(tc-getCXX)"
|
|
cxxflags="${CXXFLAGS}"
|
|
debug="no"
|
|
distcc="no"
|
|
experimental="$(usex experimental)"
|
|
experimental_ft="$(usex ft)"
|
|
hunspell_enable="$(usex hunspell)"
|
|
icu="$(usex icu)"
|
|
install_git_hooks="no"
|
|
libidn_bundled_enable="false"
|
|
libminiupnpc_force_bundled="false"
|
|
libnatpmp_force_bundled="false"
|
|
link="$(tc-getCXX)"
|
|
linkflags="${LDFLAGS}"
|
|
max_jobs="no"
|
|
optimize="no"
|
|
qt5="$(usex client)"
|
|
swiften_dll="true"
|
|
swift_mobile="no"
|
|
target="native"
|
|
test="none"
|
|
try_avahi="$(usex zeroconf)"
|
|
try_expat="$(usex expat)"
|
|
try_gconf="$(usex gconf)"
|
|
try_libidn="$(usex idn)"
|
|
try_libxml="$(usex !expat)"
|
|
tls_backend="openssl"
|
|
unbound="$(usex unbound)"
|
|
V="1"
|
|
valgrind="no"
|
|
zlib_bundled_enable="false"
|
|
)
|
|
}
|
|
|
|
src_compile() {
|
|
local MYSCONSTARGETS=(
|
|
Swiften
|
|
$(usex client Slimber '')
|
|
$(usex client Swift '')
|
|
$(usex lua Sluift '')
|
|
$(usex tools SwifTools '')
|
|
$(usex zeroconf Limber '')
|
|
)
|
|
|
|
escons "${MYSCONS[@]}" "${MYSCONSTARGETS[@]}"
|
|
}
|
|
|
|
src_test() {
|
|
escons test=unit QA
|
|
}
|
|
|
|
src_install() {
|
|
local mysconsinstall=(
|
|
"${MYSCONS[@]}"
|
|
SLUIFT_DIR="${ED%/}/usr"
|
|
SWIFTEN_INSTALLDIR="${ED%/}/usr"
|
|
SWIFTEN_LIBDIR="${ED%/}/usr/$(get_libdir)"
|
|
"${ED%/}"
|
|
)
|
|
escons "${mysconsinstall[@]}"
|
|
|
|
|
|
use client && newbin Slimber/CLI/slimber slimber-cli
|
|
use client && newbin Slimber/Qt/slimber slimber-qt
|
|
use lua && dobin Sluift/exe/sluift
|
|
use zeroconf && dobin Limber/limber
|
|
|
|
local HTML_DOCS=( "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.xml" )
|
|
einstalldocs
|
|
}
|
|
|
|
pkg_postinst() {
|
|
use client && gnome2_icon_cache_update
|
|
}
|
|
|
|
pkg_postrm() {
|
|
use client && gnome2_icon_cache_update
|
|
}
|