summaryrefslogtreecommitdiff
blob: ecdd0ad2dbfcb297ae280bc124e6466ac74b0438 (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 )

inherit autotools flag-o-matic java-pkg-opt-2 multilib-minimal \
	python-single-r1 virtualx

DESCRIPTION="Library and tools for reading barcodes from images or video"
HOMEPAGE="http://zbar.sourceforge.net/"
SRC_URI="https://dev.gentoo.org/~xmw/zbar-0.10_p20121015.zip"

LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 ~arm x86"
IUSE="gtk imagemagick java jpeg python static-libs test +threads v4l X xv"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
	test? ( X ${PYTHON_REQUIRED_USE} )"

CDEPEND="gtk? ( dev-libs/glib:2[${MULTILIB_USEDEP}]
		x11-libs/gtk+:2[${MULTILIB_USEDEP}] )
	imagemagick? ( virtual/imagemagick-tools )
	jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
	python? (
		${PYTHON_DEPS}
		gtk? ( >=dev-python/pygtk-2[${PYTHON_USEDEP}] )
	)
	X? (
		x11-libs/libXext[${MULTILIB_USEDEP}]
		xv? ( x11-libs/libXv[${MULTILIB_USEDEP}] )
	)"
RDEPEND="${CDEPEND}
	java? ( >=virtual/jre-1.4 )"
DEPEND="${CDEPEND}
	java? ( >=virtual/jdk-1.4
		test? ( dev-java/junit:4
			dev-java/hamcrest-core:1.3 ) )
	test? ( ${PYTHON_DEPS} )
	app-arch/unzip
	sys-devel/gettext
	virtual/pkgconfig"

pkg_setup() {
	if use python || use test; then
		python-single-r1_pkg_setup
	fi
	java-pkg-opt-2_pkg_setup
}

src_unpack() {
	#vcs-snapshot doesn't work on .zip
	default
	mv * ${P} || die
}

src_prepare() {
	eapply "${FILESDIR}"/${PN}-0.10-errors.patch \
		"${FILESDIR}"/${PN}-0.10-python-crash.patch \
		"${FILESDIR}"/${PN}-0.10-v4l2-uvcvideo.patch

	# fix use of deprecated qt4 function, bug 572488
	sed -e 's:numBytes:byteCount:g' \
		-i "${S}"/include/zbar/QZBarImage.h || die

	if has_version '>=media-gfx/imagemagick-7.0.1.0' ; then
		eapply "${FILESDIR}/${P}-ImageMagick-7.diff"
	fi

	use python && python_fix_shebang examples/upcrpc.py test/*.py
	java-pkg-opt-2_src_prepare

	sed -e '/AM_INIT_AUTOMAKE/s: -Werror : :' \
		-e '/^AM_CFLAGS=/s: -Werror::' \
		-i configure.ac || die
	sed "s|javadir = \$(pkgdatadir)|javadir = /usr/$(get_libdir)/zbar|" \
		-i java/Makefile.am
	eautoreconf
}

multilib_src_configure() {
	if multilib_is_native_abi && use java; then
		export JAVACFLAGS="$(java-pkg_javac-args)"
		export JAVA_CFLAGS="$(java-pkg_get-jni-cflags)"
		if use test ; then # bug 629078
			java-pkg_append_ CLASSPATH .
			java-pkg_append_ CLASSPATH $(java-pkg_getjar --build-only junit-4 junit.jar)
			java-pkg_append_ CLASSPATH $(java-pkg_getjar --build-only hamcrest-core-1.3 hamcrest-core.jar)
		fi
	fi

	append-cppflags -DNDEBUG

	# different flags for image/graphics magick (bug 552350)
	myimagemagick="--without-imagemagick"
	has_version media-gfx/imagemagick &&
		myimagemagick="$(multilib_native_use_with imagemagick)"
	mygraphicsmagick="--without-graphicsmagick"
	has_version media-gfx/graphicsmagick &&
		mygraphicsmagick="$(multilib_native_use_with imagemagick graphicsmagick)"
	ECONF_SOURCE=${S} \
	econf \
		$(multilib_native_use_with java) \
		$(use_with jpeg) \
		$(use_with gtk) \
		${myimagemagick} \
		${mygraphicsmagick} \
		$(multilib_native_use_with python) \
		--without-qt \
		$(use_enable static-libs static) \
		$(use_enable threads pthread) \
		$(use_with X x) \
		$(use_with xv xv) \
		$(use_enable v4l video)

	# work-around out-of-source build issue
	mkdir gtk pygtk qt test || die
}

src_test() {
	virtx multilib-minimal_src_test
}

multilib_src_install_all() {
	dodoc HACKING NEWS README TODO
	find "${D}" -name '*.la' -delete || die
}

pkg_preinst() {
	java-pkg-opt-2_pkg_preinst
}