summaryrefslogtreecommitdiff
path: root/sci-libs/trilinos
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-08-16 09:29:11 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-08-16 09:29:11 +0100
commitaccbdffb733f126a43659c4d2c552b765726ca86 (patch)
treec519bc70e89ff193f4f124a29df2555f54792379 /sci-libs/trilinos
parent643a5121202a0a33fb4d77fbf1c4dde26de3224c (diff)
gentoo auto-resync : 16:08:2023 - 09:29:11
Diffstat (limited to 'sci-libs/trilinos')
-rw-r--r--sci-libs/trilinos/Manifest2
-rw-r--r--sci-libs/trilinos/trilinos-14.4.0.ebuild256
2 files changed, 258 insertions, 0 deletions
diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest
index 6eb5d34bfcf2..b761787df383 100644
--- a/sci-libs/trilinos/Manifest
+++ b/sci-libs/trilinos/Manifest
@@ -4,8 +4,10 @@ DIST trilinos-13.4.0.tar.gz 168733479 BLAKE2B 3c4a1c89b792ec771c6347eebb6bb54a82
DIST trilinos-13.4.1.tar.gz 168720416 BLAKE2B 5201c36aa998045f4eab99b67fce25f9a2f2a9524b8ca1147cd8db9ccc306e3df61336df3b2ee981317c8defbae2df9e36546a0e5ddfed3142213e437e4dfba0 SHA512 9c0fb3af2fa625cd0af1309bfa61c212e12657820707348c81355d506e07f540da5e42aa30237fbc80adf257bb636029345f248abaf7ef96fcdaed1c28ec3a19
DIST trilinos-14.0.0.tar.gz 179086187 BLAKE2B 0e0c3e3fa4b88164cd7e90720ec42eb007f8e89734e5537a7eba1f17754faf30c21fa1d77f7e8a7968bdb8bb230596a1adc74f8170577fd7b4eccb2e88c5b8f6 SHA512 b08fcf4f6bf2605267c44c038f352949e5bfe14b853de77e4c80e28f66c088ead1699b1e49f8475f1b98ce5a21238b98a299e760f1373e585c78b65120fa18e5
DIST trilinos-14.2.0.tar.gz 178867695 BLAKE2B 07ff61775399014091aae9c14ad12a69ab19853bc3489c15775490aa3f6e8ae868ac4e90bf046d10bf1ecb1d5558992f0afb0ce656f947336559fcf10085c038 SHA512 c676ff2b59904dc05a0ff434dd164bc96076999a5851c160c5851c124d3c519dd0cc3f088eba19f2000c7d1c2377f4efb2b2b8f9f3ee641b2180f3b99b28ea0b
+DIST trilinos-14.4.0.tar.gz 188325969 BLAKE2B 909e3ebe229d035263d835e0d68977516d2a5df168785021fe300f7904e149586a82a6dba271cc1472455472397ee5467443244fb68fb27c00cf4e9b3d10a282 SHA512 497fc4fb4ab4338fffef7111635f3dc3b12cb7302bc3f56bafb5cc75b7c68e94cc22fcacd9dd625803a0f38e4fbce5105cab61df76e033a4581568c36a53fe8a
EBUILD trilinos-13.4.0-r3.ebuild 7360 BLAKE2B e166d328c767fd6a0ca36544e3911d0076f47dcf3c4a169a4dfea2d87871bd0a4f157bb59fe8afaa78f13264d3a3e200c488e6f05b6558c12153fa83f20ef033 SHA512 9a1c3cdab829e20806a0f4ccd95c41910fc7358e08db8ef20a7042e059af91945a5628e5dd4674560b43ba4bdd31ec38d2dab228374e25fa800f3f7223ba3816
EBUILD trilinos-13.4.1.ebuild 7368 BLAKE2B a1742a23f74d9c72e83def6203aadb6e263334fe4d6c8099d71b169aa7948b86cab1c6626e239967bedfb2f1f15ad590c7dfc53971911a0abf56f0d2c8b4c163 SHA512 2db0df5e4165e21235dfa8c70e007c254c0f706ba50c35f8611c7bc1e477e2cfd2ce367f9da7bfb02c2e02eceec097c115ae42644a7149a21b403f1d84b240fc
EBUILD trilinos-14.0.0.ebuild 7696 BLAKE2B 2cb1eae14a4f94dca45046dfbf527e399ed07be857e81916fb07e222955ba60b0083b05ab019d06c87590c2687abae53e7dac0e49e4b696cb07543bc3f26c577 SHA512 1a3046aa3e5f31dfc473e6b198d982115cbdd5c39eea341867be4cf6beab811e417ae68fa6f6fb8bca63043c462237c6ef6e634129fd3c050bdb9f96153b06d1
EBUILD trilinos-14.2.0.ebuild 7646 BLAKE2B d514d14f141fc3aac82c17866e4d60443eda9afd6e0b5b992ec48605929a652701636596e7f17d769595e66b276ebf26c69a8fc1820b0e011fa1749f7c0dbcdb SHA512 ef3c1cba97c2d942c4df4601fa699b826578723b0ee1fd310e52282ccd6d86d7670c901aef4672945cb473e638546afa877e7969a6e6190bb8011e7e99784b6a
+EBUILD trilinos-14.4.0.ebuild 7577 BLAKE2B 73773263b8e4244fd5ca88885830cebaac586d2bb66379d03792213408b656fe98e1ff5d9c9008205735ed3228662408b3c476026a0cc6be5a7e1a15864a97ee SHA512 bf477dacd96d282313bc44c4f615a5687a696b4ecb7a027ea250131eba0655135450d6837545979344556b6dcd0887725660f9f6c4a5116500b9197dfa62a24a
MISC metadata.xml 2821 BLAKE2B 44e03179620d8db5229793dabfb70e33dd81d686ee430b46d376dc13b96fd3a1b47123c53001e39973b776e79db2326b280d964ab9054aa3a58c1532f9b9b19c SHA512 7805ec93f2bb73749c5881785cb6664c8d5878fed68c5c7b11ba0d28f2dc33a52f571bede906e7a459d0f17c88dae66305ad5b1ce7382783680c82d8d7241ef2
diff --git a/sci-libs/trilinos/trilinos-14.4.0.ebuild b/sci-libs/trilinos/trilinos-14.4.0.ebuild
new file mode 100644
index 000000000000..8e143ef76619
--- /dev/null
+++ b/sci-libs/trilinos/trilinos-14.4.0.ebuild
@@ -0,0 +1,256 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Scientific library collection for large scale problems"
+HOMEPAGE="http://trilinos.sandia.gov/"
+MY_PV="${PV//\./-}"
+PATCHSET="r0"
+SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+LICENSE="BSD LGPL-2.1"
+SLOT="0"
+
+IUSE="
+ adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
+ matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
+ superlu taucs tbb test threads tvmet yaml zlib X
+"
+
+# TODO: fix export cmake function for tests
+RESTRICT="test"
+
+RDEPEND="
+ !dev-cpp/kokkos
+ dev-libs/boost:=
+ sys-libs/binutils-libs:=
+ virtual/blas
+ virtual/lapack
+ virtual/mpi
+ adolc? ( sci-libs/adolc )
+ arprec? ( sci-libs/arprec )
+ clp? ( sci-libs/coinor-clp )
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
+ eigen? ( dev-cpp/eigen:3 )
+ glpk? ( sci-mathematics/glpk )
+ gtest? ( dev-cpp/gtest )
+ hdf5? ( sci-libs/hdf5:=[mpi] )
+ hypre? ( sci-libs/hypre:= )
+ hwloc? ( sys-apps/hwloc:= )
+ matio? ( sci-libs/matio )
+ mkl? ( sci-libs/mkl )
+ metis? ( sci-libs/metis )
+ mumps? ( sci-libs/mumps )
+ netcdf? ( sci-libs/netcdf:= )
+ petsc? ( sci-mathematics/petsc )
+ qd? ( sci-libs/qd )
+ scalapack? ( sci-libs/scalapack )
+ scotch? ( sci-libs/scotch:= )
+ sparse? ( sci-libs/cxsparse sci-libs/umfpack )
+ superlu? ( sci-libs/superlu:= )
+ taucs? ( sci-libs/taucs )
+ tbb? ( dev-cpp/tbb:= )
+ tvmet? ( dev-libs/tvmet )
+ yaml? ( dev-cpp/yaml-cpp:= )
+ zlib? ( sys-libs/zlib )
+ X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
+
+PATCHES=(
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+trilinos_conf() {
+ local dirs libs d
+ for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
+ for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
+ libs="${libs};${d:2}"
+ done
+ [[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
+ dirs=""
+ for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
+ dirs="${dirs};${d:2}"
+ done
+ [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
+}
+
+#
+# The following packages are currently disabled:
+# - Adelus/Zadelus due to underlinkage.
+# - Moertel due to underlinkage
+# - SEACAS is incompatible with netcdf, see
+# https://github.com/trilinos/Trilinos/tree/master/packages/seacas#netcdf
+#
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=ON
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}"
+ -DCMAKE_SKIP_INSTALL_RPATH=ON
+ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
+ -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
+ -DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ -DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
+ -DTrilinos_ENABLE_Adelus=OFF
+ -DTrilinos_ENABLE_Moertel=OFF
+ -DTrilinos_ENABLE_PyTrilinos=OFF
+ -DTrilinos_ENABLE_SEACAS=OFF
+ -DTrilinos_ENABLE_Amesos=ON
+ -DTrilinos_ENABLE_AztecOO=ON
+ -DTrilinos_ENABLE_EpetraExt=ON
+ -DTrilinos_ENABLE_Epetra=ON
+ -DTrilinos_ENABLE_Ifpack=ON
+ -DTrilinos_ENABLE_ML=ON
+ -DTrilinos_ENABLE_MueLu=ON
+ -DTrilinos_ENABLE_OpenMP="$(usex openmp)"
+ -DTrilinos_ENABLE_ROL=ON
+ -DTrilinos_ENABLE_Sacado=ON
+ -DTrilinos_ENABLE_Teuchos=ON
+ -DTrilinos_ENABLE_Tpetra=ON
+ -DTrilinos_ENABLE_Zoltan=ON
+ -DTrilinos_ENABLE_TESTS="$(usex test)"
+ -DTPL_ENABLE_BinUtils=ON
+ -DTPL_ENABLE_BLAS=ON
+ -DTPL_ENABLE_LAPACK=ON
+ -DTPL_ENABLE_MPI=ON
+ -DTPL_ENABLE_ADOLC="$(usex adolc)"
+ -DTPL_ENABLE_AMD="$(usex sparse)"
+ -DTPL_ENABLE_ARPREC="$(usex arprec)"
+ -DTPL_ENABLE_BLACS="$(usex scalapack)"
+ -DTPL_ENABLE_BoostLib=ON
+ -DTPL_ENABLE_Boost=ON
+ -DTPL_ENABLE_Clp="$(usex clp)"
+ -DTPL_ENABLE_CSparse="$(usex sparse)"
+ -DTPL_ENABLE_CUDA="$(usex cuda)"
+ -DTPL_ENABLE_CUSPARSE="$(usex cuda)"
+ -DTPL_ENABLE_Eigen="$(usex eigen)"
+ -DTPL_ENABLE_GLPK="$(usex glpk)"
+ -DTPL_ENABLE_gtest="$(usex gtest)"
+ -DTPL_ENABLE_HDF5="$(usex hdf5)"
+ -DTPL_ENABLE_HWLOC="$(usex hwloc)"
+ -DTPL_ENABLE_HYPRE="$(usex hypre)"
+ -DTPL_ENABLE_Matio="$(usex matio)"
+ -DTPL_ENABLE_METIS="$(usex metis)"
+ -DTPL_ENABLE_MKL="$(usex mkl)"
+ -DTPL_ENABLE_MUMPS="$(usex mumps)"
+ -DTPL_ENABLE_Netcdf="$(usex netcdf)"
+ -DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
+ -DTPL_ENABLE_PETSC="$(usex petsc)"
+ -DTPL_ENABLE_Pthread="$(usex threads)"
+ -DTPL_ENABLE_QD="$(usex qd)"
+ -DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
+ -DTPL_ENABLE_Scotch="$(usex scotch)"
+ -DTPL_ENABLE_SuperLU="$(usex superlu)"
+ -DTPL_ENABLE_TAUCS="$(usex taucs)"
+ -DTPL_ENABLE_TBB="$(usex tbb)"
+ -DTPL_ENABLE_Thrust="$(usex cuda)"
+ -DTPL_ENABLE_TVMET="$(usex tvmet)"
+ -DTPL_ENABLE_UMFPACK="$(usex sparse)"
+ -DTPL_ENABLE_X11="$(usex X)"
+ -DTPL_ENABLE_yaml-cpp="$(usex yaml)"
+ -DTPL_ENABLE_Zlib="$(usex zlib)"
+ )
+
+ #
+ # Make sure some critical configuration options are always set
+ # correctly independently of what Trilinos dependency resolver thinks
+ # it should be doing.
+ #
+ local mycmakeargs+=(
+ -DAmesos2_ENABLE_LAPACK=ON
+ -DAmesos2_ENABLE_MUMPS=OFF
+ -DTpetra_INST_SERIAL=ON
+ )
+
+ use eigen && \
+ mycmakeargs+=(
+ -DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
+ )
+ use hypre && \
+ mycmakeargs+=(
+ -DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
+ )
+ use scotch && \
+ mycmakeargs+=(
+ -DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
+ )
+
+ # cxsparse is a rewrite of csparse + extras
+ use sparse && \
+ mycmakeargs+=(
+ -DCSparse_LIBRARY_NAMES="cxsparse"
+ )
+
+ # mandatory blas and lapack
+ trilinos_conf blas BLAS
+ trilinos_conf lapack LAPACK
+ use superlu && trilinos_conf superlu SuperLU
+ use metis && trilinos_conf metis METIS
+
+ # blacs library is included in scalapack these days
+ if use scalapack; then
+ trilinos_conf scalapack SCALAPACK
+ mycmakeargs+=(
+ -DBLACS_LIBRARY_NAMES="scalapack"
+ -DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
+ )
+ fi
+
+ #
+ # Make sure we use the compiler wrappers in order to build trilinos.
+ #
+ [ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export OMPI_CC MPICH_CC
+ [ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && tc-export OMPI_CXX MPICH_CXX
+ export CC=mpicc CXX=mpicxx && tc-export CC CXX
+
+ # Trilinos needs a custom build type:
+ local CMAKE_BUILD_TYPE=Release
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # Clean up the mess:
+
+ # Let us move the bin directory out of the way to avoid potential
+ # clashes due to very generically named binaries such as
+ # »nvcc_wrapper«, etc.
+ mv "${ED}"/bin "${ED}/usr/$(get_libdir)"/trilinos || die "mv failed"
+
+ # Move the cmake directory to the right location:
+ mkdir -p "${ED}/usr/$(get_libdir)"/cmake
+ mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* "${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
+ # Fix up include paths:
+ sed -i -e 's#external_packages#trilinos/external_packages#g' \
+ "${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
+ rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
+
+ # Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
+ # has a chance to pick up the libraries, also add Trilinos' binaries ot
+ # the PATH environment variable.
+ cat >> "${T}"/99trilinos <<- EOF
+ LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
+ PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
+ EOF
+ doenvd "${T}"/99trilinos
+}