diff options
author | Justin Lecher <jlec@gentoo.org> | 2014-01-16 20:47:32 +0100 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2014-01-18 08:38:34 +0100 |
commit | c1bb2e08bbcadd345080790f1703591670288447 (patch) | |
tree | 11bb3de56232a9f19b7ea964c88c6ee65c648cce | |
parent | sci-chemistry/avogadro2: New package, written by me (diff) | |
download | sci-c1bb2e08bbcadd345080790f1703591670288447.tar.gz sci-c1bb2e08bbcadd345080790f1703591670288447.tar.bz2 sci-c1bb2e08bbcadd345080790f1703591670288447.zip |
dev-cpp/eigen: Backport cmake fix
Package-Manager: portage-2.2.8
-rw-r--r-- | dev-cpp/eigen/ChangeLog | 8 | ||||
-rw-r--r-- | dev-cpp/eigen/Manifest | 1 | ||||
-rw-r--r-- | dev-cpp/eigen/eigen-3.2.0-r1.ebuild | 102 | ||||
-rw-r--r-- | dev-cpp/eigen/metadata.xml | 14 |
4 files changed, 117 insertions, 8 deletions
diff --git a/dev-cpp/eigen/ChangeLog b/dev-cpp/eigen/ChangeLog index 521bc49e2..fc5132694 100644 --- a/dev-cpp/eigen/ChangeLog +++ b/dev-cpp/eigen/ChangeLog @@ -1,7 +1,13 @@ # ChangeLog for dev-cpp/eigen -# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 # $Header: /var/cvsroot/gentoo-x86/dev-cpp/eigen/ChangeLog,v 1.44 2011/03/25 16:01:28 jlec Exp $ +*eigen-3.2.0-r1 (16 Jan 2014) + + 16 Jan 2014; Justin Lecher <jlec@gentoo.org> +eigen-3.2.0-r1.ebuild, + metadata.xml: + Backport cmake fix + 20 Oct 2013; Honza Macháček <Hloupy.Honza@centrum.cz> eigen-9999.ebuild: Avoid creating TeX fonts out of the sandbox. diff --git a/dev-cpp/eigen/Manifest b/dev-cpp/eigen/Manifest index 069b6be05..6d2fb6df8 100644 --- a/dev-cpp/eigen/Manifest +++ b/dev-cpp/eigen/Manifest @@ -1,2 +1,3 @@ DIST eigen-3.1.4.tar.bz2 1052745 SHA256 80ea2d76b649e9ea413090f96c32bd408f07872b50cc6844bc3136e635492414 SHA512 555aea79b5dcdb8a1c15f223bb64191d69012a9f895e15218a2e0478bc7dc3d8a61d257c072ca29cd9e5788541ac0540af45320cfdb4095360dce841dfaba692 WHIRLPOOL b0e52eb7f6a89a75e67a3f0f3ad73abd0e51bfc639960c9f5699ae48c628e6160f6b3059178f4fa5b5212357b7cd5fe31082f06e0bfe1557d4dad1332999d62f +DIST eigen-3.2.0-cmake.patch 3294 SHA256 2be458affc18b833f31b767b823b1e490e6d0115d040a802eb334c5884c8ad88 SHA512 229c0c1f3d95ae505b5accd1aeba19f59a064218cf9b0d844dbc4c660a4cddb666f818268ba1899370877034a70a87317ca8bf14822e3b85d0bbe7f3bb5c7cf6 WHIRLPOOL ae78de8cc7f3b58749dcfefc6ac4fd96cca84e048b0337b1590d5097b4838c751c237844b4aa996ce75d10e830d406fa52ef68f509d0ae8e21a75fc589a1a6d3 DIST eigen-3.2.0.tar.bz2 1135851 SHA256 011f78960d939227f9276173d0c4cc0053bb9e0a7356539a9a6c7c89d984fab6 SHA512 ab30077c845b09aa3f652e4695f1e256c7c7ff1c0f850e38cf9867ab9659ec6008fa646c2796796ca718b996764e7e3d2811a2c6a24abacbe50a2513fc670ca5 WHIRLPOOL f1cbbc7405173ab1904a6f8272a0b7a558ec37060ce60f51b38e89f762e610844989dc99a3ba09cf34a0e94ca048ad56856adfbe69a4a54fe8c2abfd3d9ef24c diff --git a/dev-cpp/eigen/eigen-3.2.0-r1.ebuild b/dev-cpp/eigen/eigen-3.2.0-r1.ebuild new file mode 100644 index 000000000..13eb0f0e1 --- /dev/null +++ b/dev-cpp/eigen/eigen-3.2.0-r1.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +FORTRAN_NEEDED=fortran + +if [[ ${PV} == "9999" ]] ; then + _SCM=mercurial + EHG_REPO_URI="https://bitbucket.org/eigen/eigen" + SRC_URI="" + KEYWORDS="" +else + SRC_URI=" + http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2 + https://bitbucket.org/eigen/eigen/commits/1d71b1341c03a7c485289be2c8bd906a259c0487/raw/ -> ${P}-cmake.patch + " + KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +fi + +inherit alternatives-2 cmake-utils fortran-2 multilib vcs-snapshot ${_SCM} + +DESCRIPTION="C++ template library for linear algebra" +HOMEPAGE="http://eigen.tuxfamily.org/" + +SLOT="3" +LICENSE="MPL-2.0" +IUSE="adolc doc fortran fftw gmp mkl sparse static-libs test" + +# TODO: support for pastix +CDEPEND=" + adolc? ( sci-libs/adolc[sparse?] ) + fftw? ( >=sci-libs/fftw-3 ) + gmp? ( dev-libs/gmp dev-libs/mpfr ) + mkl? ( sci-libs/mkl ) + sparse? ( + dev-cpp/sparsehash + sci-libs/cholmod[metis] + sci-libs/superlu + sci-libs/umfpack )" +DEPEND=" + doc? ( app-doc/doxygen[dot,latex] ) + test? ( ${CDEPEND} )" + +RDEPEND=" + !dev-cpp/eigen:0 + ${CDEPEND}" + +PATCHES=( + "${DISTDIR}"/${P}-cmake.patch + ) + +src_configure() { + # TOFIX: static-libs for blas are always built with PIC + # TOFIX: is it worth fixing all the automagic given no library is built? + local mycmakeargs=( + -DEIGEN_BUILD_BTL=OFF + -DEIGEN_TEST_NO_OPENGL=ON + $(cmake-utils_use test EIGEN_BUILD_TESTS) + $(cmake-utils_use !fortran EIGEN_TEST_NO_FORTRAN) + ) + export VARTEXFONTS="${T}/fonts" + CMAKE_BUILD_TYPE="release" cmake-utils_src_configure + # lapack not ready yet? + use fortran && FORTRAN_LIBS="blas" +} + +src_compile() { + local targets="${FORTRAN_LIBS}" + use doc && targets+=" doc" + use test && targets+=" buildtests" + cmake-utils_src_compile ${targets} +} + +src_install() { + cmake-utils_src_install + use doc && dohtml -r "${CMAKE_BUILD_DIR}"/doc/html/* + local x + for x in ${FORTRAN_LIBS}; do + local libname="eigen_${x}" + cd "${CMAKE_BUILD_DIR}"/${x} + dolib.so lib${libname}.so + use static-libs && newlib.a lib${libname}_static.a lib${libname}.a + cat > ${libname}.pc <<-EOF + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include + Name: ${PN} + Description: ${DESCRIPTION} ${x^^} implementation + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -l${libname} + Libs.private: -lm + $([[ ${x} == lapack ]] && echo "Requires: blas") + EOF + alternatives_for ${x} eigen 0 \ + /usr/$(get_libdir)/pkgconfig/${x}.pc ${libname}.pc + insinto /usr/$(get_libdir)/pkgconfig + doins ${libname}.pc + done +} diff --git a/dev-cpp/eigen/metadata.xml b/dev-cpp/eigen/metadata.xml index a4a932705..a7abef913 100644 --- a/dev-cpp/eigen/metadata.xml +++ b/dev-cpp/eigen/metadata.xml @@ -1,23 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<herd>sci</herd> -<longdescription lang="en"> + <herd>sci</herd> + <longdescription lang="en"> Eigen is a lightweight C++ template library for vector and matrix math, a.k.a. linear algebra. Unlike most other linear algebra libraries, Eigen focuses on the simple mathematical needs of applications: games and other OpenGL apps, spreadsheets and other office apps, etc. Eigen is dedicated to providing optimal speed with GCC. </longdescription> -<use> - <flag name="adolc"> + <use> + <flag name="adolc"> Enable use for automatic differentiation using <pkg>sci-libs/adolc</pkg> </flag> - <flag name="mkl"> + <flag name="mkl"> Use propertary intel blas/lapack implementation through <pkg>sci-libs/mkl</pkg> </flag> - <flag name="sparse"> + <flag name="sparse"> Enable use for extra sparse matrix with <pkg>sci-libs/umfpack</pkg>, <pkg>sci-libs/cholmod</pkg>, <pkg>sci-libs/superlu</pkg> and <pkg>dev-cpp/sparsehash</pkg> </flag> -</use> + </use> </pkgmetadata> |