From d402f6a2790e3383890aefc340ff7e0b96cee949 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Tue, 21 Jul 2020 15:21:45 +0200 Subject: dev-cpp/eigen: EAPI-7 bump, switch to cmake.eclass - Update HOMEPAGE - Drop IUSE="c++11", build was broken anyway with it disabled - Drop obsolete slot 0 blocker - Sort dependencies - Drop useless src_unpack(), just define ${S} instead - Properly configure CMAKEPACKAGE_INSTALL_DIR instead of manual doins - configure in src_configure, compile in src_compile, drop src_test() - Drop obsolete -g2 removal - Consolidate and improve conditional !test seds - Replace CMAKE_BUILD_TYPE override sed with patch - Change FindEigen3.cmake module install path Package-Manager: Portage-3.0.0, Repoman-2.3.23 Signed-off-by: Andreas Sturmlechner --- dev-cpp/eigen/eigen-3.3.7-r1.ebuild | 100 +++++++++++++++++++++ dev-cpp/eigen/files/eigen-3.3.7-gentoo-cmake.patch | 24 +++++ 2 files changed, 124 insertions(+) create mode 100644 dev-cpp/eigen/eigen-3.3.7-r1.ebuild create mode 100644 dev-cpp/eigen/files/eigen-3.3.7-gentoo-cmake.patch (limited to 'dev-cpp') diff --git a/dev-cpp/eigen/eigen-3.3.7-r1.ebuild b/dev-cpp/eigen/eigen-3.3.7-r1.ebuild new file mode 100644 index 000000000000..ed987bda82b2 --- /dev/null +++ b/dev-cpp/eigen/eigen-3.3.7-r1.ebuild @@ -0,0 +1,100 @@ +# 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://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2" + +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 + +S="${WORKDIR}/${PN}-${PN}-323c052e1731" + +PATCHES=( "${FILESDIR}"/${P}-gentoo-cmake.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="${EPREFIX}"/usr/$(get_libdir)/cmake/${PN}${SLOT} + ) + use test && mycmakeargs+=( + -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 + use doc && cmake_src_compile doc + if use test; then + cmake_src_compile blas + cmake_src_compile buildtests + fi +} + +src_install() { + use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. ) + cmake_src_install +} diff --git a/dev-cpp/eigen/files/eigen-3.3.7-gentoo-cmake.patch b/dev-cpp/eigen/files/eigen-3.3.7-gentoo-cmake.patch new file mode 100644 index 000000000000..0389cd3b9333 --- /dev/null +++ b/dev-cpp/eigen/files/eigen-3.3.7-gentoo-cmake.patch @@ -0,0 +1,24 @@ +Let us properly override with CMAKE_BUILD_TYPE=Gentoo + +--- a/CMakeLists.txt 2018-12-11 18:57:55.000000000 +0100 ++++ b/CMakeLists.txt 2020-07-21 16:43:33.467680534 +0200 +@@ -14,18 +14,7 @@ + set(Eigen_BINARY_DIR ${Eigen3_BINARY_DIR}) + + # guard against bad build-type strings +- +-if (NOT CMAKE_BUILD_TYPE) +- set(CMAKE_BUILD_TYPE "Release") +-endif() +- +-string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower) +-if( NOT cmake_build_type_tolower STREQUAL "debug" +- AND NOT cmake_build_type_tolower STREQUAL "release" +- AND NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") +- message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).") +-endif() +- ++# yeah no. + + ############################################################################# + # retrieve version infomation # -- cgit v1.2.3-65-gdbad