app-editors/kakoune: drop old 0_pre20160620
[gentoo.git] / sci-libs / plplot / plplot-5.11.1-r1.ebuild
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=5
5
6 WX_GTK_VER="3.0"
7 FORTRAN_NEEDED=fortran
8 PYTHON_COMPAT=( python2_7 )
9 VIRTUALX_REQUIRED=test
10
11 inherit eutils fortran-2 cmake-utils python-single-r1 toolchain-funcs \
12         virtualx wxwidgets java-pkg-opt-2 multilib
13
14 DESCRIPTION="Multi-language scientific plotting library"
15 HOMEPAGE="http://plplot.sourceforge.net/"
16 SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
17
18 LICENSE="LGPL-2"
19 SLOT="0/12"
20 KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
21 IUSE="cairo cxx doc +dynamic examples fortran gd java jpeg latex lua
22         ocaml octave pdf pdl png python qhull qt4 shapefile svg tcl test
23         threads tk truetype wxwidgets X"
24
25 RDEPEND="
26         cairo? ( x11-libs/cairo:0=[svg?,X?] )
27         gd? ( media-libs/gd:2=[jpeg?,png?] )
28         java? ( >=virtual/jre-1.5:* )
29         latex? (
30                 app-text/ghostscript-gpl
31                 virtual/latex-base
32         )
33         lua? ( dev-lang/lua:0= )
34         ocaml? (
35                 dev-lang/ocaml
36                 dev-ml/camlidl
37                 cairo? ( dev-ml/cairo-ocaml[gtk] )
38         )
39         octave? ( sci-mathematics/octave:0= )
40         pdf? ( media-libs/libharu:0= )
41         pdl? (
42                 dev-perl/PDL
43                 dev-perl/XML-DOM
44         )
45         python? (
46                 ${PYTHON_DEPS}
47                 dev-python/numpy[${PYTHON_USEDEP}]
48                 qt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )
49         )
50         qhull? ( media-libs/qhull:0= )
51         qt4? (
52                 dev-qt/qtgui:4=
53                 dev-qt/qtsvg:4=
54         )
55         shapefile? ( sci-libs/shapelib:0= )
56         tcl? (
57                 dev-lang/tcl:0=
58                 dev-tcltk/itcl:0=
59                 tk? (
60                         dev-lang/tk:0=
61                         dev-tcltk/itk
62                 )
63         )
64         truetype? (
65                 media-fonts/freefont
66                 media-libs/lasi:0=
67                 gd? ( media-libs/gd:2=[truetype] )
68         )
69         wxwidgets? (
70                 x11-libs/wxGTK:${WX_GTK_VER}=[X]
71                 x11-libs/agg:0=[truetype?]
72         )
73         X? (
74                 x11-libs/libX11:0=
75                 x11-libs/libXau:0=
76                 x11-libs/libXdmcp:0=
77         )"
78
79 DEPEND="${RDEPEND}
80         virtual/pkgconfig
81         java? (
82                 >=virtual/jdk-1.5
83                 dev-lang/swig
84         )
85         ocaml? ( dev-ml/findlib )
86         octave? ( >=dev-lang/swig-2.0.12 )
87         python? ( dev-lang/swig )
88         test? (
89                 media-fonts/font-misc-misc
90                 media-fonts/font-cursor-misc
91         )"
92
93 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) qt4? ( dynamic ) test? ( latex ) tk? ( tcl )"
94
95 PATCHES=(
96         "${FILESDIR}"/${PN}-5.9.6-python.patch
97         "${FILESDIR}"/${PN}-5.11.0-ocaml.patch
98         "${FILESDIR}"/${PN}-5.11.0-octave.patch
99         "${FILESDIR}"/${PN}-5.11.0-multiarch.patch
100 )
101
102 pkg_setup() {
103         use python && python-single-r1_pkg_setup
104         java-pkg-opt-2_pkg_setup
105         fortran-2_pkg_setup
106 }
107
108 src_prepare() {
109         use wxwidgets && need-wxwidgets unicode
110         cmake-utils_src_prepare
111         # avoid installing license
112         sed -i -e '/COPYING.LIB/d' CMakeLists.txt || die
113         # prexify hard-coded /usr/include in cmake modules
114         sed -i \
115                 -e "s:/usr/include:${EPREFIX}/usr/include:g" \
116                 -e "s:/usr/lib:${EPREFIX}/usr/$(get_libdir):g" \
117                 -e "s:/usr/share:${EPREFIX}/usr/share:g" \
118                 cmake/modules/*.cmake || die
119         # change default install directories for doc and examples
120         sed -i \
121                 -e 's:${DATA_DIR}/examples:${DOC_DIR}/examples:g' \
122                 $(find "${S}" -name CMakeLists.txt) || die
123         sed -i \
124                 -e 's:${VERSION}::g' \
125                 -e "s:doc/\${PACKAGE}:doc/${PF}:" \
126                 cmake/modules/instdirs.cmake || die
127         java-utils-2_src_prepare
128 }
129
130 src_configure() {
131         # don't build doc, it brings a whole lot of horrible dependencies
132
133         # -DPLPLOT_USE_QT5=ON
134         # Not recomended by upstream, check next release
135
136         local mycmakeargs=(
137                 -DPLD_plmeta=ON
138                 -DPLD_cgm=ON
139                 -DTEST_DYNDRIVERS=OFF
140                 -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
141                 -DENABLE_ada=OFF
142                 -DENABLE_d=OFF
143                 -DBUILD_DVI=OFF
144                 -DDOX_DOC=OFF
145                 -DBUILD_DOC=OFF
146                 -DUSE_RPATH=OFF
147                 -DPLD_wxpng=OFF
148                 $(cmake-utils_use doc PREBUILT_DOC)
149                 $(cmake-utils_use_build test)
150                 $(cmake-utils_use_has python NUMPY)
151                 $(cmake-utils_use_has shapefile SHAPELIB)
152                 $(cmake-utils_use_with truetype FREETYPE)
153                 $(cmake-utils_use_enable cxx)
154                 $(cmake-utils_use_enable dynamic DYNDRIVERS)
155                 $(cmake-utils_use_enable fortran f77)
156                 $(cmake-utils_use_enable java)
157                 $(cmake-utils_use_enable lua)
158                 $(cmake-utils_use_enable ocaml)
159                 $(cmake-utils_use_enable octave)
160                 $(cmake-utils_use_enable pdl)
161                 $(cmake-utils_use_enable python)
162                 $(cmake-utils_use_enable qt4 qt)
163                 $(cmake-utils_use_enable tcl)
164                 $(cmake-utils_use_enable tcl itcl)
165                 $(cmake-utils_use_enable tk)
166                 $(cmake-utils_use_enable tk itk)
167                 $(cmake-utils_use_enable wxwidgets)
168                 $(cmake-utils_use threads PL_HAVE_PTHREAD)
169                 $(cmake-utils_use qhull PL_HAVE_QHULL)
170                 $(cmake-utils_use qt4 PLD_aqt)
171                 $(cmake-utils_use qt4 PLD_bmpqt)
172                 $(cmake-utils_use qt4 PLD_epsqt)
173                 $(cmake-utils_use qt4 PLD_extqt)
174                 $(cmake-utils_use qt4 PLD_jpgqt)
175                 $(cmake-utils_use qt4 PLD_memqt)
176                 $(cmake-utils_use qt4 PLD_pdfqt)
177                 $(cmake-utils_use qt4 PLD_pngqt)
178                 $(cmake-utils_use qt4 PLD_ppmqt)
179                 $(cmake-utils_use qt4 PLD_svgqt)
180                 $(cmake-utils_use qt4 PLD_qtwidget)
181                 $(cmake-utils_use qt4 PLD_tiffqt)
182                 $(cmake-utils_use cairo PLD_extcairo)
183                 $(cmake-utils_use cairo PLD_memcairo)
184                 $(cmake-utils_use cairo PLD_pdfcairo)
185                 $(cmake-utils_use cairo PLD_pngcairo)
186                 $(cmake-utils_use cairo PLD_pscairo)
187                 $(cmake-utils_use cairo PLD_svgcairo)
188                 $(cmake-utils_use cairo PLD_wincairo)
189                 $(cmake-utils_use cairo PLD_xcairo)
190                 $(usex cairo "" "-DDEFAULT_NO_CAIRO_DEVICES=ON")
191                 $(cmake-utils_use tk PLD_ntk)
192                 $(cmake-utils_use tk PLD_tk)
193                 $(cmake-utils_use tk PLD_tkwin)
194                 $(cmake-utils_use gd PLD_gif)
195                 $(cmake-utils_use gd PLD_jpeg)
196                 $(cmake-utils_use gd PLD_png)
197                 $(cmake-utils_use pdf PLD_pdf)
198                 $(cmake-utils_use latex PLD_ps)
199                 $(cmake-utils_use latex PLD_pstex)
200                 $(cmake-utils_use truetype PLD_psttf)
201                 $(cmake-utils_use svg PLD_svg)
202                 $(cmake-utils_use wxwidgets PLD_wxwidgets)
203                 $(cmake-utils_use X PLD_xwin)
204         )
205
206         [[ $(tc-getFC) != *g77 ]] && \
207                 mycmakeargs+=(
208                 $(cmake-utils_use_enable fortran f95)
209         )
210
211         use truetype && mycmakeargs+=(
212                 -DPL_FREETYPE_FONT_PATH:PATH="${EPREFIX}/usr/share/fonts/freefont"
213         )
214         use shapefile && mycmakeargs+=(
215                 -DSHAPELIB_INCLUDE_DIR="${EPREFIX}/usr/include/libshp"
216         )
217         use ocaml && mycmakeargs+=(
218                 -DOCAML_INSTALL_DIR="$(ocamlc -where)"
219         )
220         use python && mycmakeargs+=(
221                 $(cmake-utils_use_enable qt4 pyqt4)
222         )
223
224         cmake-utils_src_configure
225
226         # clean up bloated pkg-config files (help linking properly on prefix)
227         sed -i \
228                 -e "/Cflags/s:-I\(${EPREFIX}\|\)/usr/include[[:space:]]::g" \
229                 -e "/Libs/s:-L\(${EPREFIX}\|\)/usr/lib\(64\|\)[[:space:]]::g" \
230                 -e "s:${LDFLAGS}::g" \
231                 "${BUILD_DIR}"/pkgcfg/*pc || die
232 }
233
234 src_test() {
235         virtx cmake-utils_src_test
236 }
237
238 src_install() {
239         cmake-utils_src_install
240         if use examples; then
241                 docompress -x /usr/share/doc/${PF}/examples
242         else
243                 rm -r "${ED}"/usr/share/doc/${PF}/examples || die
244         fi
245         if use java; then
246                 java-pkg_dojar "${BUILD_DIR}"/examples/java/${PN}.jar
247                 java-pkg_regso "${ED}"/usr/$(get_libdir)/jni/plplotjavac_wrap.so
248         fi
249 }