app-text/tesseract: restore ~mips keyword, as opencl USE flag is now masked
[gentoo.git] / app-text / tesseract / tesseract-3.04.01.ebuild
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=5
6
7 MY_PN="tesseract-ocr"
8 LANGPACKV="3.04.00"
9 URI_PREFIX="https://github.com/${MY_PN}/tessdata/raw/${LANGPACKV}/"
10 JAVA_PKG_OPT_USE="scrollview"
11
12 inherit eutils autotools java-pkg-opt-2
13
14 DESCRIPTION="An OCR Engine, orginally developed at HP, now open source."
15 HOMEPAGE="https://github.com/tesseract-ocr"
16 SRC_URI="https://github.com/${MY_PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
17         ${URI_PREFIX}eng.traineddata -> eng.traineddata-${LANGPACKV}
18         doc? ( https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02-doc-html.tar.gz )
19         math? ( ${URI_PREFIX}equ.traineddata -> equ.traineddata-${LANGPACKV} )
20         l10n_ar? ( ${URI_PREFIX}ara.traineddata -> ara.traineddata-${LANGPACKV} )
21         l10n_bg? ( ${URI_PREFIX}bul.traineddata -> bul.traineddata-${LANGPACKV} )
22         l10n_ca? ( ${URI_PREFIX}cat.traineddata -> cat.traineddata-${LANGPACKV} )
23         l10n_chr? ( ${URI_PREFIX}chr.traineddata -> chr.traineddata-${LANGPACKV} )
24         l10n_cs? ( ${URI_PREFIX}ces.traineddata -> ces.traineddata-${LANGPACKV} )
25         l10n_de? ( ${URI_PREFIX}deu.traineddata -> deu.traineddata-${LANGPACKV}
26                                   ${URI_PREFIX}deu_frak.traineddata -> deu_frak.traineddata-${LANGPACKV} )
27         l10n_da? ( ${URI_PREFIX}dan.traineddata -> dan.traineddata-${LANGPACKV}
28                                   ${URI_PREFIX}dan_frak.traineddata -> dan_frak.traineddata-${LANGPACKV} )
29         l10n_el? ( ${URI_PREFIX}ell.traineddata -> ell.traineddata-${LANGPACKV} )
30         l10n_es? ( ${URI_PREFIX}spa.traineddata -> spa.traineddata-${LANGPACKV} )
31         l10n_fi? ( ${URI_PREFIX}fin.traineddata -> fin.traineddata-${LANGPACKV} )
32         l10n_fr? ( ${URI_PREFIX}fra.traineddata -> fra.traineddata-${LANGPACKV} )
33         l10n_he? ( ${URI_PREFIX}heb.traineddata -> heb.traineddata-${LANGPACKV} )
34         l10n_hi? ( ${URI_PREFIX}hin.traineddata -> hin.traineddata-${LANGPACKV} )
35         l10n_hu? ( ${URI_PREFIX}hun.traineddata -> hun.traineddata-${LANGPACKV} )
36         l10n_id? ( ${URI_PREFIX}ind.traineddata -> ind.traineddata-${LANGPACKV} )
37         l10n_it? ( ${URI_PREFIX}ita.traineddata -> ita.traineddata-${LANGPACKV} )
38         l10n_ja? ( ${URI_PREFIX}jpn.traineddata -> jpn.traineddata-${LANGPACKV} )
39         l10n_ko? ( ${URI_PREFIX}kor.traineddata -> kor.traineddata-${LANGPACKV} )
40         l10n_lt? ( ${URI_PREFIX}lit.traineddata -> lit.traineddata-${LANGPACKV} )
41         l10n_lv? ( ${URI_PREFIX}lav.traineddata -> lav.traineddata-${LANGPACKV} )
42         l10n_nl? ( ${URI_PREFIX}nld.traineddata -> nld.traineddata-${LANGPACKV} )
43         l10n_no? ( ${URI_PREFIX}nor.traineddata -> nor.traineddata-${LANGPACKV} )
44         l10n_pl? ( ${URI_PREFIX}pol.traineddata -> pol.traineddata-${LANGPACKV} )
45         l10n_pt? ( ${URI_PREFIX}por.traineddata -> por.traineddata-${LANGPACKV} )
46         l10n_ro? ( ${URI_PREFIX}ron.traineddata -> ron.traineddata-${LANGPACKV} )
47         l10n_ru? ( ${URI_PREFIX}rus.traineddata -> rus.traineddata-${LANGPACKV} )
48         l10n_sk? ( ${URI_PREFIX}slk.traineddata -> slk.traineddata-${LANGPACKV}
49                                   ${URI_PREFIX}slk_frak.traineddata -> slk_frak.traineddata-${LANGPACKV} )
50         l10n_sl? ( ${URI_PREFIX}slv.traineddata -> slv.traineddata-${LANGPACKV} )
51         l10n_sr? ( ${URI_PREFIX}srp.traineddata -> srp.traineddata-${LANGPACKV} )
52         l10n_sv? ( ${URI_PREFIX}swe.traineddata -> swe.traineddata-${LANGPACKV} )
53         l10n_th? ( ${URI_PREFIX}tha.traineddata -> tha.traineddata-${LANGPACKV} )
54         l10n_tl? ( ${URI_PREFIX}tgl.traineddata -> tgl.traineddata-${LANGPACKV} )
55         l10n_tr? ( ${URI_PREFIX}tur.traineddata -> tur.traineddata-${LANGPACKV} )
56         l10n_uk? ( ${URI_PREFIX}ukr.traineddata -> ukr.traineddata-${LANGPACKV} )
57         l10n_vi? ( ${URI_PREFIX}vie.traineddata -> vie.traineddata-${LANGPACKV} )
58         l10n_zh-CN? ( ${URI_PREFIX}chi_sim.traineddata -> chi_sim.traineddata-${LANGPACKV} )
59         l10n_zh-TW? ( ${URI_PREFIX}chi_tra.traineddata -> chi_tra.traineddata-${LANGPACKV} )
60         osd? ( ${URI_PREFIX}osd.traineddata -> osd.traineddata-${LANGPACKV} )
61 "
62
63 LICENSE="Apache-2.0"
64 SLOT="0"
65 KEYWORDS="alpha amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86"
66
67 IUSE="doc examples jpeg math opencl osd png +scrollview static-libs tiff training -webp l10n_ar l10n_bg l10n_ca l10n_chr l10n_cs l10n_de l10n_da l10n_el l10n_es l10n_fi l10n_fr l10n_he l10n_hi l10n_hu l10n_id l10n_it l10n_ja l10n_ko l10n_lt l10n_lv l10n_nl l10n_no l10n_pl l10n_pt l10n_ro l10n_ru l10n_sk l10n_sl l10n_sr l10n_sv l10n_th l10n_tl l10n_tr l10n_uk l10n_vi l10n_zh-CN l10n_zh-TW"
68
69 # With opencl USE=tiff is necessary in leptonica
70 CDEPEND=">=media-libs/leptonica-1.71:=[zlib,tiff?,jpeg?,png?,webp?]
71         opencl? (
72                 virtual/opencl
73                 media-libs/tiff:0=
74                 media-libs/leptonica:=[tiff]
75         )
76         scrollview? (
77                 >=dev-java/piccolo2d-3.0:0
78         )
79         training? (
80                 dev-libs/icu:=
81                 x11-libs/pango:=
82                 x11-libs/cairo:=
83         )
84 "
85
86 DEPEND="${CDEPEND}
87         scrollview? ( >=virtual/jdk-1.7 )"
88
89 RDEPEND="${CDEPEND}
90         scrollview? ( >=virtual/jre-1.7 )"
91
92 DOCS=(AUTHORS ChangeLog NEWS README.md ReleaseNotes )
93
94 PATCHES=(
95         "${FILESDIR}/tesseract-2.04-gcc47.patch"
96         "${FILESDIR}/${P}-use-system-piccolo2d.patch"
97         "${FILESDIR}/${P}-fix-opencl-ldflags.patch"
98 )
99
100 src_unpack() {
101         unpack ${P}.tar.gz
102         use doc && unpack tesseract-ocr-3.02.02-doc-html.tar.gz
103         find "${DISTDIR}/" -name "*traineddata-${LANGPACKV}" \
104                  -execdir sh -c 'cp -- "$0" "${S}/tessdata/${0%-*}"' '{}' ';' || die
105 }
106
107 src_prepare() {
108         epatch "${PATCHES[@]}"
109         eautoreconf
110
111         java-pkg-opt-2_src_prepare
112 }
113
114 src_configure() {
115         local myeconfargs=(
116                 --enable-shared
117                 $(use_enable opencl)
118                 $(use_enable scrollview graphics)
119                 $(use_enable static-libs static)
120         )
121
122         econf "${myeconfargs[@]}"
123 }
124
125 src_compile() {
126         default
127         use scrollview && emake ScrollView.jar JAVAC="javac $(java-pkg_javac-args)"
128         use training && emake training
129 }
130
131 src_install() {
132         default
133         prune_libtool_files
134
135         if use training; then
136                 emake DESTDIR="${D}" training-install
137         fi
138
139         if use examples; then
140                 insinto /usr/share/doc/${PF}/examples
141                 doins testing/eurotext.tif testing/phototest.tif
142         fi
143
144         if use doc; then
145                 dohtml -r "${WORKDIR}/${MY_PN}"/doc/html/*
146         fi
147
148         insinto /usr/share/tessdata
149         doins tessdata/*traineddata* # language files
150         use scrollview && doins java/ScrollView.jar # scrollview
151 }