Gentoo Archives: gentoo-commits

From: Justin Lecher <jlec@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: dev-cpp/eigen/
Date: Mon, 30 Nov 2015 10:58:28
Message-Id: 1448881084.6e651a74419dbb000081b0094934a57441aa27b2.jlec@gentoo
1 commit: 6e651a74419dbb000081b0094934a57441aa27b2
2 Author: Justin Lecher <jlec <AT> gentoo <DOT> org>
3 AuthorDate: Mon Nov 30 10:58:04 2015 +0000
4 Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
5 CommitDate: Mon Nov 30 10:58:04 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=6e651a74
7
8 dev-cpp/eigen: Version Bump
9
10 Package-Manager: portage-2.2.25
11 Signed-off-by: Justin Lecher <jlec <AT> gentoo.org>
12
13 dev-cpp/eigen/eigen-3.2.6.ebuild | 116 +++++++++++++++++++++++++++++++++++++++
14 dev-cpp/eigen/metadata.xml | 2 +-
15 2 files changed, 117 insertions(+), 1 deletion(-)
16
17 diff --git a/dev-cpp/eigen/eigen-3.2.6.ebuild b/dev-cpp/eigen/eigen-3.2.6.ebuild
18 new file mode 100644
19 index 0000000..7733d64
20 --- /dev/null
21 +++ b/dev-cpp/eigen/eigen-3.2.6.ebuild
22 @@ -0,0 +1,116 @@
23 +# Copyright 1999-2015 Gentoo Foundation
24 +# Distributed under the terms of the GNU General Public License v2
25 +# $Id$
26 +
27 +EAPI=5
28 +
29 +FORTRAN_NEEDED=fortran
30 +
31 +if [[ ${PV} == "9999" ]] ; then
32 + inherit mercurial
33 + EHG_REPO_URI="https://bitbucket.org/eigen/eigen"
34 + SRC_URI=""
35 + KEYWORDS=""
36 +else
37 + inherit vcs-snapshot
38 + SRC_URI="
39 + https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2
40 + https://bitbucket.org/eigen/eigen/commits/1d71b1341c03a7c485289be2c8bd906a259c0487/raw/ -> ${P}-cmake.patch
41 + "
42 + PATCHES=( "${DISTDIR}"/${P}-cmake.patch )
43 + KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
44 +fi
45 +
46 +inherit alternatives-2 cmake-utils fortran-2 multilib numeric
47 +
48 +DESCRIPTION="C++ template library for linear algebra"
49 +HOMEPAGE="http://eigen.tuxfamily.org/"
50 +
51 +SLOT="3"
52 +LICENSE="MPL-2.0"
53 +IUSE="adolc doc fortran fftw gmp metis mkl pastix sparse static-libs test"
54 +
55 +CDEPEND="
56 + adolc? ( sci-libs/adolc[sparse?] )
57 + fftw? ( sci-libs/fftw:3.0 )
58 + gmp? ( dev-libs/gmp:0 dev-libs/mpfr:0 )
59 + metis? ( sci-libs/metis )
60 + mkl? ( sci-libs/mkl )
61 + pastix? ( sci-libs/pastix )
62 + sparse? (
63 + dev-cpp/sparsehash
64 + sci-libs/cholmod[metis?]
65 + sci-libs/spqr
66 + sci-libs/superlu
67 + sci-libs/umfpack )"
68 +DEPEND="
69 + doc? ( app-doc/doxygen[dot,latex] )
70 + test? ( ${CDEPEND} )"
71 +
72 +RDEPEND="
73 + !dev-cpp/eigen:0
74 + ${CDEPEND}"
75 +
76 +src_prepare() {
77 + sed -i \
78 + -e "s:/usr:${EPREFIX}/usr:g" \
79 + -e "s:/bin/bash:${EPREFIX}/bin/bash:g" \
80 + cmake/*.cmake || die
81 + sed -i \
82 + -e "/DESTINATION/s:lib:$(get_libdir):g" \
83 + {blas,lapack}/CMakeLists.txt || die
84 +
85 + # TOFIX: static-libs for blas are always built with PIC
86 + use static-libs || sed -i \
87 + -e "/add_dependencies/s/eigen_[a-z]*_static//g" \
88 + -e "/TARGETS/s/eigen_[a-z]*_static//g" \
89 + -e "/add_library(eigen_[a-z]*_static/d" \
90 + -e "/target_link_libraries(eigen_[a-z]*_static/d" \
91 + {blas,lapack}/CMakeLists.txt || die
92 +
93 + sed -i -e "/Unknown build type/d" CMakeLists.txt || die
94 +
95 + cmake-utils_src_prepare
96 +}
97 +
98 +src_configure() {
99 + # TOFIX: is it worth fixing all the automagic given no library is built?
100 + # cmake has buggy disable_testing feature, so leave it for now
101 + local mycmakeargs=(
102 + -DDART_TESTING_TIMEOUT=300
103 + -DEIGEN_BUILD_BTL=OFF
104 + )
105 + export VARTEXFONTS="${T}/fonts"
106 + cmake-utils_src_configure
107 + # use fortran && FORTRAN_LIBS="blas lapack" not ready
108 + use fortran && FORTRAN_LIBS="blas"
109 +}
110 +
111 +src_compile() {
112 + local targets="${FORTRAN_LIBS}"
113 + use doc && targets+=" doc"
114 + use test && targets+=" check"
115 + cmake-utils_src_compile ${targets}
116 +}
117 +
118 +src_install() {
119 + cmake-utils_src_install
120 + use doc && dohtml -r "${BUILD_DIR}"/doc/html/*
121 + local x
122 + for x in ${FORTRAN_LIBS}; do
123 + local libname="eigen_${x}"
124 + emake DESTDIR="${D}" -C "${BUILD_DIR}/${x}" install ${libname}
125 + create_pkgconfig \
126 + --description "${DESCRIPTION} ${x^^} implementation" \
127 + --libs "-L\${libdir} -l${libname}" \
128 + --libs-private "-lm" \
129 + $([[ ${x} == lapack ]] && echo "--requires 'blas'") \
130 + ${libname}
131 + alternatives_for ${x} eigen 0 \
132 + /usr/$(get_libdir)/pkgconfig/${x}.pc ${libname}.pc
133 + done
134 +
135 + # Debian installs it and some projects started using it.
136 + insinto /usr/share/cmake/Modules/
137 + doins "${S}/cmake/FindEigen3.cmake"
138 +}
139
140 diff --git a/dev-cpp/eigen/metadata.xml b/dev-cpp/eigen/metadata.xml
141 index 187b1de..0adc362 100644
142 --- a/dev-cpp/eigen/metadata.xml
143 +++ b/dev-cpp/eigen/metadata.xml
144 @@ -1,4 +1,4 @@
145 -<?xml version='1.0' encoding='UTF-8'?>
146 +<?xml version="1.0" encoding="UTF-8"?>
147 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
148 <pkgmetadata>
149 <herd>sci</herd>