Merge github#893: Fix bad names on dev-perl/Image{Size,Info}.
[gentoo.git] / dev-libs / xapian-bindings / xapian-bindings-1.2.22.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI="5"
6
7 PYTHON_COMPAT=( python2_7 )
8 PYTHON_REQ_USE="threads"
9
10 USE_PHP="php5-5"
11
12 PHP_EXT_NAME="xapian"
13 PHP_EXT_INI="yes"
14 PHP_EXT_OPTIONAL_USE="php"
15
16 #mono violates sandbox, we disable it until we figure this out
17 #inherit java-pkg-opt-2 mono-env php-ext-source-r2 python
18 inherit java-pkg-opt-2 php-ext-source-r2 python-r1 toolchain-funcs
19
20 DESCRIPTION="SWIG and JNI bindings for Xapian"
21 HOMEPAGE="http://www.xapian.org/"
22 SRC_URI="http://oligarchy.co.uk/xapian/${PV}/${P}.tar.xz"
23
24 LICENSE="GPL-2"
25 SLOT="0"
26 KEYWORDS="~alpha amd64 arm ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
27 #IUSE="java lua mono perl php python ruby tcl"
28 #REQUIRED_USE="|| ( java lua mono perl php python ruby tcl )"
29 IUSE="java lua perl php python ruby tcl"
30 REQUIRED_USE="|| ( java lua perl php python ruby tcl )"
31
32 COMMONDEPEND="dev-libs/xapian:0/1.2.22
33         lua? ( dev-lang/lua:0 )
34         perl? ( dev-lang/perl:= )
35         ruby? ( dev-lang/ruby:= )
36         tcl? ( >=dev-lang/tcl-8.1:0= )"
37 #       mono? ( >=dev-lang/mono-1.0.8 )
38 DEPEND="${COMMONDEPEND}
39         virtual/pkgconfig
40         java? ( >=virtual/jdk-1.3 )"
41 RDEPEND="${COMMONDEPEND}
42         java? ( >=virtual/jre-1.3 )"
43
44 pkg_setup() {
45         java-pkg-opt-2_pkg_setup
46 }
47
48 src_unpack() {
49         default
50 }
51
52 src_prepare() {
53         java-pkg-opt-2_src_prepare
54         if use java; then
55                 sed \
56                         -e 's/$(JAVAC)/$(JAVAC) $(JAVACFLAGS)/' \
57                         -i java{/,/org/xapian/errors/,/org/xapian/}Makefile.in || die "sed failed"
58         fi
59
60         if use python; then
61                 sed \
62                         -e 's:\(^pkgpylib_DATA = xapian/__init__.py\).*:\1:' \
63                         -e 's|\(^xapian/__init__.py: modern/xapian.py\)|\1 xapian/_xapian.so|' \
64                         -i python/Makefile.in || die "sed failed"
65         fi
66 }
67
68 src_configure() {
69         if use java; then
70                 CXXFLAGS="${CXXFLAGS} $(java-pkg_get-jni-cflags)"
71         fi
72
73         if use perl; then
74                 export PERL_ARCH="$(perl -MConfig -e 'print $Config{installvendorarch}')"
75                 export PERL_LIB="$(perl -MConfig -e 'print $Config{installvendorlib}')"
76         fi
77
78         if use lua; then
79                 export LUA_LIB="$($(tc-getPKG_CONFIG) --variable=INSTALL_CMOD lua)"
80         fi
81
82         econf \
83                 $(use_with java) \
84                 $(use_with lua) \
85                 $(use_with perl) \
86                 $(use_with php) \
87                 $(use_with python) \
88                 $(use_with ruby) \
89                 $(use_with tcl)
90 #               $(use_with mono csharp) \
91
92         # PHP and Python bindings are built/tested/installed manually.
93         sed -e "/SUBDIRS =/s/ php//" -i Makefile || die "sed Makefile"
94         sed -e "/SUBDIRS =/s/ python//" -i Makefile || die "sed Makefile"
95 }
96
97 src_compile() {
98         default
99
100         if use php; then
101                 local php_slot
102                 for php_slot in $(php_get_slots); do
103                         cp -r php php-${php_slot}
104                         emake -C php-${php_slot} \
105                                 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
106                                 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
107                                 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
108                                 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)"
109                 done
110         fi
111
112         if use python; then
113                 python_copy_sources
114 #               building() {
115 #                       emake -C python \
116 #                               PYTHON="$(PYTHON)" \
117 #                               PYTHON_INC="$(python_get_includedir)" \
118 #                               PYTHON_LIB="$(python_get_libdir)" \
119 #                               PYTHON_SO="$("$(PYTHON)" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_config_vars("SO")[0])')" \
120 #                               pkgpylibdir="$(python_get_sitedir)/xapian"
121 #               }
122                 building() {
123                         emake -C python \
124                                 PYTHON_INC="$(python_get_includedir)" \
125                                 pkgpylibdir="$(python_get_sitedir)/xapian"
126                                 VERBOSE="1"
127                 }
128                 python_foreach_impl building
129         fi
130 }
131
132 src_test() {
133         default
134
135         if use php; then
136                 local php_slot
137                 for php_slot in $(php_get_slots); do
138                         emake -C php-${php_slot} \
139                                 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
140                                 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
141                                 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
142                                 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)" \
143                                 check
144                 done
145         fi
146
147         if use python; then
148                 testing() {
149                         emake -C python \
150                                 PYTHON_INC="$(python_get_includedir)" \
151                                 pkgpylibdir="$(python_get_sitedir)/xapian" \
152                                 VERBOSE="1" \
153                                 check
154                 }
155                 python_foreach_impl testing
156         fi
157 }
158
159 src_install () {
160         emake DESTDIR="${D}" install
161
162         if use java; then
163                 java-pkg_dojar java/built/xapian_jni.jar
164                 # TODO: make the build system not install this...
165                 java-pkg_doso "${D}/${S}/java/built/libxapian_jni.so"
166                 rm "${D}/${S}/java/built/libxapian_jni.so"
167                 rmdir -p "${D}/${S}/java/built"
168                 rmdir -p "${D}/${S}/java/native"
169         fi
170
171         if use php; then
172                 local php_slot
173                 for php_slot in $(php_get_slots); do
174                         emake DESTDIR="${D}" -C php-${php_slot} \
175                                 PHP="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php" \
176                                 PHP_CONFIG="${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" \
177                                 PHP_EXTENSION_DIR="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --extension-dir)" \
178                                 PHP_INC="$("${EPREFIX}/usr/$(get_libdir)/${php_slot}/bin/php-config" --includes)" \
179                                 install
180                 done
181
182                 php-ext-source-r2_createinifiles
183         fi
184
185         if use python; then
186                 installation() {
187                         emake -C python \
188                                 DESTDIR="${D}" \
189                                 PYTHON_INC="$(python_get_includedir)" \
190                                 pkgpylibdir="$(python_get_sitedir)/xapian" \
191                                 VERBOSE="1" \
192                                 install
193                 }
194                 python_foreach_impl installation
195         fi
196
197         # For some USE combinations this directory is not created
198         if [[ -d "${D}/usr/share/doc/xapian-bindings" ]]; then
199                 mv "${D}/usr/share/doc/xapian-bindings" "${D}/usr/share/doc/${PF}"
200         fi
201
202         dodoc AUTHORS HACKING NEWS TODO README
203 }