Gentoo Archives: gentoo-commits

From: Matthias Maier <tamiko@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/trilinos/
Date: Fri, 24 Apr 2020 18:48:23
Message-Id: 1587754073.44acb05070fc4d54bc750a9586452127084a65a7.tamiko@gentoo
1 commit: 44acb05070fc4d54bc750a9586452127084a65a7
2 Author: Matthias Maier <tamiko <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 24 17:52:42 2020 +0000
4 Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org>
5 CommitDate: Fri Apr 24 18:47:53 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44acb050
7
8 sci-libs/trilinos: version bump to 12.18.1
9
10 Package-Manager: Portage-2.3.99, Repoman-2.3.22
11 Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>
12
13 sci-libs/trilinos/Manifest | 1 +
14 sci-libs/trilinos/trilinos-12.18.1.ebuild | 209 ++++++++++++++++++++++++++++++
15 2 files changed, 210 insertions(+)
16
17 diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest
18 index 78510be64f9..2d59d00dbf2 100644
19 --- a/sci-libs/trilinos/Manifest
20 +++ b/sci-libs/trilinos/Manifest
21 @@ -1,2 +1,3 @@
22 DIST trilinos-12.14.1-patches-r0.tar.xz 6448 BLAKE2B f852a4612c400ddfb6dcecb476e0b9b2cd0f38ac9cd74fd09fc1f99ccb2588a4703f8c8514689c81d23aa218aff3cdcbe9b5205becea8936723d6e339705d54d SHA512 206bd08f0a5b7f7107e60c9e9c1a15fa7e74916bacb5399cccdd936b426768834ff24424ea77e8d1706afa98d88bb5a098b3b0203039024a3b5f5388c4a9735b
23 DIST trilinos-12.14.1.tar.gz 129036436 BLAKE2B e7401df2ff8408a7af4a8e90d93b1929df65228c4f5cf3c754d20ebdfa8f3835800f540e87c1198e0baf2fefe0920618ae497f59373720754ab0c9dc1da93136 SHA512 dfff0e0582cb5ad12614dd53e9635572c8d1ee86d96f432f5a6e046af63edb13f6bfa3037204ab89fbb0d27e9be9bd9661d47efb41ab2a6e421bca5eba6b6a87
24 +DIST trilinos-12.18.1.tar.gz 152007573 BLAKE2B 5dc2ee432d777712fb4ca1dc2d7ad68015f523fdbcbd4f55388a89d31c0946a1c5031b3e8f906952cf6b2f4f16928e6da5f17b1f6ee0f0e5669cfce5c8a09367 SHA512 e2a57df57e8e98ed97bbde9c1e768738f0eaccc32466aff6daa308573a860b3debee89bd570c113ca0f6a6458ff562aa6596ddf657236c368b7b2e26a4b4466b
25
26 diff --git a/sci-libs/trilinos/trilinos-12.18.1.ebuild b/sci-libs/trilinos/trilinos-12.18.1.ebuild
27 new file mode 100644
28 index 00000000000..58c77990f12
29 --- /dev/null
30 +++ b/sci-libs/trilinos/trilinos-12.18.1.ebuild
31 @@ -0,0 +1,209 @@
32 +# Copyright 1999-2020 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=7
36 +CMAKE_MAKEFILE_GENERATOR=emake
37 +
38 +inherit cmake-utils toolchain-funcs multilib toolchain-funcs
39 +
40 +DESCRIPTION="Scientific library collection for large scale problems"
41 +HOMEPAGE="http://trilinos.sandia.gov/"
42 +MY_PV="${PV//\./-}"
43 +PATCHSET="r0"
44 +SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
45 +
46 +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
47 +
48 +LICENSE="BSD LGPL-2.1"
49 +SLOT="0"
50 +
51 +IUSE="
52 + adolc arprec boost clp cuda eigen glpk gtest hdf5 hwloc hypre
53 + matio metis mkl mumps netcdf petsc qd scalapack scotch sparse
54 + superlu taucs tbb test threads tvmet yaml zlib X
55 +"
56 +
57 +# TODO: fix export cmake function for tests
58 +RESTRICT="test"
59 +
60 +RDEPEND="
61 + sys-libs/binutils-libs
62 + virtual/blas
63 + virtual/lapack
64 + virtual/mpi
65 + adolc? ( sci-libs/adolc )
66 + arprec? ( sci-libs/arprec )
67 + boost? ( dev-libs/boost )
68 + clp? ( sci-libs/coinor-clp )
69 + cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
70 + eigen? ( dev-cpp/eigen:3 )
71 + glpk? ( sci-mathematics/glpk )
72 + gtest? ( dev-cpp/gtest )
73 + hdf5? ( sci-libs/hdf5[mpi] )
74 + hypre? ( sci-libs/hypre )
75 + hwloc? ( sys-apps/hwloc )
76 + matio? ( sci-libs/matio )
77 + mkl? ( sci-libs/mkl )
78 + metis? ( || ( sci-libs/parmetis sci-libs/metis ) )
79 + mumps? ( sci-libs/mumps )
80 + netcdf? ( sci-libs/netcdf )
81 + petsc? ( sci-mathematics/petsc )
82 + qd? ( sci-libs/qd )
83 + scalapack? ( sci-libs/scalapack )
84 + scotch? ( sci-libs/scotch )
85 + sparse? ( sci-libs/cxsparse sci-libs/umfpack )
86 + superlu? ( sci-libs/superlu )
87 + taucs? ( sci-libs/taucs )
88 + tbb? ( dev-cpp/tbb )
89 + tvmet? ( dev-libs/tvmet )
90 + yaml? ( dev-cpp/yaml-cpp )
91 + zlib? ( sys-libs/zlib )
92 + X? ( x11-libs/libX11 )"
93 +DEPEND="${RDEPEND}
94 + virtual/pkgconfig"
95 +
96 +S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
97 +
98 +PATCHES=(
99 +)
100 +
101 +trilinos_conf() {
102 + local dirs libs d
103 + for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
104 + dirs="${dirs};${d:2}"
105 + done
106 + [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
107 + for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
108 + libs="${libs};${d:2}"
109 + done
110 + [[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
111 + dirs=""
112 + for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
113 + dirs="${dirs};${d:2}"
114 + done
115 + [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
116 +}
117 +
118 +src_configure() {
119 + local mycmakeargs=(
120 + -DBUILD_SHARED_LIBS=ON
121 + -DCMAKE_INSTALL_PREFIX="${EPREFIX}"
122 + -DCMAKE_SKIP_INSTALL_RPATH=ON
123 + -DTrilinos_INSTALL_CONFIG_DIR="${EPREFIX}/usr/$(get_libdir)/cmake"
124 + -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
125 + -DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
126 + -DTrilinos_ENABLE_ALL_PACKAGES=ON
127 + -DTrilinos_ENABLE_PyTrilinos=OFF
128 + -DTrilinos_ENABLE_SEACASChaco=OFF
129 + -DTrilinos_ENABLE_SEACASExodiff="$(usex netcdf)"
130 + -DTrilinos_ENABLE_SEACASExodus="$(usex netcdf)"
131 + -DTrilinos_ENABLE_TESTS="$(usex test)"
132 + -DZoltan2_ENABLE_Experimental=ON
133 + -DTPL_ENABLE_BinUtils=ON
134 + -DTPL_ENABLE_BLAS=ON
135 + -DTPL_ENABLE_LAPACK=ON
136 + -DTPL_ENABLE_MPI=ON
137 + -DTPL_ENABLE_ADOLC="$(usex adolc)"
138 + -DTPL_ENABLE_AMD="$(usex sparse)"
139 + -DTPL_ENABLE_ARPREC="$(usex arprec)"
140 + -DTPL_ENABLE_BLACS="$(usex scalapack)"
141 + -DTPL_ENABLE_BoostLib="$(usex boost)"
142 + -DTPL_ENABLE_Boost="$(usex boost)"
143 + -DTPL_ENABLE_Clp="$(usex clp)"
144 + -DTPL_ENABLE_CSparse="$(usex sparse)"
145 + -DTPL_ENABLE_CUDA="$(usex cuda)"
146 + -DTPL_ENABLE_CUSPARSE="$(usex cuda)"
147 + -DTPL_ENABLE_Eigen="$(usex eigen)"
148 + -DTPL_ENABLE_GLPK="$(usex glpk)"
149 + -DTPL_ENABLE_gtest="$(usex gtest)"
150 + -DTPL_ENABLE_HDF5="$(usex hdf5)"
151 + -DTPL_ENABLE_HWLOC="$(usex hwloc)"
152 + -DTPL_ENABLE_HYPRE="$(usex hypre)"
153 + -DTPL_ENABLE_Matio="$(usex matio)"
154 + -DTPL_ENABLE_METIS="$(usex metis)"
155 + -DTPL_ENABLE_MKL="$(usex mkl)"
156 + -DTPL_ENABLE_MUMPS="$(usex mumps)"
157 + -DTPL_ENABLE_Netcdf="$(usex netcdf)"
158 + -DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
159 + -DTPL_ENABLE_PETSC="$(usex petsc)"
160 + -DTPL_ENABLE_Pthread="$(usex threads)"
161 + -DTPL_ENABLE_QD="$(usex qd)"
162 + -DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
163 + -DTPL_ENABLE_Scotch="$(usex scotch)"
164 + -DTPL_ENABLE_SuperLU="$(usex superlu)"
165 + -DTPL_ENABLE_TAUCS="$(usex taucs)"
166 + -DTPL_ENABLE_TBB="$(usex tbb)"
167 + -DTPL_ENABLE_Thrust="$(usex cuda)"
168 + -DTPL_ENABLE_TVMET="$(usex tvmet)"
169 + -DTPL_ENABLE_UMFPACK="$(usex sparse)"
170 + -DTPL_ENABLE_X11="$(usex X)"
171 + -DTPL_ENABLE_yaml-cpp="$(usex yaml)"
172 + -DTPL_ENABLE_Zlib="$(usex zlib)"
173 + -DML_ENABLE_SuperLU:BOOL=OFF
174 + )
175 +
176 + use eigen && \
177 + mycmakeargs+=(
178 + -DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
179 + )
180 + use hypre && \
181 + mycmakeargs+=(
182 + -DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
183 + )
184 + use scotch && \
185 + mycmakeargs+=(
186 + -DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
187 + )
188 +
189 + # cxsparse is a rewrite of csparse + extras
190 + use sparse && \
191 + mycmakeargs+=(
192 + -DCSparse_LIBRARY_NAMES="cxsparse"
193 + )
194 +
195 + # mandatory blas and lapack
196 + trilinos_conf blas BLAS
197 + trilinos_conf lapack LAPACK
198 + use superlu && trilinos_conf superlu SuperLU
199 + use metis && trilinos_conf metis METIS
200 +
201 + # blacs library is included in scalapack these days
202 + if use scalapack; then
203 + trilinos_conf scalapack SCALAPACK
204 + mycmakeargs+=(
205 + -DBLACS_LIBRARY_NAMES="scalapack"
206 + -DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
207 + )
208 + fi
209 +
210 + #
211 + # Make sure we use the compiler wrappers in order to build trilinos.
212 + #
213 + export CC=mpicc CXX=mpicxx && tc-export CC CXX
214 +
215 + #
216 + # cmake-utils eclass patches the base directory CMakeLists.txt
217 + # which does not work for complex Trilinos CMake modules
218 + #
219 + CMAKE_BUILD_TYPE=RELEASE cmake-utils_src_configure
220 +}
221 +
222 +src_install() {
223 + cmake-utils_src_install
224 +
225 + # Clean up the mess:
226 + mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
227 + if [ -f "${ED}"/lib/exodus.py ]; then
228 + mv "${ED}"/lib/exodus.py "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
229 + fi
230 +
231 + #
232 + # register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
233 + # has a chance to pick up the libraries...
234 + #
235 + cat >> "${T}"/99trilinos <<- EOF
236 + LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
237 + PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
238 + EOF
239 + doenvd "${T}"/99trilinos
240 +}