summaryrefslogtreecommitdiff
blob: dcafc2e233fc2a7f48981d68705e98b1cc8eeb86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/vigra/vigra-1.8.0-r1.ebuild,v 1.2 2013/04/28 15:42:20 grozin Exp $

EAPI=5

PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="threads,xml"

# This ebuild could use python-r1 in the future when upstream gets Python 3.x
# support working
inherit cmake-utils eutils multilib python-single-r1

MY_P=${P}-src

DESCRIPTION="C++ computer vision library with emphasize on customizable algorithms and data structures"
HOMEPAGE="http://hci.iwr.uni-heidelberg.de/vigra/"
SRC_URI="http://hci.iwr.uni-heidelberg.de/vigra/${MY_P}.tar.gz"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="doc +fftw +hdf5 +jpeg openexr +png +python test +tiff"

# Pull in dev-lang/python:2.7 for vigra-config which is always installed
RDEPEND="dev-lang/python:2.7
	>=dev-libs/boost-1.52.0-r6[python?,${PYTHON_USEDEP}]
	fftw? ( sci-libs/fftw:3.0 )
	hdf5? ( sci-libs/hdf5 )
	jpeg? ( virtual/jpeg )
	openexr? ( media-libs/openexr:= )
	png? ( media-libs/libpng:0= )
	python? ( ${PYTHON_DEPS} )
	tiff? ( media-libs/tiff:0= )"
DEPEND="${RDEPEND}
	doc? (
		app-doc/doxygen
		python? ( >=dev-python/sphinx-1.1.3-r5[${PYTHON_USEDEP}] )
	)
	test? (
		python? ( >=dev-python/nose-1.1.2-r1[${PYTHON_USEDEP}] )
	)"
REQUIRED_USE="doc? ( hdf5 fftw )
	python? ( hdf5 )
	test? ( hdf5 python fftw )"

CMAKE_IN_SOURCE_BUILD=1

DOCS=( README.txt )

pkg_setup() {
	use python && python-single-r1_pkg_setup
}

src_prepare() {
	epatch \
		"${FILESDIR}"/${P}-automagicness.patch \
		"${FILESDIR}"/${P}-numpy_doc.patch \
		"${FILESDIR}"/${P}-gcc47.patch \
		"${FILESDIR}"/${P}-doxygen.patch

	# Don't build nor install API docs when not requested
	use doc || { sed -i -e '/ADD_SUBDIRECTORY(docsrc)/d' CMakeLists.txt || die; }

	# Don't use python_fix_shebang because we can't put this behind USE="python"
	sed -i -e '/env/s:python:python2:' config/vigra-config.in || die
}

src_configure() {
	local libdir=$(get_libdir)

	# required for ddocdir
	_check_build_dir init
	# vigranumpy needs python and if enabled it ooms
	# doc needs doxygen and python
	# walgrind no use for us since we restrict test
	# $(cmake-utils_use_with valgrind VALGRIND)
	local mycmakeargs=(
		-DDOCDIR="${CMAKE_BUILD_DIR}"/doc
		-DLIBDIR_SUFFIX=${libdir/lib}
		-DDOCINSTALL=share/doc/${PF}
		-DWITH_VALGRIND=OFF
		$(cmake-utils_use_with python VIGRANUMPY)
		$(cmake-utils_use_with png)
		$(cmake-utils_use_with jpeg)
		$(cmake-utils_use_with openexr)
		$(cmake-utils_use_with tiff)
		$(cmake-utils_use_with fftw FFTW3)
		$(cmake-utils_use_with hdf5)
		$(cmake-utils_use_build test TESTING)
		$(cmake-utils_use test CREATE_CTEST_TARGETS)
		$(cmake-utils_use test AUTOBUILD_TESTS)
	)

	cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile
	use doc && cmake-utils_src_make doc
}

src_test() { :; } #390447

src_install() {
	cmake-utils_src_install

	use python && python_optimize

	# drop useless cmake files from libdir
	rm -rf "${ED}"/usr/$(get_libdir)/${PN}
}