Merge remote-tracking branch 'github/pr/130'.
[gentoo.git] / app-text / tesseract / tesseract-3.04.00-r2.ebuild
1 # Copyright 1999-2015 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 URI_PREFIX="https://github.com/${MY_PN}/tessdata/raw/${PV}/"
9
10 inherit eutils autotools autotools-utils
11
12 DESCRIPTION="An OCR Engine, orginally developed at HP, now open source."
13 HOMEPAGE="https://github.com/tesseract-ocr"
14 SRC_URI="https://github.com/${MY_PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
15         ${URI_PREFIX}eng.traineddata -> eng.traineddata-${PV}
16         doc? ( https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02-doc-html.tar.gz )
17         linguas_ar? ( ${URI_PREFIX}ara.traineddata -> ara.traineddata-${PV} )
18         linguas_bg? ( ${URI_PREFIX}bul.traineddata -> bul.traineddata-${PV} )
19         linguas_ca? ( ${URI_PREFIX}cat.traineddata -> cat.traineddata-${PV} )
20         linguas_chr? ( ${URI_PREFIX}chr.traineddata -> chr.traineddata-${PV} )
21         linguas_cs? ( ${URI_PREFIX}ces.traineddata -> ces.traineddata-${PV} )
22         linguas_de? ( ${URI_PREFIX}deu.traineddata -> deu.traineddata-${PV}
23                                   ${URI_PREFIX}deu_frak.traineddata -> deu_frak.traineddata-${PV} )
24         linguas_da? ( ${URI_PREFIX}dan.traineddata -> dan.traineddata-${PV}
25                                   ${URI_PREFIX}dan_frak.traineddata -> dan_frak.traineddata-${PV} )
26         linguas_el? ( ${URI_PREFIX}ell.traineddata -> ell.traineddata-${PV} )
27         linguas_es? ( ${URI_PREFIX}spa.traineddata -> spa.traineddata-${PV} )
28         linguas_fi? ( ${URI_PREFIX}fin.traineddata -> fin.traineddata-${PV} )
29         linguas_fr? ( ${URI_PREFIX}fra.traineddata -> fra.traineddata-${PV} )
30         linguas_he? ( ${URI_PREFIX}heb.traineddata -> heb.traineddata-${PV} )
31         linguas_hi? ( ${URI_PREFIX}hin.traineddata -> hin.traineddata-${PV} )
32         linguas_hu? ( ${URI_PREFIX}hun.traineddata -> hun.traineddata-${PV} )
33         linguas_id? ( ${URI_PREFIX}ind.traineddata -> ind.traineddata-${PV} )
34         linguas_it? ( ${URI_PREFIX}ita.traineddata -> ita.traineddata-${PV} )
35         linguas_jp? ( ${URI_PREFIX}jpn.traineddata -> jpn.traineddata-${PV} )
36         linguas_ko? ( ${URI_PREFIX}kor.traineddata -> kor.traineddata-${PV} )
37         linguas_lt? ( ${URI_PREFIX}lit.traineddata -> lit.traineddata-${PV} )
38         linguas_lv? ( ${URI_PREFIX}lav.traineddata -> lav.traineddata-${PV} )
39         linguas_nl? ( ${URI_PREFIX}nld.traineddata -> nld.traineddata-${PV} )
40         linguas_no? ( ${URI_PREFIX}nor.traineddata -> nor.traineddata-${PV} )
41         linguas_pl? ( ${URI_PREFIX}pol.traineddata -> pol.traineddata-${PV} )
42         linguas_pt? ( ${URI_PREFIX}por.traineddata -> por.traineddata-${PV} )
43         linguas_ro? ( ${URI_PREFIX}ron.traineddata -> ron.traineddata-${PV} )
44         linguas_ru? ( ${URI_PREFIX}rus.traineddata -> rus.traineddata-${PV} )
45         linguas_sk? ( ${URI_PREFIX}slk.traineddata -> slk.traineddata-${PV}
46                                   ${URI_PREFIX}slk_frak.traineddata -> slk_frak.traineddata-${PV} )
47         linguas_sl? ( ${URI_PREFIX}slv.traineddata -> slv.traineddata-${PV} )
48         linguas_sr? ( ${URI_PREFIX}srp.traineddata -> srp.traineddata-${PV} )
49         linguas_sv? ( ${URI_PREFIX}swe.traineddata -> swe.traineddata-${PV} )
50         linguas_th? ( ${URI_PREFIX}tha.traineddata -> tha.traineddata-${PV} )
51         linguas_tl? ( ${URI_PREFIX}tgl.traineddata -> tgl.traineddata-${PV} )
52         linguas_tr? ( ${URI_PREFIX}tur.traineddata -> tur.traineddata-${PV} )
53         linguas_uk? ( ${URI_PREFIX}ukr.traineddata -> ukr.traineddata-${PV} )
54         linguas_vi? ( ${URI_PREFIX}vie.traineddata -> vie.traineddata-${PV} )
55         linguas_zh_CN? ( ${URI_PREFIX}chi_sim.traineddata -> chi_sim.traineddata-${PV} )
56         linguas_zh_TW? ( ${URI_PREFIX}chi_tra.traineddata -> chi_tra.traineddata-${PV} )
57         osd? ( ${URI_PREFIX}osd.traineddata -> osd.traineddata-${PV} )
58 "
59
60 LICENSE="Apache-2.0"
61 SLOT="0"
62 KEYWORDS="alpha amd64 ~arm ppc ppc64 ~sparc x86"
63
64 IUSE="doc examples jpeg opencl osd png +scrollview static-libs tiff training -webp linguas_ar linguas_bg linguas_ca linguas_chr linguas_cs linguas_de linguas_da linguas_el linguas_es linguas_fi linguas_fr linguas_he linguas_hi linguas_hu linguas_id linguas_it linguas_jp linguas_ko linguas_lt linguas_lv linguas_nl linguas_no linguas_pl linguas_pt linguas_ro linguas_ru linguas_sk linguas_sl linguas_sr linguas_sv linguas_th linguas_tl linguas_tr linguas_uk linguas_vi linguas_zh_CN linguas_zh_TW"
65
66 # With opencl USE=tiff is necessary in leptonica
67 DEPEND=">=media-libs/leptonica-1.71[zlib,tiff?,jpeg?,png?,webp?]
68                 opencl? ( virtual/opencl
69                                   media-libs/tiff:0
70                                   >=media-libs/leptonica-1.71[zlib,tiff,jpeg?,png?,webp?]
71                                 )
72         training? (
73           dev-libs/icu
74           x11-libs/pango
75           x11-libs/cairo
76         )
77 "
78 RDEPEND="${DEPEND}"
79
80 DOCS=(AUTHORS ChangeLog NEWS README ReleaseNotes )
81
82 PATCHES=(
83         "${FILESDIR}/tesseract-2.04-gcc47.patch"
84         "${FILESDIR}/${P}-fix-scrollview-disabled.patch"
85 )
86
87 src_unpack() {
88         unpack ${P}.tar.gz
89         use doc && unpack tesseract-ocr-3.02.02-doc-html.tar.gz
90         find "${DISTDIR}/" -name "*traineddata-${PV}" \
91                  -execdir sh -c 'cp -- "$0" "${S}/tessdata/${0%-*}"' '{}' ';' || die
92 }
93
94 src_configure() {
95         local myeconfargs=(
96                 $(use_enable opencl) \
97                 $(use_enable scrollview graphics)
98                 )
99         autotools-utils_src_configure
100 }
101
102 src_compile() {
103         default
104         if use training; then
105                 emake training
106         fi
107         }
108
109 src_install() {
110         autotools-utils_src_install
111
112         if use training; then
113                 pushd "${BUILD_DIR}"
114                 emake DESTDIR="${D}" training-install
115                 popd
116         fi
117
118         if use examples; then
119                 insinto /usr/share/doc/${PF}/examples
120                 doins testing/eurotext.tif testing/phototest.tif
121         fi
122
123         if use doc; then
124                 dohtml -r "${WORKDIR}"/"${MY_PN}"/doc/html/*
125         fi
126
127         # install language files
128         insinto /usr/share/tessdata
129         doins "${S}"/tessdata/*traineddata*
130 }