diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-07 12:37:21 +0100 |
commit | b8c7370a682e4e29cda623222d17a790c01c3642 (patch) | |
tree | f6caa14689bd00a5760eadaa381ff41e50ef3c1b /sci-libs/trilinos | |
parent | 8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff) |
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'sci-libs/trilinos')
-rw-r--r-- | sci-libs/trilinos/Manifest | 2 | ||||
-rw-r--r-- | sci-libs/trilinos/trilinos-16.0.0.ebuild | 250 |
2 files changed, 252 insertions, 0 deletions
diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest index 8f5317b430ae..f18876d396ed 100644 --- a/sci-libs/trilinos/Manifest +++ b/sci-libs/trilinos/Manifest @@ -1,7 +1,9 @@ DIST trilinos-14.4.0.tar.gz 188325969 BLAKE2B 909e3ebe229d035263d835e0d68977516d2a5df168785021fe300f7904e149586a82a6dba271cc1472455472397ee5467443244fb68fb27c00cf4e9b3d10a282 SHA512 497fc4fb4ab4338fffef7111635f3dc3b12cb7302bc3f56bafb5cc75b7c68e94cc22fcacd9dd625803a0f38e4fbce5105cab61df76e033a4581568c36a53fe8a DIST trilinos-15.0.0.tar.gz 182971338 BLAKE2B 0e459b9d070085a2a5bf06de8274ceec628f8913ab87c87a9502baf8065bfdabeca827ea9fa0f274c163bff1e7dc252eabf79ca250c0470d1da5e13492287d28 SHA512 a364e67686cdd4e1e34aa0e14b6cc051ed21a72b63719c47260d7839d47590b9e652be76cb9d61e513c7933b965fc8141c3ff898167e22353b33c9491a525c84 DIST trilinos-15.1.1.tar.gz 183340366 BLAKE2B 4d1184fac143ae2b2950d0bf35bae8f813436f894734e5a9aa96d7622ed265cc41a04001a846437a1d1921258c20ae165e9e55f1754241541bde7136c08a6e5c SHA512 5a1a7d321dd3b47fafe0422884d1a7bf6731d5ee806a4fd1bf31f179ca5d6f4290cda4515d0d7786024ea15c17e88422a9518370c5cfb32b4b44761de232e0de +DIST trilinos-16.0.0.tar.gz 198059287 BLAKE2B b23389d6aa49e34b87f614e9c4a835b224bcd4054028b106c94358a4125a5544df2013ce3560a56e76d68e900df613d7ae002fea0dacd8bd93ea002a4db7d53b SHA512 ed8b9f6ec8d35879f28f066685f70c492ee83ffdc42cfed75750216c0c689c81b00355520a7db441e56d83a6a153b0dbe4f8422d163a942cdcc6786235f64688 EBUILD trilinos-14.4.0.ebuild 7704 BLAKE2B 09d8d1e38b6459d95710939ae94cf4fba101299478fb30fa2802d4a211863e78dd68483486a4c22e3fb245a9cc2c8bbf85c2213be2140e2eaf2e9fcffbf9420f SHA512 470f14adfd2fa1028b94a3017304597c2905e34f4e4bfbf3b3bb1458c78120b1a324ce3b20954770e1fcfb48bf50c62452906d12e483c5a9e7e0e46597a8544a EBUILD trilinos-15.0.0.ebuild 7434 BLAKE2B 86917d4fb4fe2a29893e39b038c88de90fe4715a9655cfe5bb7d4c4980bd8c808255e6acff557420a7972278605330f6498d62c97e655347ba2f1b0a15bb041b SHA512 6894b7fe8a286040d5cc832c69ddea8b0c9ca1b94c085e4320ff92f32c63b65e869684e934db6a6f9725b1a7b6408faa088ceadfc5dfe9c08a35dd859dc31fb4 EBUILD trilinos-15.1.1.ebuild 7434 BLAKE2B 86917d4fb4fe2a29893e39b038c88de90fe4715a9655cfe5bb7d4c4980bd8c808255e6acff557420a7972278605330f6498d62c97e655347ba2f1b0a15bb041b SHA512 6894b7fe8a286040d5cc832c69ddea8b0c9ca1b94c085e4320ff92f32c63b65e869684e934db6a6f9725b1a7b6408faa088ceadfc5dfe9c08a35dd859dc31fb4 +EBUILD trilinos-16.0.0.ebuild 7434 BLAKE2B 86917d4fb4fe2a29893e39b038c88de90fe4715a9655cfe5bb7d4c4980bd8c808255e6acff557420a7972278605330f6498d62c97e655347ba2f1b0a15bb041b SHA512 6894b7fe8a286040d5cc832c69ddea8b0c9ca1b94c085e4320ff92f32c63b65e869684e934db6a6f9725b1a7b6408faa088ceadfc5dfe9c08a35dd859dc31fb4 MISC metadata.xml 2813 BLAKE2B 956cb9f2f1f6061f67d8f02b96498e8b20e9ef5360b9401d42636e25b8e73ea5e8318aa4506fd3af658ab1499870ce101e978bb3198118f54cc75f42f4ca1374 SHA512 9e183b59a017f0f741f0687bf3422e81b41b419bcf2d4e777f262c0cbd3e08ae5ddfca443530d4ea7879f8df9772b4657cb93112c56beed901b2e0fd0201f919 diff --git a/sci-libs/trilinos/trilinos-16.0.0.ebuild b/sci-libs/trilinos/trilinos-16.0.0.ebuild new file mode 100644 index 000000000000..6cbf380341aa --- /dev/null +++ b/sci-libs/trilinos/trilinos-16.0.0.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_MAKEFILE_GENERATOR=emake +inherit cmake flag-o-matic 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" + +S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}" + +LICENSE="BSD LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" + +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" + +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}" ) +} + +src_configure() { + # Trilinos is a massive C++ project. Fixing all of the lto warnings and + # making safe for lto compilation/linking will be a massive + # undertaking. Thus, simply filter lto flags. bug #862987 + filter-lto + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=ON + -DCMAKE_INSTALL_PREFIX="${EPREFIX}" + -DCMAKE_SKIP_RPATH=ON + -DCMAKE_SKIP_INSTALL_RPATH=ON + -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_PyTrilinos=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 +} |