You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-lang/gdl/gdl-0.9.6-r3.ebuild

162 lines
4.0 KiB

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
WX_GTK_VER="3.0"
PYTHON_COMPAT=( python2_7 )
inherit cmake-utils eutils python-r1 wxwidgets toolchain-funcs virtualx
DESCRIPTION="GNU Data Language"
HOMEPAGE="https://github.com/gnudatalanguage/gdl"
SRC_URI="mirror://sourceforge/gnudatalanguage/${P}v2.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="+eigen fftw graphicsmagick gshhs hdf hdf5 +imagemagick netcdf openmp
png proj postscript python static-libs udunits wxwidgets"
RDEPEND="
dev-cpp/antlr-cpp:2=
sci-libs/gsl:0=
sci-libs/plplot:0=[-dynamic]
sys-libs/ncurses:0=
sys-libs/readline:0=
sys-libs/zlib:0=
x11-libs/libX11:0=
fftw? ( sci-libs/fftw:3.0= )
gshhs? ( sci-geosciences/gshhs-data sci-geosciences/gshhs:0= )
hdf? ( sci-libs/hdf:0= )
hdf5? ( sci-libs/hdf5:0= )
imagemagick? (
!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
)
netcdf? ( sci-libs/netcdf )
proj? ( sci-libs/proj )
postscript? ( dev-libs/pslib )
python? (
${PYTHON_DEPS}
|| (
dev-python/numpy-python2[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
)
)
udunits? ( sci-libs/udunits )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
DEPEND="${RDEPEND}
dev-java/antlr:0[java(+),script(+)]
virtual/pkgconfig
eigen? ( dev-cpp/eigen:3 )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
"${FILESDIR}"/0.9.2-include.patch
"${FILESDIR}"/0.9.5-antlr.patch
"${FILESDIR}"/0.9.5-png.patch
"${FILESDIR}"/0.9.6-fix-file-move.patch
"${FILESDIR}"/0.9.6-fix-python-function-call.patch
"${FILESDIR}"/0.9.6-fun-fix.patch
"${FILESDIR}"/0.9.6-python-use-path-and-startup.patch
"${FILESDIR}"/0.9.6-disable-tests-hanging-under-xvfb-run.patch
"${FILESDIR}"/0.9.6-gcc6.patch
"${FILESDIR}"/0.9.6-formats.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
src_prepare() {
use wxwidgets && need-wxwidgets unicode
use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
# make sure antlr includes are from system and rebuild the sources with it
# https://sourceforge.net/p/gnudatalanguage/patches/39/
rm -r src/antlr || die
einfo "Regenerating grammar"
pushd src >/dev/null || die
local i
for i in *.g; do
antlr ${i} || die
done
popd >/dev/null || die
# gentoo: avoid install files in datadir directory
# and manually install them in src_install
sed -e '/AUTHORS/d' -i CMakeLists.txt || die
cmake-utils_src_prepare
}
src_configure() {
# MPI is still very buggy
# x11=off does not compile
local mycmakeargs=(
-DMPICH=OFF
-DBUNDLED_ANTLR=OFF
-DX11=ON
-DEIGEN3="$(usex eigen)"
-DFFTW="$(usex fftw)"
-DGRIB=OFF
-DGSHHS="$(usex gshhs)"
-DHDF="$(usex hdf)"
-DHDF5="$(usex hdf5)"
-DLIBPROJ4="$(usex proj)"
-DNETCDF="$(usex netcdf)"
-DOPENMP="$(usex openmp)"
-DPNGLIB="$(usex png)"
-DPSLIB="$(usex postscript)"
-DUDUNITS="$(usex udunits)"
-DWXWIDGETS="$(usex wxwidgets)"
)
if use imagemagick; then
if use graphicsmagick; then
mycmakeargs+=( -DGRAPHICSMAGICK=ON -DMAGICK=OFF )
else
mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=ON )
fi
else
mycmakeargs+=( -DGRAPHICSMAGICK=OFF -DMAGICK=OFF )
fi
configuration() {
mycmakeargs+=( $@ )
cmake-utils_src_configure
}
configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF
use python && python_foreach_impl configuration -DPYTHON_MODULE=ON -DPYTHON=ON
}
src_compile() {
cmake-utils_src_compile
use python && python_foreach_impl cmake-utils_src_make
}
src_test() {
# there is check target instead of the ctest to define some LDPATH
virtx emake -C "${BUILD_DIR}" check
}
src_install() {
cmake-utils_src_install
if use python; then
installation() {
mv src/libgdl.so GDL.so || die
python_domodule GDL.so
}
python_foreach_impl run_in_build_dir installation
dodoc PYTHON.txt
fi
#dodoc AUTHORS README
echo "GDL_PATH=\"+${EPREFIX}/usr/share/gnudatalanguage\"" > 50gdl || die
doenvd 50gdl
}