1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
8 PYTHON_COMPAT=( python2_7 )
11 inherit eutils fortran-2 cmake-utils python-single-r1 toolchain-funcs \
12 virtualx wxwidgets java-pkg-opt-2 multilib
14 DESCRIPTION="Multi-language scientific plotting library"
15 HOMEPAGE="http://plplot.sourceforge.net/"
16 SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
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"
26 cairo? ( x11-libs/cairo:0=[svg?,X?] )
27 gd? ( media-libs/gd:2=[jpeg?,png?] )
28 java? ( >=virtual/jre-1.5:* )
30 app-text/ghostscript-gpl
33 lua? ( dev-lang/lua:0= )
37 cairo? ( dev-ml/cairo-ocaml[gtk] )
39 octave? ( sci-mathematics/octave:0= )
40 pdf? ( media-libs/libharu:0= )
47 dev-python/numpy[${PYTHON_USEDEP}]
48 qt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )
50 qhull? ( media-libs/qhull:0= )
55 shapefile? ( sci-libs/shapelib:0= )
67 gd? ( media-libs/gd:2=[truetype] )
70 x11-libs/wxGTK:${WX_GTK_VER}=[X]
71 x11-libs/agg:0=[truetype?]
85 ocaml? ( dev-ml/findlib )
86 octave? ( >=dev-lang/swig-2.0.12 )
87 python? ( dev-lang/swig )
89 media-fonts/font-misc-misc
90 media-fonts/font-cursor-misc
93 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) qt4? ( dynamic ) test? ( latex ) tk? ( tcl )"
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
103 use python && python-single-r1_pkg_setup
104 java-pkg-opt-2_pkg_setup
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
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
121 -e 's:${DATA_DIR}/examples:${DOC_DIR}/examples:g' \
122 $(find "${S}" -name CMakeLists.txt) || die
124 -e 's:${VERSION}::g' \
125 -e "s:doc/\${PACKAGE}:doc/${PF}:" \
126 cmake/modules/instdirs.cmake || die
127 java-utils-2_src_prepare
131 # don't build doc, it brings a whole lot of horrible dependencies
133 # -DPLPLOT_USE_QT5=ON
134 # Not recomended by upstream, check next release
139 -DTEST_DYNDRIVERS=OFF
140 -DCMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
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)
206 [[ $(tc-getFC) != *g77 ]] && \
208 $(cmake-utils_use_enable fortran f95)
211 use truetype && mycmakeargs+=(
212 -DPL_FREETYPE_FONT_PATH:PATH="${EPREFIX}/usr/share/fonts/freefont"
214 use shapefile && mycmakeargs+=(
215 -DSHAPELIB_INCLUDE_DIR="${EPREFIX}/usr/include/libshp"
217 use ocaml && mycmakeargs+=(
218 -DOCAML_INSTALL_DIR="$(ocamlc -where)"
220 use python && mycmakeargs+=(
221 $(cmake-utils_use_enable qt4 pyqt4)
224 cmake-utils_src_configure
226 # clean up bloated pkg-config files (help linking properly on prefix)
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
235 virtx cmake-utils_src_test
239 cmake-utils_src_install
240 if use examples; then
241 docompress -x /usr/share/doc/${PF}/examples
243 rm -r "${ED}"/usr/share/doc/${PF}/examples || die
246 java-pkg_dojar "${BUILD_DIR}"/examples/java/${PN}.jar
247 java-pkg_regso "${ED}"/usr/$(get_libdir)/jni/plplotjavac_wrap.so