# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6

PYTHON_COMPAT=( python2_7 python3_{4,5} )
PYTHON_REQ_USE="threads"
DISTUTILS_OPTIONAL=true
DISTUTILS_IN_SOURCE_BUILD=true

inherit autotools distutils-r1 versionator

MY_PV=$(replace_all_version_separators '_' )
S=${WORKDIR}/libtorrent-libtorrent-${MY_PV}

DESCRIPTION="C++ BitTorrent implementation focusing on efficiency and scalability"
HOMEPAGE="http://libtorrent.org"
SRC_URI="https://github.com/arvidn/libtorrent/archive/libtorrent-${MY_PV}.tar.gz -> rb_libtorrent-${PV}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE="debug +dht doc examples python +ssl static-libs test"

REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

RDEPEND="
	>=dev-libs/boost-1.53:=[threads]
	sys-libs/zlib
	virtual/libiconv
	examples? ( !net-p2p/mldonkey )
	ssl? ( dev-libs/openssl:0= )
	python? (
		${PYTHON_DEPS}
		dev-libs/boost:=[python,${PYTHON_USEDEP}]
	)"
DEPEND="${RDEPEND}
	>=sys-devel/libtool-2.2"

RESTRICT="test"

src_prepare() {
	default

	# needed or else eautoreconf fails
	mkdir build-aux && cp {m4,build-aux}/config.rpath || die

	eautoreconf

	use python && python_copy_sources
}

src_configure() {
	local myeconfargs=(
		--disable-silent-rules # bug 441842
		--with-boost-system=mt
		--with-libiconv
		$(use_enable debug)
		$(usex debug "--enable-logging=verbose" "")
		$(use_enable dht)
		$(use_enable examples)
		$(use_enable ssl encryption)
		$(use_enable static-libs static)
		$(use_enable test tests)
	)
	econf "${myeconfargs[@]}"

	python_configure() {
		local myeconfargs+=(
			--enable-python-binding
			--with-boost-python=yes
		)
		econf "${myeconfargs[@]}"
	}
	use python && distutils-r1_src_configure
}

src_compile() {
	default

	python_compile() {
		cd "${BUILD_DIR}/../bindings/python" || return 1
		distutils-r1_python_compile
	}
	use python && distutils-r1_src_compile
}

src_install() {
	use doc && HTML_DOCS+=( "${S}"/docs )

	default

	python_install() {
		cd "${BUILD_DIR}/../bindings/python" || return 1
		distutils-r1_python_install
	}
	use python && distutils-r1_src_install
}