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.

153 lines
3.6 KiB

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
WX_GTK_VER="3.0-gtk3"
PYTHON_COMPAT=( python3_{7..9} )
# gdl's build system is a travesty, and actually calls
# itself in the testsuite, which is something that ninja
# obviously doesn't support.
CMAKE_MAKEFILE_GENERATOR=emake
inherit cmake python-r1 toolchain-funcs virtualx wxwidgets
DESCRIPTION="GNU Data Language"
HOMEPAGE="https://github.com/gnudatalanguage/gdl"
SRC_URI="https://github.com/gnudatalanguage/gdl/archive/v$(ver_cut 1-3)-rc.$(ver_cut 5).tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="+eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
openmp png proj postscript python tiff udunits wxwidgets"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
dev-cpp/antlr-cpp:2=
dev-libs/expat
sci-libs/gsl:0=
sci-libs/plplot:0=[cxx,-dynamic]
sys-libs/ncurses:0=
sys-libs/readline:0=
sys-libs/zlib
x11-libs/libX11
fftw? ( sci-libs/fftw:3.0= )
glpk? ( sci-mathematics/glpk:= )
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[${PYTHON_USEDEP}]
)
tiff? (
media-libs/tiff
sci-libs/libgeotiff
)
udunits? ( sci-libs/udunits )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
DEPEND="${RDEPEND}
eigen? ( dev-cpp/eigen:3 )"
BDEPEND="
virtual/pkgconfig
python? ( app-admin/chrpath )"
S="${WORKDIR}/${PN}-$(ver_cut 1-3)-rc.$(ver_cut 5)"
PATCHES=( "${FILESDIR}"/${PN}-1.0.0_rc3-cmake.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 && setup-wxwidgets unicode
use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
# remove bundled antlr
rm -r src/antlr || die
# gentoo: avoid install files in datadir directory
# and manually install them in src_install
sed -e '/AUTHORS/d' -i CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
# MPI is still very buggy
# x11=off does not compile
local mycmakeargs=(
-DMPI=OFF
-DREADLINE=ON
-DX11=ON
-DEXPAT=ON
-DEIGEN3=$(usex eigen)
-DFFTW=$(usex fftw)
-DGRIB=OFF
-DGLPK=$(usex glpk)
-DHDF=$(usex hdf)
-DHDF5=$(usex hdf5)
-DLIBPROJ4=$(usex proj)
-DNETCDF=$(usex netcdf)
-DOPENMP=$(usex openmp)
-DPNGLIB=$(usex png)
-DUDUNITS2=$(usex udunits)
-DWXWIDGETS=$(usex wxwidgets)
-DGRAPHICSMAGICK=$(usex imagemagick $(usex graphicsmagick))
-DMAGICK=$(usex imagemagick $(usex !graphicsmagick))
-DTIFF=$(usex tiff)
-DGEOTIFF=$(usex tiff)
-DSHAPELIB=OFF
-DPLPLOTDIR="${EPREFIX}"/usr/$(get_libdir)
)
configuration() {
mycmakeargs+=( "$@" )
cmake_src_configure
}
configuration -DPYTHON_MODULE=OFF -DPYTHON=OFF
use python && python_foreach_impl configuration -DPYTHON_MODULE=ON -DPYTHON=ON
}
src_compile() {
cmake_src_compile
use python && python_foreach_impl cmake_src_compile
}
src_test() {
# there is check target instead of the ctest to define some LDPATH
virtx cmake_build check
}
src_install() {
cmake_src_install
if use python; then
installation() {
chrpath -d src/GDL.so || die
python_domodule src/GDL.so
}
python_foreach_impl run_in_build_dir installation
dodoc PYTHON.txt
fi
newenvd - 50gdl <<-_EOF_
GDL_PATH="+${EPREFIX}/usr/share/gnudatalanguage"
_EOF_
}