diff options
Diffstat (limited to 'dev-cpp/eigen/eigen-3.3.9.ebuild')
-rw-r--r-- | dev-cpp/eigen/eigen-3.3.9.ebuild | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/dev-cpp/eigen/eigen-3.3.9.ebuild b/dev-cpp/eigen/eigen-3.3.9.ebuild new file mode 100644 index 000000000000..27c31cc35507 --- /dev/null +++ b/dev-cpp/eigen/eigen-3.3.9.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +FORTRAN_NEEDED="test" +inherit cmake cuda fortran-2 + +DESCRIPTION="C++ template library for linear algebra" +HOMEPAGE="http://eigen.tuxfamily.org/index.php?title=Main_Page" +SRC_URI="https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.gz" + +LICENSE="MPL-2.0" +SLOT="3" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector + +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( + app-doc/doxygen[dot] + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + ) + test? ( virtual/pkgconfig ) +" +DEPEND=" + cuda? ( dev-util/nvidia-cuda-toolkit ) + test? ( + dev-libs/gmp:0 + dev-libs/mpfr:0 + media-libs/freeglut + media-libs/glew + sci-libs/adolc[sparse] + sci-libs/cholmod + sci-libs/fftw:3.0 + sci-libs/pastix + sci-libs/scotch + sci-libs/spqr + sci-libs/superlu + sci-libs/umfpack + virtual/opengl + ) +" +# Missing: +# METIS-5 +# GOOGLEHASH + +PATCHES=( + "${FILESDIR}"/${PN}-3.3.7-gentoo-cmake.patch + "${FILESDIR}"/${PN}-3.3.9-max-macro.patch + # disable the cholmod tests, they always fail + "${FILESDIR}"/${PN}-3.3.9-disable-cholmod_support.patch +) + +src_prepare() { + cmake_src_prepare + + cmake_comment_add_subdirectory demos + + if ! use test; then + sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \ + -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \ + -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \ + -i CMakeLists.txt || die + fi + + use cuda && cuda_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKEPACKAGE_INSTALL_DIR=$(get_libdir)/cmake/${PN}${SLOT} + ) + use test && mycmakeargs+=( + # the OpenGL testsuite is extremely brittle, bug #712808 + -DEIGEN_TEST_NO_OPENGL=ON + -DEIGEN_TEST_CXX11=ON + -DEIGEN_TEST_NOQT=ON + -DEIGEN_TEST_ALTIVEC=$(usex cpu_flags_ppc_altivec) + -DEIGEN_TEST_CUDA=$(usex cuda) + -DEIGEN_TEST_OPENMP=$(usex openmp) + -DEIGEN_TEST_NEON64=$(usex cpu_flags_arm_neon) + -DEIGEN_TEST_VSX=$(usex cpu_flags_ppc_vsx) + ) + cmake_src_configure +} + +src_compile() { + cmake_src_compile + if use doc; then + cmake_src_compile doc + HTML_DOCS=( "${BUILD_DIR}"/doc/html/. ) + fi + if use test; then + cmake_src_compile blas + cmake_src_compile buildtests + + # tests generate random data, which + # obviously fails for some seeds + export EIGEN_SEED=712808 + fi +} |